본문 바로가기

개발기술

(117)
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..
Encoding, Decoding, Frames 개념 효율적인 비디오 파이프라인 정리단계설명필요한 요소🎥 캡처 (입력)카메라에서 실시간 영상 데이터를 가져옴빠른 접근 가능한 장치 (예: /dev/video0, v4l2, avfoundation)🎞 인코딩원본 영상을 압축해서 전송/저장하기 좋게 변환고효율 코덱 사용 (예: libx264, nvenc, vaapi 등 하드웨어 가속)🧠 디코딩압축된 영상 데이터를 다시 프레임으로 복원하드웨어 가속 디코더 사용 시 성능 향상🔄 트랜스코딩 / 스트리밍스트리밍 형식(HLS 등)으로 재가공적절한 키프레임 간격, GOP 설정, 버퍼 조절 등📤 전달 (브라우저/플레이어로).ts 세그먼트와 .m3u8 재생 목록을 클라이언트에 제공HLS 세그먼트 생성, 재생 목록 실시간  What Are Video Frames?When..
영상 스트리밍 처리과정 스트리밍 구조사용자가 데이터를 한꺼번에 받지 않고, 순차적으로 실시간에 가깝게 받아보는 시스템의 전체 구성“스트리밍 구조”는 단순히 영상만이 아니라,"데이터(특히 미디어)가 지속적으로 흐르는 시스템 구조"를 말합니다.일반 HTTP vs 스트리밍"스트리밍"은 단순 HTTP처럼 한 번에 요청/응답하는 구조가 아니라,데이터가 계속 흘러가는(지속 전달되는) 구조를 의미해요.그리고 이 흐름은 "실시간성"과 아주 밀접한 관계를 맺고 있습니다.항목일반HTTP 스트리밍구조요청 → 응답 → 끝연결 후 지속적으로 데이터 전송데이터 흐름한 번에 받음조각/이벤트 단위로 나눠서 받음연결 방식단발성 (short-lived)장기 연결 or 연속 요청예시게시글 API, 로그인영상, 채팅, 주식, 실시간 지도 등 사용예시영상 스트리밍..
쉘 커맨드 , 쉘 스크립트 리눅스 쉘 쉘은 사용자가 운영체제와 상호작용할 수 있도록 명령어를 입력받아 실행해주는 프로그램입니다.모든 것은 파일이라는 철학 아래에서 인터렉션이 파일을 읽고 쓰는 것처럼 이루어져있음 (마우스, 키보드 디바이스 관련 기술도 포함)리눅스의 철학은 여러 기본단위의 프로그램들이 유기적으로 각자의 역할을 하면서, 이를 조합하여 전체 시스템이 동작하도록함.(ls | grep의 경우에도, lsgrep이란 명령어가 아닌 ls와 grep을 유기적으로 조합하여 사용함)리눅스에는 여러가지 shell이 있지만 ubuntu에서도 그렇고 bash shell이 범용으로 쓰이기에 bash 명령어 위주로 학습할것.Bash: 기본적인 쉘로, 많은 시스템에서 기본으로 제공됩니다. 간단하고 강력하지만, Zsh에 비해 기능이 제한적입니다...
프론트엔드 환경설정 및 배포 1. NVM (Node Version Management)한 컴퓨터에서 여러 버전의 Node.js를 사용 가능하게 해주는 버전 관리 도구Node.js는 글로벌 설치가 기본이나 프로젝트마다 요구하는 버전이 다를 수 있음. 프로젝트마다 다른 Node 버전을 요구할 때 필수 도구입니다. 2.Node.js정의: JavaScript 런타임 환경 (브라우저가 아닌 환경에서 JS 실행 가능하게 해줌)역할:yarn, npm 같은 패키지 매니저 실행yarn dev, yarn build 같은 스크립트 실행프론트 빌드(예: yarn build)와 dev 서버 실행(예: yarn dev)을 가능하게 함.관리 방법: nvm 사용해서 버전 컨트롤 (.nvmrc로 특정 버전을 명시하여  사용 선언됨)3. 패키지 매니저정의: 외부 ..
Persistence Context, EntityManager 트랜잭셔널이 자동으로 걸리는지 검증lazyloading이랑 영속성 컨텍스트랑 어떻게 연관되는지     Persistence Context Persistence Context의 핵심 기능기능설명1차 캐시 (First-Level Cache)같은 엔티티를 여러 번 조회해도 DB 쿼리를 다시 날리지 않음엔티티 동일성 보장같은 영속성 컨텍스트 안에서는 동일한 ID의 엔티티는 항상 같은 객체 (== 비교 true)변경 감지 (Dirty Checking)트랜잭션 커밋 시, 엔티티의 변경 사항을 감지해 자동으로 update 쿼리를 생성쓰기 지연 (Write-Behind)persist/save한 insert 쿼리를 모아뒀다가 트랜잭션 종료 시 한꺼번에 실행지연 로딩 (Lazy Loading)프록시 객체로 관계 엔티티를 ..
Code Structuring Technique Early Return Patternused to exit a function as early as possible when a condition is not met, preventing unnecessary computations.Why Use It?Improves readability by handling edge cases first.Avoids unnecessary processing when conditions are not met.Reduces the depth of nested logic.Example Without Early Return (Deep Nesting)public void processUser(UserDto dto) { if (dto != null) { if (..
원격제어 MobaXterm MobaXterm is an all-in-one remote access tool for Windows that supports:SSH (Secure Shell)X11 ForwardingVNC (Virtual Network Computing) with built-in VNC viewer! RDP (Remote Desktop Protocol)FTP/SFTP (File Transfer Protocols) VNC (Virtual Network Computing)VNC (Virtual Network Computing) is a remote desktop sharing system that allows users to control a computer remotely by transmitting..