CloudFront CDN 실전 가이드 4편: 이미지 리사이징과 영상 트랜스코딩 (미디어 서빙)
이미지 리사이징은 온디맨드 변환 후 CloudFront 캐싱(Lambda@Edge·S3 Object Lambda), 영상은 MediaConvert로 트랜스코딩하고 HLS/DASH를 CloudFront로 전송한다. 두 변환의 무게 차이와 캐싱·사설영상 보호까지 정리
30 stories
이미지 리사이징은 온디맨드 변환 후 CloudFront 캐싱(Lambda@Edge·S3 Object Lambda), 영상은 MediaConvert로 트랜스코딩하고 HLS/DASH를 CloudFront로 전송한다. 두 변환의 무게 차이와 캐싱·사설영상 보호까지 정리
Signed URL/쿠키로 비공개 콘텐츠 보호, CloudFront Functions vs Lambda@Edge 엣지 로직, 커스텀 도메인(ACM)·S3 OAC·WAF 보안, 캐시 적중률·CloudWatch·로그 모니터링과 비용 최적화까지 — CloudFront 운영 심화
Spring Boot + Kotlin 앱을 오리진으로 두고 CloudFront를 앞단에 붙인다. Kotlin으로 Cache-Control·ETag 설정, /api/*(무캐시)와 /static/*(캐시) Behavior 분리, Terraform 구성, X-Cache로 hit/miss 검증, 무효화까지 실습
CDN이 왜 필요한지부터 CloudFront의 구성요소(Distribution·Origin·Behavior·엣지 캐시), 캐싱 동작 원리(캐시 키·Cache-Control·TTL·hit/miss), 무효화 vs 버저닝까지 — Spring Boot 오리진을 올리기 전에 알아야 할 CDN 기본기
6편이 유저스토리에서 릴리스까지의 딜리버리였다면, 7편은 그 앞단 디스커버리다. 유저스토리는 하늘에서 떨어지지 않는다 — 문제 정의(JTBD), 사용자 리서치·페르소나, 가치 가설(Lean Startup), 임팩트 매핑·기회 솔루션 트리, 테마·에픽·피처 분해, 그리고 디스커버리와 딜리버리를 잇는 스토리 매핑까지. 듀얼 트랙 애자일로 1–6편을 닫는 애자일 시리즈 디스커버리편.
1–5편이 '왜·무엇'이라는 개념이었다면, 6편은 그 개념들이 실제로 어떤 순서로 굴러가는지를 한 흐름으로 보여준다. 유저스토리(As a/I want/so that·INVEST)에서 인수조건(Given/When/Then), MoSCoW·스토리 포인트·MVP, 로우파이 와이어프레임, 스펙 우선 API, 인수조건 기반 QA(ATDD/BDD), 이벤트 스토밍 판단, 그리고 릴리스까지 — 각 단계를 1–5편 개념에 매핑하는 애자일 시리즈 실전편.
시리즈의 종착점. 팀 하나를 넘어 여러 팀으로 확장할 때 무엇이 어려워지는지(SAFe·LeSS·Spotify·콘웨이 법칙·스케일링의 역설), 1–4편에서 본 변질 신호들이 어떻게 '가짜 애자일'로 굳는지(카고 컬트·애자일 산업 복합체), 그리고 어떻게 회복하는지를 종합한다. 애자일은 도구가 아니라 검사-적응 학습 루프다 — 애자일 시리즈 5편(완결).
프레임워크만으로는 좋은 소프트웨어가 나오지 않는다. XP의 엔지니어링 프랙티스(TDD·CI·리팩토링·페어)가 왜 애자일의 기술적 심장인지, 프로세스만 도입하고 프랙티스를 빼면 왜 무너지는지, 그리고 스토리포인트·벨로시티·#NoEstimates·DORA 4 메트릭으로 무엇을 어떻게 측정해야 하는지 — 측정이 KPI가 되면 왜 망가지는지(Goodhart's Law)까지 다루는 애자일 시리즈 4편.
Scrum이 고정 스프린트로 리듬을 만든다면 Kanban은 흐름을 관리한다. 도요타 Lean의 유산(낭비 제거·풀 시스템)에서 출발해, Kanban 6 프랙티스와 WIP 제한, WIP를 줄이면 왜 빨라지는지(Little's Law: 리드타임=WIP÷처리량), 흐름 지표(리드타임·사이클타임·처리량·CFD), 그리고 Scrum과 Kanban을 언제 무엇으로 고를지(Scrumban)까지 — 애자일 시리즈 3편.
Scrum은 왜 이 모양인가. 불확실성이 높을 때 통하는 경험적 프로세스 제어(투명성·검사·적응)에서 출발해, 3역할·5이벤트·3산출물의 3-5-3 구조가 각각 무슨 문제를 푸는지, Definition of Done의 의미, Scrum Guide 2020의 변화, 그리고 데일리가 상태 보고로·스프린트가 미니 폭포수로 변질되는 신호까지 — 이벤트 암기가 아니라 '왜'로 푸는 애자일 시리즈 2편.
애자일은 방법론이 아니라 가치 체계다. 폭포수가 무너진 이유(후행 피드백 · 변경 비용 곡선)부터 2001년 애자일 선언문의 4가지 가치와 12원칙, 그리고 '문서 안 씀 · 계획 없음 · 무조건 빠름' 같은 흔한 오해 5가지까지 — 용어 암기가 아니라 '왜 이렇게 하는가'로 푸는 애자일 시리즈 1편.
Spring Boot 4 + Kotlin 2.3 + PostgreSQL 16 환경에서 Spring Batch 6 시리즈 1~6편을 한 파이프라인에 모으는 종합편. 운영 marketplace schema에서 분석 analytics schema로 어제 주문을 옮기는 daily-etl, 그 위에서 일별·월별 KPI를 집계하는 daily-kpi·monthly-kpi를 PostgreSQL 16 한 인스턴스에 두 datasource로 분리해 올린다.
Spring Boot 4 + Kotlin 2.3 + PostgreSQL 16 환경에서 Spring Batch 6 잡을 관측하고 테스트하고 배포하는 법. 자동 등록되는 Micrometer 메트릭 6종과 Prometheus 노출, MDC로 모든 로그에 jobName·stepName·chunkIndex를 박는 구조화 로깅, 테스트 피라미드·어노테이션 4종·테스트 대역 5종을 배치 컨텍스트로 자체완결 정리, @SpringBatchTest와 JobLauncherTestUtils로 슬라이스·통합·재시작을 검증하는 법, H2가 못 잡는 쿼리를…
Spring Boot 4 + Kotlin 2.3 + PostgreSQL 16 환경에서 Spring Batch 6 잡을 더 빨리 돌리는 법. 단일 스레드에서 멀티 스레드 Step으로 넘어갈 때의 Reader 동시성·재시작 함정, key range로 데이터를 쪼개 파티션마다 독립 StepExecution을 두는 파티셔닝, 워커 프로세스를 분리하는 원격 파티셔닝과 원격 청킹의 차이, JDK 21 가상 스레드가 IO-bound 잡에서 빛나는 지점과 커넥션 풀 한계, 그리고 100만 건 기준 네 방식의 벤치마크 비교까지 — Lombok…
Spring Boot 4 + Kotlin 2.3 + PostgreSQL 16 환경에서 Spring Batch 6 잡을 어떻게 돌리고 운영하는가. JobLauncher와 JobOperator의 역할 분담, @Scheduled·Quartz·K8s CronJob·Argo 중 무엇으로 트리거할지 결정 트리, JobParameters 멱등 키 설계와 incrementer 트레이드오프, 실패 잡 재시작 제어, Actuator·Micrometer 기반 운영 모니터링, 여러 인스턴스에서 같은 잡이 중복 실행되는 걸 막는 법, 그리고 배치가…
Spring Boot 4 + Kotlin 2.3 + PostgreSQL 16 환경에서 Spring Batch 6 트랜잭션과 실패 처리. 청크 한 사이클에서 한 건이 깨지면 무엇이 rollback되고 무엇이 살아남는지, faultTolerant Step의 Skip·Retry·NoRollback 정책을 예외 의미에 맞춰 설계하는 법, Skip 시 item별 재처리(scan)라는 함정, Listener 6종 카탈로그, ExecutionContext가 재시작 위치를 보존하는 원리, 그리고 JobParameters 멱등 키와…
Spring Boot 4 + Kotlin 2.3 + PostgreSQL 16 환경에서 Spring Batch 6 청크 지향 처리. read N → process N → write N → commit 한 사이클이 트랜잭션 경계라는 메커니즘부터 ItemReader 6종 선택 트리, ItemProcessor 변환·필터·합성 패턴, JpaItemWriter vs JdbcBatchItemWriter 트레이드오프, PostgreSQL ON CONFLICT 멱등 패턴, 그리고 가장 자주 헷갈리는 청크 크기 vs 페이지 크기까지 — Lombok…
Spring Boot 4 + Kotlin 2.3 + PostgreSQL 16 환경에서 Spring Batch 6 입문. Job·Step·JobInstance·JobExecution 어휘 정의, JobRepository 6 메타데이터 테이블 구조, 첫 Hello Tasklet 구현, 5.x → 6.x 마이그레이션 핵심 변경(Jakarta EE 10·Java 17 baseline·@EnableBatchProcessing 자동화)까지 — Lombok 없이 Kotlin DSL로 풀이한 시리즈 1편.
Showing 18 of 30 stories
Load more storiesGet the top AI news and tools straight to your inbox every week.
Weekly · AI news
Join 15,000+ AI enthusiasts