Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 데이터베이스
- 웹성능최적화
- 백엔드기초
- 프론트엔드
- 보안
- 네트워크
- 세션
- spring event
- 인프라
- Spring
- interceptor
- http
- devops
- 성능최적화
- 백엔드
- SnowFalke
- 웹개발
- 백엔드개발
- 캐시
- Spring Boot
- 백엔드개발자
- java
- 클린코드
- JPA
- 인증
- db
- AbstractAggregateRoot
- redis
- CS
- DEVIEW2023
Archives
- Today
- Total
이것저것 개발기록
"서비스 중단 없는 업데이트" 무중단 배포 전략(Blue-Green, Rolling, Canary) 본문
"배포할 때마다 서버를 잠시 꺼야 할까요?"
사용자는 서비스가 업데이트되는 줄도 모르게, 조용하고 안전하게 새로운 버전을 반영하는 무중단 배포의 세 가지 핵심 전략을 정리합니다.
1. 롤링 배포 (Rolling Update)
가장 일반적인 방식입니다. 여러 대의 서버 중 일부를 순차적으로 새로운 버전으로 교체합니다.
- 장점: 추가적인 서버 자원이 많이 필요하지 않습니다.
- 단점: 배포 중에는 서버 대수가 줄어들어 부하가 집중될 수 있고, 구버전과 신버전이 공존하는 시간이 발생합니다.
2. 블루-그린 배포 (Blue-Green Deployment)
구버전(Blue)과 동일한 수의 신버전(Green) 서버를 미리 다 띄워놓고, 로드밸런서를 통해 트래픽을 한 번에 전환합니다.
- 장점: 구버전/신버전 공존 문제가 없고, 문제 발생 시 즉시 롤백이 가능합니다.
- 단점: 서버 자원이 정확히 두 배로 필요하여 비용 부담이 큽니다.
3. 카나리 배포 (Canary Deployment)
광산의 카나리아처럼, 소수의 사용자에게만 먼저 신버전을 노출하여 테스트한 뒤 점진적으로 트래픽을 늘립니다.
- 장점: 실제 운영 환경에서 리스크를 최소화하며 성능과 오류를 검증할 수 있습니다.
- 단점: 트래픽 제어 로직이 복잡해질 수 있습니다.
💡 실무 노트
무중단 배포에서 개발자가 가장 고생하는 지점은 애플리케이션 코드가 아니라 데이터베이스(DB)입니다.
팁: 서버는 신버전인데 DB 스키마가 아직 구버전이라면 에러가 나겠죠? 이를 해결하기 위해 DB 스키마 변경 시에는 '하위 호환성'을 유지하며 배포하는 것이 철칙입니다. 컬럼 삭제 시에도 바로 지우지 않고, 1단계에서 새 컬럼 추가 및 데이터 마이그레이션, 2단계에서 신버전 배포, 3단계에서 구버전 컬럼 삭제라는 '단계적 배포' 프로세스를 몸에 익히는 것이 중요합니다.
"완벽한 배포는 사용자가 배포 사실을 전혀 눈치채지 못하게 하는 것입니다."
'IT 이야기' 카테고리의 다른 글
| "전 세계 어디서든 빠르게" CDN(Content Delivery Network)의 원리 (1) | 2026.01.11 |
|---|---|
| "JSON이 전부는 아니다?" 데이터 직렬화 포맷 3종 비교 (JSON, XML, Protobuf) (0) | 2026.01.11 |
| "이벤트 폭주를 막아라" 디바운싱(Debouncing)과 쓰로틀링(Throttling) (0) | 2026.01.10 |
| "npm은 이제 옛말?" pnpm과 yarn Berry가 사랑받는 이유 (0) | 2026.01.09 |
| "에러는 막는 것이 아니라 관리하는 것" 백엔드 예외 처리 전략 (0) | 2026.01.09 |