블로그
-
MP4 컨테이너 구조: ISO BMFF 박스, moov·mdat, fMP4와 FFmpeg 실전
MP4의 ftyp·moov·mdat 박스 배치가 재생 시작 속도에 주는 영향을 설명하고, -movflags +faststart와 fragmented MP4 생성, HLS 세그먼트 출력, 웹·모바일 호환성을 맞추는 FFmpeg 명령을 사례별로 제공합니다.
-
WebM 컨테이너 웹 표준 | VP9·AV1·Opus·HTML5·FFmpeg 입문
WebM이 Matroska에서 허용 코덱을 VP8·VP9·AV1과 Vorbis·Opus로 좁힌 이유를 설명하고, HTML5 video 태그용 인코딩, 다중 품질 출력과 배치 처리, 스트리밍 최적화를 위한 FFmpeg 명령을 입문자 눈높이에서 다룹니다.
-
컨테이너 오케스트레이션 심화 — 스케줄러·DNS·CNI·스토리지·프로덕션 패턴
Kubernetes·Docker Swarm 내부를 깊이 있게 다룹니다. 스케줄링 프레임워크, CoreDNS·서비스 디스커버리, Flannel·Calico 오버레이, PV/PVC·StorageClass, PDB·토폴로지 분산 등 운영 관점까지.
-
Core Dump로 크래시 원인 찾기: 생성 설정, GDB 분석, 프로덕션 수집 자동화
Core Dump 생성 설정과 GDB 분석, Segmentation Fault 디버깅을 정리합니다. Ubuntu apport·systemd-coredump가 코어를 가져가는 위치, Docker·Kubernetes에서 core_pattern이 호스트 전역인 문제, debuginfod와 분리 심볼, 코어에 남는 비밀 정보까지 프로덕션 기준으로 다룹니다.
-
CORS 에러 해결: 'No Access-Control-Allow-Origin' 원인과 프리플라이트·credentials 설정
브라우저 콘솔의 CORS 에러 메시지별 원인과 해결 방법을 정리합니다. 동일 출처 정책, 프리플라이트(OPTIONS), credentials와 쿠키, Vary: Origin, Express cors 설정과 흔한 보안 실수를 설명합니다.
-
C++ Adapter 패턴: 객체 어댑터 vs 클래스 어댑터로 레거시·외부 API 감싸기
C++에서 호환되지 않는 인터페이스를 연결하는 Adapter 패턴을 조합 방식의 객체 어댑터와 다중 상속 방식의 클래스 어댑터로 구현해 비교하고, 레거시 API 감싸기, 팩토리·템플릿 어댑터, 결제 시스템 예제를 다룹니다.
-
C++ ADL(인자 종속 조회): swap 관용구가 동작하는 이유와 엉뚱한 함수가 호출될 때
네임스페이스 한정 없이 호출한 함수가 인자 타입의 네임스페이스에서 검색되는 ADL 규칙을 std::cout, 연산자 오버로딩, swap 관용구, 직렬화 예제로 설명하고, 의도치 않은 함수가 선택되는 문제와 막는 방법을 다룹니다.
-
C++ 집합체 초기화: 집합체 조건, 중괄호 초기화, C++20 지정 초기화 순서 규칙
C++ 집합체가 되기 위한 조건과 중괄호로 구조체·배열·중첩 구조체를 초기화하는 방법, C++20 지정 초기화의 순서 규칙과 기본값 처리, 설정 구조체와 테스트 데이터에 집합체를 활용하는 패턴을 예제로 설명합니다.
-
C++ std::copy·copy_if·copy_backward: 목적지 크기, 겹치는 범위, back_inserter
std::copy·copy_if·copy_n·copy_backward·move를 언제 골라 쓰는지 벡터 복제와 필터링 예제로 설명하고, 목적지 크기 부족, 겹치는 범위, move 후 원본 상태, back_inserter 같은 출력 반복자 선택 문제를 다룹니다.
-
C++ count·count_if와 all_of·any_of·none_of로 조건 집계하기
std::count로 특정 값의 개수를 세고 count_if에 람다를 넘겨 조건별로 집계하는 방법, 구조체 필드 기준 카운트, all_of·any_of·none_of로 조건을 검사하는 법을 통계 유틸리티 예제와 함께 설명합니다.