GitHub Pages
소프트웨어 아키텍처 시각화를 위한 C4 모델
C4 모델은 소프트웨어 아키텍처를 Context, Container, Component, Code 4가지 계층으로 시각화하는 방법론으로, 서로 다른 수준의 추상화를 통해 다양한 이해관계자가 시스템을 이해할 수 있게 합니다. 지도의 줌 인/아웃 개념처럼 각 레벨에 맞는 세부 정도로 아키텍처를 표현하여 커뮤니케이션 비용을 크게 줄여줍니다.
핵심 요약
이 아티클은 프론트엔드 아키텍처 판단를 실무 판단 기준으로 다시 정렬해 주는 읽기 자료입니다. C4 모델은 소프트웨어 아키텍처를 Context, Container, Component, Code 4가지 계층으로 시각화하는 방법론으로, 서로 다른 수준의 추상화를 통해 다양한 이해관계자가 시스템을 이해할 수 있게 합니다. 지도의 줌 인/아웃 개념처럼 각 레벨에 맞는 세부 정도로 아키텍처를 표현하여 커뮤니케이션 비용을 크게 줄여줍니다.
이 아티클은 프론트엔드 아키텍처 판단를 면접에서 바로 꺼낼 수 있는 답변 프레임으로 접어 두는 메모처럼 읽으면 좋습니다.
프론트엔드 아키텍처 판단를 설명할 때 정의만 말하면 답변이 얕아지기 쉽습니다. C4 모델은 Context(시스템 전체), Container(애플리케이션/DB), Component(모듈), Code(클래스/함수) 4단계로 구성된다. 실무 판단 근거와 면접 답변의 밀도를 동시에 끌어올릴 수 있습니다.
학습 포인트
면접 답변으로 연결할 학습 포인트입니다.
C4 모델은 Context
C4 모델은 Context(시스템 전체), Container(애플리케이션/DB), Component(모듈), Code(클래스/함수) 4단계로 구성된다. 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.
C4 모델은 Context를 개념으로만 기억하고 맥락 없이 적용하면 C4 모델은 Context(시스템 전체), Container(애플리케이션/DB), Component(모듈), Code(클래스/함수) 4단계로 구성된다. 추상화만 늘리고 경계를 점검하지 않으면 구조가 커질수록 변경 비용이 급격히 커집니다.
각 레벨은 다른 대상자를 위해 설계된다: Conte
각 레벨은 다른 대상자를 위해 설계된다: Context는 비개발자, Code 레벨은 개발자를 위한 것이다. 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.
각 레벨은 다른 대상자를 위해 설계된다: Conte를 개념으로만 기억하고 맥락 없이 적용하면 각 레벨은 다른 대상자를 위해 설계된다: Context는 비개발자, Code 레벨은 개발자를 위한 것이다. 추상화만 늘리고 경계를 점검하지 않으면 구조가 커질수록 변경 비용이 급격히 커집니다.
UML보다 간단한 표기법을 사용하여 개발자가 아닌
UML보다 간단한 표기법을 사용하여 개발자가 아닌 이해관계자도 아키텍처를 이해할 수 있다. 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.
UML보다 간단한 표기법을 사용하여 개발자가 아닌 를 개념으로만 기억하고 맥락 없이 적용하면 UML보다 간단한 표기법을 사용하여 개발자가 아닌 이해관계자도 아키텍처를 이해할 수 있다. 추상화만 늘리고 경계를 점검하지 않으면 구조가 커질수록 변경 비용이 급격히 커집니다.
읽는 순서
- 1이론
"소프트웨어 아키텍처 시각화를 위한 C4 모델"의 멘탈 모델과 요약을 먼저 읽고, 프론트엔드 아키텍처 판단와 관련된 핵심 용어 3개를 적어보세요.
- 2구현
소프트웨어 아키텍처 시각화를 위한 C4 모델에서 다룬 아이디어를 작은 예제로 직접 구현하거나 기존 코드에 대입해 보면서 적용 조건을 확인하세요.
- 3실무
현재 프로젝트에서 프론트엔드 아키텍처 판단와 연결되는 화면이나 코드 리뷰 사례를 찾아, 어디서 같은 판단이 필요한지 정리해보세요.
- 4설명
동료에게 "C4 모델의 4가지 레벨(Context, Container, Component, Code)을 각각 설명하고, 언제 어떤 레벨의 다이어그램이 필요한지 설명해주세요."에 대한 답을 5분 안에 설명해보세요. 막히는 부분이 아직 이해가 얕은 구간입니다.
면접 연결 질문
[감점 답변] 용어 정의만 반복하거나 "소프트웨어 아키텍처 시각화를 위한 C4 모델에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] 각 레벨의 대상 독자와 표현하는 추상화 수준, 실제 활용 사례를 함께 설명하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.
[감점 답변] 용어 정의만 반복하거나 "소프트웨어 아키텍처 시각화를 위한 C4 모델에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] 팀 간 커뮤니케이션, 온보딩, 기술 부채 파악 등의 관점에서 설명하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.
[감점 답변] 용어 정의만 반복하거나 "소프트웨어 아키텍처 시각화를 위한 C4 모델에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] 표기법의 단순성, 대상 독자, 유지보수 편의성 등을 비교해서 설명하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.
자기 점검
"C4 모델은 Context"를 기능 목록으로만 외우는 것. 실제로는 왜 이 접근이 필요한지와 적용 조건까지 설명해야 합니다.
좋은 사례만 기억하고 실패 조건을 빼먹는 것. 실제 면접에서는 언제 위험해지는지까지 함께 말해야 합니다.