FEInterview Prep

build-tools · medium priority

CI/CD & GitHub Actions

자동화된 빌드·테스트·배포 파이프라인

intermediate 난이도3시간토스당근카카오네이버
시작 전
이해도
매우 낮음

학습 개요

탄생 배경

쉬운 설명

복잡한 개념을 실생활 비유로 설명합니다.

공장 컨베이어 벨트

CI/CD는 공장의 컨베이어 벨트입니다. 개발자가 코드를 올리면(컨베이어에 놓으면) 자동으로 품질 검사(테스트), 포장(빌드), 배달(배포)이 순서대로 이루어집니다. 사람이 수동으로 할 때의 실수와 지연을 없앱니다.

핵심 개념

CI vs CD 비교
구분의미목적예시
CI지속적 통합 (Continuous Integration)PR마다 빌드·테스트 자동 실행PR 생성 → 테스트 통과 여부 확인
CD (Delivery)지속적 전달배포 가능한 아티팩트 자동 생성main 병합 → Docker 이미지 빌드
CD (Deployment)지속적 배포프로덕션까지 자동 배포스테이징 통과 → 프로덕션 자동 배포

실무 적용

어떤 상황에서 사용하는가

PR 머지 시 테스트 없이 바로 배포해 서비스 장애가 발생하는 상황을 방지해야 할 때

어떻게 적용하는가

소규모: Vercel/Netlify 자동 배포(Push to main = 배포)로 시작. 중대규모: GitHub Actions로 TypeScript 타입 체크·린트·테스트·빌드 파이프라인 추가. 엔터프라이즈: 스테이징 → 프로덕션 단계적 배포, 슬랙 알림 연동. 당근마켓: main 브랜치 배포 시 테스트 → Docker 빌드 → ECR 푸시 → ECS 롤링 업데이트 자동 실행.

흔한 실수와 안티패턴

  • Secrets를 YAML에 직접 작성 금지 — GitHub Secrets 사용
  • npm install 대신 npm ci 사용 — 잠금 파일 기반 재현 가능한 설치
  • 캐싱 설정 없으면 매번 node_modules 재설치로 느려짐

면접 질문

중급토스당근카카오

답변 방향 힌트

순서, 각 단계의 목적

반드시 언급할 키워드

  • 빠른 피드백
  • 단계별 검증
  • 배포 안전성

예상 꼬리 질문

  • 배포 롤백 전략은?
  • Feature Flag와 CI/CD를 함께 사용하는 방법은?

학습 자료