// cicd

CI/CD & DevOps

// cicd

CI/CD & DevOps

CI/CD & DevOps

배포 파이프라인 승인 게이트와 감사 로그 설계

배포 자동화를 도입하면 코드가 병합되는 순간부터 프로덕션까지 사람 손을 거치지 않고 흘러갑니다. 대부분의 변경에는 이것이 바람직하지만, 결제 로직이나 데이터 마이그레이션처럼 실수의 대가가 큰 배포에…

8 min read
CI/CD & DevOps

컨테이너 이미지 취약점 스캔을 CI에 통합하기

왜 이미지 스캔이 필요한가 컨테이너 이미지는 애플리케이션 코드뿐 아니라 베이스 이미지의 OS 패키지, 언어 런타임, 설치된 라이브러리까지 통째로 배포된다. 문제는 이 계층 대부분을 개발자가 직접 관…

3 min read
CI/CD & DevOps

CI 실패 자동 분류와 원인 알림 봇 구성하기

왜 CI 실패 분류가 필요한가 파이프라인이 커질수록 실패의 원인은 다양해진다. 코드 버그, 플래키 테스트, 인프라 타임아웃, 의존성 설치 실패, 시크릿 만료 등이 한데 섞여 "빨간 X"로만 표시된다…

4 min read
CI/CD & DevOps

성능 회귀 벤치마크를 CI 게이트로 세우기

왜 성능 회귀는 늦게 발견되는가 기능 버그는 테스트가 빨간불로 잡아준다. 하지만 응답 지연이 20% 늘거나 메모리 할당이 두 배가 되는 회귀는 대부분 통과한다. 단위 테스트는 "맞는가"만 검증하지 …

3 min read
CI/CD & DevOps

섀도 트래픽 미러링으로 배포 전 검증하기

왜 스테이징만으로는 부족한가 스테이징 환경은 합성 트래픽과 소량의 시드 데이터로 돌아간다. 문제는 장애 대부분이 프로덕션 특유의 조건 에서 터진다는 점이다. 실제 사용자 요청의 분포(특정 파라미터 …

3 min read
CI/CD & DevOps

계약 테스트로 서비스 간 호환성 깨짐 막기

왜 통합 테스트만으로는 부족한가 마이크로서비스가 늘어나면 서비스 A(소비자)가 서비스 B(제공자)의 API를 호출하는 관계가 얽힙니다. B 팀이 응답 필드 이름을 바꾸거나 필수 필드를 제거하면, B…

3 min read
CI/CD & DevOps

배포 프리즈 윈도우와 변경 동결 자동화

왜 배포 프리즈가 필요한가 연말 쇼핑 시즌, 대규모 마케팅 이벤트, 규제 심사 기간처럼 장애 비용이 급증하는 구간이 있다. 이때는 평소라면 무해했을 배포도 리스크가 된다. 롤백 인력이 부족한 새벽·…

3 min read
CI/CD & DevOps

CI에서 gitleaks로 자격증명 유출 차단하기

왜 시크릿 유출이 치명적인가 API 키, DB 비밀번호, 클라우드 액세스 키가 Git 히스토리에 한 번 커밋되면, 이후 커밋에서 삭제하더라도 히스토리에는 영원히 남는다. 공개 저장소라면 자동화된 봇…

3 min read
CI/CD & DevOps

GitHub Actions 동시성 제어로 중복 배포 막기

왜 중복 배포가 문제인가 같은 브랜치에 짧은 간격으로 여러 커밋이 푸시되면 배포 워크플로가 각각 실행된다. 문제는 이들이 서로 다른 시점의 아티팩트를 같은 환경에 밀어넣는다는 점이다. 커밋 A와 B…

3 min read
CI/CD & DevOps

모노레포 독립 버저닝: changesets 실전

왜 모노레포 버저닝이 문제가 되는가 여러 패키지를 한 저장소에 두면 코드 공유와 통합 테스트는 쉬워지지만, 배포 시점에 "무엇을 어떤 버전으로 올릴 것인가"가 골칫거리가 된다. 흔한 실패 패턴은 두…

4 min read
CI/CD & DevOps

머지 큐로 메인 브랜치 그린 유지하기

왜 "그린한 PR"이 메인을 깨뜨리는가 PR이 통과했다는 것은 그 시점의 메인 과 병합한 결과가 통과했다는 뜻이다. 여러 PR이 동시에 그린 상태로 대기하다 순차 머지되면, 각 PR은 서로의 변경을…

4 min read
CI/CD & DevOps

시크릿 관리: OIDC로 CI에서 클라우드 인증하기

왜 장기 자격증명이 문제인가 대부분의 CI 파이프라인은 클라우드에 접근하기 위해 액세스 키를 시크릿으로 저장한다. 하지만 정적 키는 한 번 만들면 만료되지 않고, 저장소·로그·포크된 PR을 통해 유…

3 min read
CI/CD & DevOps

카나리 배포 자동 롤백: 메트릭 기반 판정

왜 수동 롤백은 늦는가 새 버전을 100%로 한 번에 배포하면 장애가 전체 트래픽을 덮친다. 카나리 배포는 소수 트래픽(예: 5%)만 신 버전으로 보내 위험을 격리한다. 하지만 사람이 대시보드를 보…

3 min read
CI/CD & DevOps

피처 플래그로 배포와 릴리스 분리하기

배포(deploy)와 릴리스(release)를 같은 것으로 취급하면, 코드를 프로덕션에 올리는 순간이 곧 사용자에게 기능이 노출되는 순간이 됩니다. 이 결합은 릴리스 타이밍을 배포 파이프라인에 묶어…

5 min read
CI/CD & DevOps

트렁크 기반 개발로 머지 지옥 탈출하기

기능 브랜치를 만들고 며칠, 길게는 몇 주씩 작업하다 메인 브랜치에 합치려는 순간, 지옥이 시작된다. 그 사이 다른 사람들이 올린 수십 개의 커밋과 충돌하고, 충돌을 해결하고 나면 테스트가 깨지고,…

7 min read
CI/CD & DevOps

CI 테스트 병렬화로 피드백 루프 단축하기

개발팀이 빠르게 움직이려면 코드를 푸시한 후 “이 변경이 시스템을 망가뜨리지 않는다”는 확신을 최대한 빨리 얻어야 합니다. 그 확신을 주는 것이 CI 테스트이고, 그 확신을 얻는 데 걸리는 시간이 …

9 min read
CI/CD & DevOps

무중단 배포 완벽 비교: 블루-그린 vs 카나리

운영 중인 서비스를 중단 없이 새 버전으로 바꾸는 일은 쉬워 보이지만, 실제로는 수백만 원짜리 장애를 유발하는 가장 흔한 원인 중 하나입니다. 블루-그린, 카나리, 롤링 업데이트—세 전략은 각각 뚜…

6 min read