C4 모델은 소프트웨어 아키텍처를 모델링하기 위한 표기법이다.
C4모델은 시스템 컨텍스트, 컨테이너, 컴포넌트, 코드 순서로 수준(level)을 나누어 소프트웨어를 작은 단위로 분해해가는 방식으로 모델링하는 기법이다.
시스템 컨텍스트
최상위 추상화 요소로 시스템이 어떤 가치를 제공하는지 나타내며 보유하거나 개발하고 있는 소프트웨어와 연동되는 소프트웨어를 나타낼 때 사용한다.
컨테이너
소프트웨어 내부를 표현하는 추상화 요소로 서버와 클라이언트 데이터베이스 등이 어떻게 구성되어 있는지 나타낸다.
컴포넌트
컨테이너의 각 요소들을 추상화 하는 단계로 기능 단위로 묶을 수 있는 모듈을 의미한다.