핵심 인사이트 (3줄 요약)

  1. 본질: 12 Factor App은 Heroku 공동창업자가 정리한 SaaS/클라우드 네이티브 애플리케이션 설계의 12가지 Best Practice이며, 이식성·확장성·개발-운영 일관성을 보장한다.
  2. 가치: 12 Factor를 따르지 않은 앱은 환경 의존성·설정 하드코딩·로그 파일 직접 관리 등으로 클라우드 배포 시 문제가 발생하지만, 12 Factor를 따르면 어떤 PaaS/K8s에서도 동일하게 동작한다.
  3. 판단 포인트: 특히 **III. Config(환경 변수)·VI. Processes(Stateless)·XI. Logs(stdout 스트림)**가 가장 자주 위반되며, 컨테이너 환경에서 12 Factor 준수가 필수이다.

Ⅰ. 개요 및 필요성

┌───────────────────────────────────────────────────────┐
│    12 Factor App                                      │
├───────────────────────────────────────────────────────┤
│  I.   Codebase — 1앱 = 1리포                         │
│  II.  Dependencies — 명시적 선언 (requirements.txt)  │
│  III. Config — 환경 변수로 분리 (하드코딩 금지)      │
│  IV.  Backing Services — DB·캐시를 리소스로          │
│  V.   Build/Release/Run — 단계 분리                  │
│  VI.  Processes — Stateless (세션은 외부 저장소)      │
│  VII. Port Binding — 자체 HTTP 서버                   │
│  VIII.Concurrency — 프로세스 수평 확장               │
│  IX.  Disposability — 빠른 시작·우아한 종료          │
│  X.   Dev/Prod Parity — 개발≈프로덕션               │
│  XI.  Logs — stdout 스트림                            │
│  XII. Admin Processes — 일회성 관리 작업              │
└───────────────────────────────────────────────────────┘
  • 📢 섹션 요약 비유: 12 Factor는 클라우드 앱의 건축 법규 12조이다. 이 규칙을 따라야 어떤 땅(클라우드)에서도 안전한 건물(앱)을 지을 수 있다.

Ⅱ. 아키텍처 및 핵심 원리

가장 중요한 3가지

Factor핵심위반 예
III. Config환경 변수DB 비번 하드코딩
VI. ProcessesStateless로컬 세션 저장
XI. Logsstdout파일에 직접 쓰기
  • 📢 섹션 요약 비유: Config는 "비밀번호를 코드에 적지 마", Processes는 "기억력(상태)에 의존하지 마", Logs는 "일기장(파일) 대신 방송(stdout)해라"이다.

Ⅲ. 비교 및 연결

비교전통 앱12 Factor 앱
설정config.xml 포함환경 변수
세션로컬 메모리Redis/외부
로그파일 직접 관리stdout 스트림
배포서버 종속이식 가능

Ⅳ. 실무 적용 및 기술사 판단

K8s와의 매핑

  • Config → ConfigMap/Secret.
  • Processes → StatelessSet, Deployment.
  • Logs → stdout → Fluentd → Elasticsearch.
  • Disposability → Graceful Shutdown (SIGTERM).

Ⅴ. 기대효과 및 결론

12 Factor App은 클라우드 네이티브 설계의 기본 교과서이며, K8s·Docker·CI/CD 환경에서 필수 준수 사항이다.


📌 관련 개념 맵

개념연결 포인트
Config환경 변수로 설정 분리
Stateless프로세스 무상태 원칙
Disposability빠른 시작·우아한 종료
클라우드 네이티브12 Factor의 상위 패러다임
K8s12 Factor 구현의 최적 플랫폼

📈 관련 키워드 및 발전 흐름도

[전통 서버 앱 (설정·상태 내장, ~2010s)]
    │
    ▼
[12 Factor App (Heroku, 2011) — SaaS 설계 원칙]
    │
    ▼
[Docker + K8s (2014~) — 12 Factor 최적 구현]
    │
    ▼
[Beyond 12 Factor (2016) — API First, 텔레메트리 등 추가]
    │
    ▼
[현재: 클라우드 네이티브 — 12 Factor + MSA + GitOps]

👶 어린이를 위한 3줄 비유 설명

  1. 12 Factor는 클라우드 앱의 건축 법규 12가지예요.
  2. "비밀번호를 코드에 적지 마(Config)", "기억력에 의존하지 마(Stateless)" 같은 규칙이에요.
  3. 이 규칙을 따르면 어떤 클라우드에서도 안전하게 앱이 동작한답니다!