책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 소프트웨어 공학
· ISBN : 9791169214124
· 쪽수 : 500쪽
· 출판일 : 2025-07-28
책 소개
CI/CD 실전 가이드
지속적 배포는 복잡한 시스템 속에서도 변화에 유연하게 대응할 수 있는 조직의 핵심 전략이다. 이 책은 지속적 배포의 개념과 역사부터 출발해, 실무에서 반드시 마주치는 문제와 그 해결 방법을 체계적으로 안내한다. 기획 단계의 백로그 분할, 개발 과정의 안전한 증분 설계, 배포 이후의 테스트 및 피드백 전략까지 개발 라이프 사이클의 전 과정을 아우르는 구체적인 방법론이 담겨 있다. 리액트, 스프링 부트, SQL 기반의 실전 예제부터 자동화 리팩터링과 A/B 테스트 같은 고급 주제까지 폭넓게 다루며, 단순한 기술 설명을 넘어 실제 현장에서 겪게 되는 고민에 대한 현실적인 해법을 제시한다. 마지막으로, 글로벌 기업들이 지속적 배포를 도입해 기술 문화를 어떻게 변화시켰는지를 보여주는 8가지 실제 사례를 수록했다. 이를 통해 실무에 바로 적용할 수 있는 생생한 인사이트와 노하우를 얻을 수 있을 것이다.
주요 내용
- 개발 계획을 실시간 프로덕션 배포를 염두에 두고 설계하는 방법
- 실제 운영 중인 기능을 리팩터링하거나 데이터 저장 방식을 변경하는 패턴
- 다양한 피처 토글로 프로덕션 환경에서 기능을 테스트하고 릴리스하는 방법
- 가시성, 성능, 테스트 자동화, 보안 요소를 고려해 작업을 나누고 배포하는 방법
- 작업 중인 기능을 점진적으로 프로덕션에 배포하면서도 회귀 오류를 방지하는 기법
더 빠른 피드백, 더 안전한 릴리스로 신뢰할 수 있는 소프트웨어 구축하기
이제 배포는 개발자만의 책임이 아닙니다. 프런트엔드, 백엔드, QA, 제품 관리자까지 모두가 함께 책임져야 할 핵심 과정이며, 조직의 민첩성과 제품 품질을 좌우하는 요소입니다. DORA 메트릭, 린, DevOps 같은 현대 개발 문화는 개발과 운영의 경계를 허물고 피드백 루프를 단축하며 이 변화를 가속화하고 있습니다. 이 책은 그런 흐름 속에서 독자가 중심에 설 수 있도록 도와줍니다. 이 책을 통해 개발 초기 기획부터 배포 이후 운영까지, 기능 단위 배포, 데이터 마이그레이션, A/B 테스트 전략 등 실무에 바로 적용할 수 있는 기술과 인사이트를 폭넓게 배울 수 있습니다. 소프트웨어를 더 빠르고 안전하게 전달하고 싶은가요? 지금 이 책에서 해답을 찾으시길 바랍니다.
이 책의 특징
- 이론부터 실전까지: 지속적 배포의 개념부터 실제 코드 레벨의 구현까지 체계적으로 안내
- 실전 예제 코드: 리액트(프런트엔드), 스프링 부트(백엔드), SQL(데이터베이스)을 아우르는 실용 예제를 제공
- 안전한 변경 관리: 운영 중인 기능을 리팩터링하고 데이터베이스 스키마를 마이그레이션하는 구체적인 패턴 제시.
- 글로벌 기업 사례 연구: 오토스카우트24, N26 등 8개 기업이 지속적 배포를 도입하고 기술 문화를 혁신한 과정을 심층 분석
- 개발 문화 개선: 기술적 프랙티스를 넘어, 조직이 변화에 대응하고 신뢰를 구축하는 문화 소개
대상 독자
- 지속적 배포를 잘 알고 있긴 하나, 과연 우리 팀에 적합한 프랙티스인지 의문인 사람
- 지속적 전달은 익숙하지만 지속적 배포는 그렇지 않아서 늘 제대로 한번 배워보고 싶은 사람
- 지속적 배포를 도입한 팀에 합류하게 됐는데, 지속적 배포를 하는 이유와 방법을 알고 싶은 사람
- 이미 지속적 배포로 전환하기로 했지만, 수동 프로덕션 게이트를 없애면 무슨 일이 벌어질지 알고 싶은 사람
- 완전 새로운 제품을 기획 중이고 이를 계기로 지속적 배포를 적용해보고 싶은데, 아무래도 처음이라 어디서부터 어떻게 시작해야 할지 막막한 사람
목차
[PART 1 지속적 배포]
CHAPTER 01 지속적 배포
_1.1 수개월, 수년마다 한 번 배포
_1.2 며칠마다 한 번 배포
_1.3 지속적 배포
_1.4 익스트림 프로그래밍
_1.5 데브옵스
_1.6 지속적 통합
_1.7 지속적 전달
_1.8 최종 프로덕션 게이트
_1.9 시사점
_1.10 지속적 배포는 위험한가?
_1.11 정리하기
CHAPTER 02 이점
_2.1 원피스 플로와 린 생산
_2.2 DORA 메트릭
_2.3 품질 시프트 레프트
_2.4 정리하기
CHAPTER 03 사고방식의 전환
_3.1 변경사항을 정의하는 것과 적용하는 것
_3.2 진행 중인 작업 숨기기
_3.3 분산 시스템
_3.4 프로덕션 경로 간의 계약
_3.5 배포는 릴리스가 아니다
_3.6 엔드투엔드 전달 라이프 사이클
_3.7 정리하기
CHAPTER 04 최소 요건
_4.1 자율적 다기능 팀
_4.2 이해관계자의 신뢰
_4.3 정리하기
CHAPTER 05 도전 과제
_5.1 배포에 민감한 시스템
_5.2 유저 설치 소프트웨어
_5.3 규제 대상 산업
_5.4 인지 부하
_5.5 정리하기
[PART 2 개발 이전]
CHAPTER 06 예정된 작업 나누기
_6.1 수평 분할 vs 수직 분할
_6.2 지속적 배포를 하면
_6.3 효과적인 수직 분할
_6.4 예제: 그로서루
_6.5 정리하기
CHAPTER 07 프로덕션 빌드
_7.1 배포성 요건
_7.2 테스트성 요건
_7.3 관찰 가능성 요건
_7.4 보안 요건
_7.5 성능 요건
_7.6 (좀 더) 완전한 유저 스토리 템플릿
_7.7 예제: 그로서루 유저 스토리에 CFR 추가
_7.8 정리하기
[PART 3 개발 단계]
CHAPTER 08 플랫폼 아키텍처 재구축
_8.1 유저 스토리
_8.2 그로서루 애플리케이션
_8.3 정리하기
CHAPTER 09 라이브 기능 리팩터링
_9.1 해야 할 일
_9.2 상품 식별 체계
_9.3 현재 상태
_9.4 목표 상태
_9.5 어떻게 목표를 달성할까?
_9.6 확장/축소 구현
_9.7 정리하기
CHAPTER 10 데이터와 데이터 손실
_10.1 해야 할 일
_10.2 현재 상태
_10.3 목표 상태
_10.4 어떻게 목표를 달성할까?
_10.5 이중 쓰기 구현 전략
_10.6 이중 읽기 구현 전략
_10.7 NoSQL
_10.8 정리하기
[PART 04 개발 이후]
CHAPTER 11 프로덕션에서 테스트
_11.1 왜 프로덕션에서 테스트를 해야 하나?
_11.2 어떻게 프로덕션에서 테스트를 할까?
_11.3 스테이징 이후의 스토리
_11.4 정리하기
CHAPTER 12 릴리스
_12.1 안티패턴: 빅뱅 릴리스
_12.2 안티패턴: 부분 배포로 일부만 릴리스
_12.3 릴리스에 기능 토글 응용
_12.4 카나리 릴리스
_12.5 A/B 테스트
_12.6 정리하기
[PART 05 사례 연구]
CASE STUDY A 오토스카우트24
_A.1 오토스카우트24의 당시 상황
_A.2 오토스카우트24의 지속적 배포 도입
_A.3 오토스카우트24의 지속적 배포 구현
CASE STUDY B 오토
_B.1 오토의 당시 상황
_B.2 오토의 지속적 배포 도입
_B.3 오토의 지속적 배포 구현
_B.4 참고 자료
CASE STUDY C N26
_C.1 N26의 당시 상황
_C.2 N26의 지속적 배포 도입
_C.3 N26의 지속적 배포 구현
_C.4 참고 자료
CASE STUDY D 클라이밋파트너
_D.1 클라이밋파트너의 당시 상황
_D.2 클라이밋파트너의 지속적 배포 도입
_D.3 클라이밋파트너의 지속적 배포 구현
CASE STUDY E 모타빌리티 오퍼레이션즈
_E.1 모타빌리티 오퍼레이션즈의 당시 상황
_E.2 모타빌리티 오퍼레이션즈의 지속적 배포 도입
_E.3 모타빌리티 오퍼레이션즈의 지속적 배포 구현
CASE STUDY F 레아 그룹
_F.1 레아 그룹의 당시 상황
_F.2 레아 그룹의 지속적 배포 도입
_F.3 레아 그룹의 지속적 배포 구현
CASE STUDY G 메이즈
_G.1 메이즈의 당시 상황
_G.2 메이즈의 지속적 배포 도입
_G.3 메이즈의 지속적 배포 구현
CASE STUDY H 메이즈
_H.1 트래블퍼크의 당시 상황
_H.2 트래블퍼크의 지속적 배포 도입
_H.3 트래블퍼크의 지속적 배포 구현