설계 검증에 쓰이는 다이어그램 종류
how-to-verify-implementation-matches-design|설계 검증에서 "AI에게 구조도를 그려달라"고 할 때, 확인하고 싶은 대상에 따라 적절한 다이어그램이 달라진다. 크게 정적 구조, 동적 행동, 배포 구조 세 관점이 있다.
정적 구조 — "코드가 어떻게 조직되어 있나"
코드를 실행하지 않고 볼 수 있는 것들.
Class Diagram
객체 간의 관계를 보여준다. 도메인 모델이 설계와 일치하는가를 검증한다.
Package/Module Diagram
폴더/모듈 단위의 의존 관계. 아키텍처(Layered 등)가 지켜졌는가를 검증한다. 화살표가 항상 위→아래인지, 층을 건너뛰는 의존이 없는지 확인.
ER Diagram (Entity-Relationship)
DB 테이블 간 관계. DB 스키마가 도메인 모델과 일치하는가를 검증한다. Course-Lecture 분리가 테이블에서도 반영됐는지.
동적 행동 — "실행하면 어떻게 흐르나"
코드가 돌아갈 때 일어나는 것들.
Sequence Diagram
하나의 기능이 실행될 때 모듈 간 호출 순서. 기능 흐름이 설계 의도와 같은가를 검증한다.
"충돌 검사가 저장 전에 일어나는가?" 같은 순서 문제를 잡을 수 있다.
Flowchart
하나의 로직 안에서의 분기와 판단.
비즈니스 로직의 분기가 맞는가를 검증한다. "충돌 시 어떻게 되나?", "중복 등록은?" 같은 엣지 케이스 처리 확인.
배포 구조 — "어디서 뭐가 돌아가나"
designing-local-app-with-server-dependency|로컬+서버 혼합 구조처럼 물리적 배치가 중요한 경우.
검증 대상: 물리적 배치가 맞는가. "SQLite가 정말 앱 안에 내장돼 있는가?", "LLM 통신이 HTTP로 격리돼 있는가?"
어떤 상황에 어떤 다이어그램을 쓰나
| 내가 확인하고 싶은 것 | 쓸 다이어그램 | 확인 소요 | |---|---|---| | 도메인 모델이 맞는가 | Class Diagram | 5분 | | 아키텍처가 지켜졌는가 | Package Diagram | 10분 | | DB 구조가 맞는가 | ER Diagram | 5분 | | 기능 흐름이 맞는가 | Sequence Diagram | 10분 | | 분기 로직이 맞는가 | Flowchart | 5분 | | 물리 배치가 맞는가 | Deployment Diagram | 3분 |
매번 다 그릴 필요 없어. 검증 루틴에 맞춰서:
Step 1 (폴더 구조) → Package Diagram 요청
Step 2 (모델 확인) → Class Diagram 요청
Step 3 (import 방향) → Package Diagram으로 이미 확인됨
Step 4 (동작 확인) → 핵심 기능 하나만 Sequence Diagram 요청
"SQLite가 앱 안에 내장돼 있는가?", "LLM 통신이 HTTP로 격리돼 있는가?" 등을 확인한다.
상황별 선택 가이드
| 확인하고 싶은 것 | 다이어그램 | 소요 | |---|---|---| | 도메인 모델 일치 | Class Diagram | 5분 | | 아키텍처 준수 | Package Diagram | 10분 | | DB 구조 일치 | ER Diagram | 5분 | | 기능 흐름 | Sequence Diagram | 10분 | | 분기 로직 | Flowchart | 5분 | | 물리 배치 | Deployment Diagram | 3분 |
매번 다 그릴 필요 없다. Package + Class 두 개면 80% 검증 가능하고, 나머지는 필요할 때 추가하면 된다.
다이어그램 종류를 외울 필요는 없다. **"나는 지금 뭘 확인하고 싶은가?"**를 먼저 정하고 그에 맞는 도구를 고르면 된다. 구조가 궁금하면 정적, 흐름이 궁금하면 동적.