Nginx & Caddy 완전 정복 8편 — Nginx vs Caddy: 장단점 비교와 선택 가이드
시리즈를 마무리하며 Nginx와 Caddy를 설계 철학, HTTPS, 설정, 기능, 성능, 보안, 확장성, 생태계, 운영 관점에서 비교하고 상황별 선택 기준을 제시합니다.
blog92@web:~$ grep -rl "#DevOps" posts/
이 태그가 달린 글
시리즈를 마무리하며 Nginx와 Caddy를 설계 철학, HTTPS, 설정, 기능, 성능, 보안, 확장성, 생태계, 운영 관점에서 비교하고 상황별 선택 기준을 제시합니다.
Next.js 프런트엔드, API 서버 2대, WebSocket, 관리자 페이지로 이루어진 서비스를 Docker Compose 위에서 Nginx와 Caddy로 각각 구성하고, 설정과 운영 관점에서 나란히 비교합니다. Nginx→Caddy 지시어 대응표도 함께 제공합니다.
롤링 배포에서 구·신 앱이 같은 스키마를 동시에 쓴다는 전제로 변경의 위험도를 분류하고, Expand–Contract 분해, 대용량 Backfill, DBMS별 온라인 DDL의 락 위험을 정리한다. 시리즈 Part 5 "시니어 레벨"의 첫 강이다.
watch 모드를 개발 전용으로 두는 이유, startup/save/resurrect로 만드는 부팅 영속성, 그리고 pm2-logrotate와 OS logrotate로 로그 디스크를 지키는 방법.
CLI 옵션을 ecosystem.config.js로 옮겨 재현 가능하게 만들고, env 블록과 --update-env 함정을 정리하며, 크래시 루프 방지·지수 백오프·메모리 기반 재시작·크론 재시작까지 재시작 정책을 의도적으로 설계한다.
node server.js가 운영에서 부딪히는 여섯 가지 문제, systemd·Docker와의 역할 비교, 설치와 첫 실행, 상태 조회부터 stop/delete/kill 구분까지 필수 명령어와 로그 기초.
"그래서 우리 팀의 전달 능력이 실제로 좋아졌는가"에 답하기 위한 DORA 네 지표의 정의와 수집 방법, 지표를 잘못 쓰는 방식, 파이프라인 자체의 건강 지표, 성숙도 로드맵과 최종 체크리스트로 시리즈를 마무리합니다.
통합 지옥과 "내 PC에서는 되는데요"에서 출발해 CI·Continuous Delivery·Deployment를 구분하고, 파이프라인의 해부와 Build Once Deploy Many 같은 핵심 원칙, 도구 지형도까지 정리합니다.
1강부터 10강까지의 핵심 질문과 도구, 반드시 기억할 점을 한 표로 모으고 각 강으로 가는 링크를 정리한다. 그리고 네트워크·데이터·플랫폼·보안 심화로 이어지는 다음 학습 방향까지.
컨트롤 플레인과 핵심 오브젝트, probe 세 종류의 구분, requests와 limits, 오토스케일링, 롤링 업데이트와 무중단 종료, Helm·Kustomize 패키징, 그리고 쿠버네티스를 쓰지 말아야 할 때.
Terraform의 plan 읽기와 state 보호, 모듈과 환경 분리, CI에서의 실행 방식, Ansible의 멱등성, 두 도구의 역할 분담, 그리고 폐쇄망에서의 IaC 운영.
CI와 CD의 구분, GitHub Actions 워크플로 구조, 이미지 빌드와 푸시, 시크릿과 OIDC, 블루/그린과 롤링 배포, 롤백과 expand-contract DB 마이그레이션까지 — 배포를 사람 손에서 파이프라인으로 옮기는 법.
FHS 디렉터리 구조와 권한, 프로세스와 시그널, systemd 서비스, 패키지 관리, 환경 변수, 텍스트 처리, 쉘 스크립트, 리소스 점검까지 — 서버에 접속했을 때 무엇이 어디에 있고 무엇이 어떻게 돌고 있는지 스스로 파악하는 법.
npm install도 docker pull도 안 되는 폐쇄망에서 안티패턴이 자라는 이유와, 내부 레지스트리·패키지 미러·릴리스 번들·다이제스트 고정·오프라인 취약점 스캔·복구 리허설로 시리즈의 패턴을 이식하는 방법.
Conway의 법칙과 역 Conway 기동, DevOps 팀이라는 새 사일로, You Build It You Run It, Team Topologies와 인지 부하, Platform Engineering, 그리고 Westrum 조직 문화.
Monitoring과 Observability의 차이, 로그·메트릭·트레이스와 OpenTelemetry, Golden Signals와 SLI/SLO·Error Budget, Alert Fatigue와 Circuit Breaker, 그리고 Blameless Postmortem.
배포와 공개의 분리를 축으로 Rolling Update, Blue-Green, Expand and Contract, Canary, Progressive Delivery, Feature Flag, Strangler Fig를 정리하고 Knight Capital 사고에서 배우는 것.
Deployment Pipeline과 Build Once Deploy Many, latest 태그가 검증을 무력화하는 이유, Twelve-Factor 설정 분리와 시크릿 관리, Pipeline as Code·GitOps·Shift-Left.
Integration Hell과 장수 브랜치가 만드는 병합 이자, 그리고 Continuous Integration·Trunk-Based Development·Branch by Abstraction·Stop the Line으로 변경 단위를 줄이는 방법.
Snowflake Server, Configuration Drift, ClickOps가 재현성을 무너뜨리는 과정과 IaC·멱등성·Immutable Infrastructure·Pets vs Cattle·Phoenix Server로 되돌리는 두 단계.