개발기술 (116) 썸네일형 리스트형 자바스크립트 내장함수 JavaScript 언어 자체의 기능JavaScript 엔진(V8, SpiderMonkey 등)**에서 제공하는 기능으로 어디서든 동작 가능 (브라우저, Node.js, 서버 등) JavaScript KeywordIn Operator(javascript property in object) : The in operator returns true if the specified property is found in the specified object or its prototype chain. Its syntax is: String Object MethodStringinstance.toUpperCase() : 문자열을 대문자로 변환 후 반환함Stringinstance.length() : 문자열의 길이를 반환.. Java NIO ConceptJava NIONode.js / libuvMultiplexer abstractionSelectorlibuv internal poll mechanismRegister a file/socketchannel.register(selector, ...)uv_poll_t, uv_read_start, etc.Wait for I/O readinessselector.select()epoll_wait() inside poll phaseI/O readiness eventSelectionKey (e.g., OP_READ)Callback to JS handler (socket.on('data'))Event loop processorYour thread calling .select()libuv's event loop.. Tomat And Netty Tomcat vs Netty — What's the Difference? Feature / AspectTomcatNettyBuilt forServlet-based web apps (Spring MVC)General-purpose networking (low-level)I/O modelBlocking or semi-blockingFully non-blocking, event-drivenProtocolsHTTP/1.1, some HTTP/2HTTP/1.1, HTTP/2, WebSocket, TCP, UDPUse caseTraditional web serversReactive systems, custom protocolsAbstraction levelHigh (Servlets, Filters)Low (Chan.. Java Blocking I/O vs non-Blocking I/O 1.. JDBC (Database Access)java복사편집String name = jdbcTemplate.queryForObject("SELECT name FROM users WHERE id = ?", String.class, 1); 🔒 Blocking behavior:The current thread sends the SQL query over the network to the DBThe thread waits (blocks) until the DB returns a responseNo other work happens on that thread until the DB reply is received📌 JDBC is a blocking API, always🔸 2. RestTemplate (HT.. JavaScript, Node JS, Event-Driven Programming 그리고 Java, Spring, MultiThreading - java와 javascript의 스타일 차이. 태생이다르다- node js의 등장- epoll과 같은 os method의 발전- java의 발전 프로그래밍 스타일 비교 Java Style: Sequential and ConditionalIn Java, you call a function, wait for the result, and then use if statements to control logic: @RestControllerpublic class UserController { private final UserService userService; public UserController(UserService userService) { this.userService = use.. 적응형 비트레이트 스트리밍(Adaptive Bitrate Streaming) 설계 적응형 비트레이트 스트리밍(Adaptive Bitrate Streaming) 프로토콜공통 구조 요약구성요소설명Manifest (플레이리스트)어떤 세그먼트들이 있는지 정의한 메타파일. 예: .m3u8, .mpdSegment (세그먼트)실제 미디어 데이터 (영상/음성). 일반적으로 짧은 시간 단위로 나눔 (예: 4~10초) 적응형 스트리밍 동작방식개념 : "같은 시점"의 영상에 대해 서로 다른 비트레이트 버전의 세그먼트들이 존재하고, 네트워크 상태에 따라 클라이언트가 선택해서 요청하는 방식이에요. 세그먼트 구조 (Sequence 번호는 동일, 비트레이트별로 따로 존재)예를 들어, 다음과 같이 여러 화질 버전이 있을 수 있어요:비트레이트세그먼트 이름 (예시)240p (300kbps)chunk_001_240.m.. 테스트의 종류와 선택 일반적으로는 단위 테스트, 통합 테스트, API 테스트 모두 시행하는 것이 이상적인 테스트 전략입니다. 왜 세 가지를 모두 사용하는가? 테스트 종류 목적어떤 걸 확인하나?단위 테스트개별 클래스나 메서드의 로직이 정확한지 검증비즈니스 로직, 조건 분기, 예외처리 등통합 테스트여러 빈(서비스 ↔ 레포지토리 ↔ 설정)이 잘 연결됐는지 검증Bean 주입, 설정값, 실제 외부 의존성과의 통합 작동API 테스트외부 사용자의 시각에서 API가 제대로 동작하는지 검증요청/응답 포맷, HTTP 상태코드, 검증 오류 등 이상적인 테스트 방향 규모 / 상황 테스트 전략 현실화1인 개발 / 사이드 프로젝트단위 + API 테스트 위주. 통합 테스트는 최소한으로.스타트업 / MVP 단계빠른 개발을 위해 단위 or API.. HLS 프로토콜 튜닝 HLS (영상 프로토콜)HLS는 내부적으로 **HTTP 요청/응답(GET)**을 이용해서 .m3u8 (playlist) 파일과 .ts (video segment) 파일을 순차적으로 다운로드해서 재생합니다.HLS 같은 미디어 스트리밍 프로토콜은 "브라우저 자체"가 지원하지 않으면, JavaScript 라이브러리에 의존해야 합니다. 때문에 자신이 원하는 방식의 통신을 위한 프로토콜에 맞추어 설계하여야함통신 순서1. 클라이언트 → HTTP GET → playlist.m3u8 요청2. 서버 → playlist.m3u8 응답 (.ts 목록이 들어 있음)3. 클라이언트 → HTTP GET → segment1.ts4. 클라이언트 → HTTP GET → segment2.ts FFmpeg HLS 튜닝 플래그-hls_t.. 이전 1 2 3 4 ··· 15 다음