IT/아키텍처

C4 모델(C4 Model)

Life Log 2025. 12. 3. 22:49
728x90
반응형

소프트웨어 아키텍처를 가장 명확하고 단계적으로 표현하는 방법

대부분의 시스템은 점점 복잡해지고,
이 복잡함을 한 번에 설명하거나 문서화하기는 쉽지 않습니다.

그래서 등장한 것이 바로 C4 모델(C4 Model)입니다.
개발자뿐 아니라 기획자, 디자이너, 운영팀, 심지어 임원까지
누구나 시스템을 한눈에 이해하도록 돕는 최고의 아키텍처 표현 방식입니다.


🧱 C4 모델이란?

C4 모델은 소프트웨어 시스템의 구조를 4단계로 나누어 시각화하는 방법입니다.

Context → Containers → Components → Code
(C1 → C2 → C3 → C4)

즉,
큰 그림에서 세부 구조까지 단계적으로 zoom-in 해서 설명하는 모델입니다.

이 방법을 사용하면 시스템의 기능, 구성 요소, 의존 관계를 명확하게 정리할 수 있어
설명, 문서화, 공유, 온보딩에 매우 효과적입니다.


🧱 왜 C4 모델을 사용해야 할까?

  • 복잡한 시스템을 단계적으로 설명할 수 있다
  • 기술/비기술 인력 모두 이해할 수 있다
  • 아키텍처 문서화에 즉시 활용 가능
  • 신규 개발자 온보딩이 빨라진다
  • MSA, 모놀리스, 클라우드 등 어떤 시스템에도 적용 가능

C4 모델은 단순하면서도 강력한 아키텍처 표현 방식입니다.


🧩 C1 — 시스템 컨텍스트 다이어그램

“이 시스템은 무엇이며, 누가 사용하고, 어떤 시스템과 연결되어 있는가?”

C1은 전체 시스템을 가장 높은 레벨에서 바라봅니다.

포함 내용

  • 사용자(Actors)
  • 외부 시스템
  • 전체 시스템의 역할

예시

[사용자] → [통합검색 시스템] → [문서관리/메일/포털 시스템]

C1만 봐도
“아, 이 시스템은 어떤 세상 속에서 움직이고 있구나”
하는 맥락(Context)이 잡힙니다.


🧩 C2 — 컨테이너 다이어그램

“시스템 내부를 구성하는 실행 단위는 무엇인가?”

여기서 Container는 Docker 같은 기술 용어가 아니라,
**“배포/실행 가능한 애플리케이션 단위”**를 의미합니다.

포함 내용

  • Web UI / Mobile App
  • API 서버
  • DB
  • 메시지 브로커
  • 배치 시스템

예시

[Web UI]
    ↓
[API 서버] → [검색엔진] → [DB]

C2는 전체 시스템의 기술적 구조를 보여주는 가장 중요한 단계입니다.


🧩 C3 — 컴포넌트 다이어그램

“각 컨테이너는 어떤 컴포넌트(기능 단위)로 이루어져 있는가?”

컨테이너 내부를 기능적으로 나누어 보여줍니다.

예시 (API 서버 내부)

[Search Controller]
[Search Service]
[Ranking Component]
[Log Component]
[Data Access Component]

C3를 통해
“API 서버 내부가 어떤 역할 단위로 나누어져 있는지”
정확히 이해할 수 있습니다.


🧩 C4 — 코드 다이어그램

“컴포넌트를 이루는 실제 코드 구조는 어떻게 되어 있는가?”

필요할 때만 그립니다.
너무 낮은 레벨이기 때문에 매번 만드는 문서는 아닙니다.

포함 내용

  • 클래스
  • 인터페이스
  • 패키지 구조
  • 상속/구현 관계

C4는 구체적인 개발 설계 단계에서 사용됩니다.


🧱 C4 모델 요약 (표)

단계 이름 설명 대상자

C1 시스템 컨텍스트 전체 시스템과 외부 환경 경영/기획/전사
C2 컨테이너 실행되는 애플리케이션 단위 개발자/아키텍트
C3 컴포넌트 기능 단위 구조 개발자
C4 코드 클래스/패키지 구조 상세 설계 시

🧱 C4 모델이 특히 좋은 이유

✔ 1. 누구에게나 맞는 수준을 제공

  • 경영자에게는 C1
  • 기획자에게는 C1~C2
  • 개발자에게는 C2~C3
  • 아키텍트에게는 모든 단계

✔ 2. 문서화 난이도를 획기적으로 낮춘다

“무엇을 그려야 하지?” 고민할 필요 없음.
C1~C3만 있어도 대부분의 시스템 설명이 끝납니다.

✔ 3. 시스템의 복잡성을 자연스럽게 단계화

한 번에 너무 많은 정보를 주지 않아 가독성 상승.

✔ 4. 구조적 사고를 강제

애초에 설계가 명확해짐 → 품질 향상.


🧱 C4 모델이 실제 사용되는 곳

  • 마이크로서비스(MSA) 구조 문서화
  • 신규 프로젝트 아키텍처 설계
  • 레거시 시스템 구조 리뉴얼
  • 개발자 교육/온보딩
  • IT 감사/ITGC용 시스템 이해 문서
  • RFP(제안요청서), 기술 제안서

대부분의 엔터프라이즈 프로젝트에서 표준처럼 사용됩니다.


🧾 마무리

C4 모델은 아키텍처 문서화의 정석입니다.
복잡한 시스템을 단순하게 설명하고, 팀 전체의 이해도를 맞추는 데 탁월합니다.

정리하면:

  • C1: 세상 속의 시스템
  • C2: 시스템 내부의 실행 구조
  • C3: 각 실행 단위의 기능 구조
  • C4: 필요한 경우 클래스 수준까지

시스템을 설계하거나 설명해야 하는 상황이라면
C4 모델은 반드시 알고 있어야 하는 필수 도구입니다.

 

728x90
반응형