왜 필요한가
화면 변경과 업무 규칙, 저장 처리가 뒤섞여 있습니다. 무엇을 어디서 고쳐야 하는지 알 수 있도록 역할을 나눌 필요가 있습니다.
어떻게 해결하는가
- 가상 단일 프로세스: 독자 R1, A17 미저장. 메모리 또는 내장 데이터베이스 사용.
- HTTP·CLI 표현 계층이 애플리케이션 검증 코드를 참조·호출하고, 애플리케이션은 저장 계층을 참조·호출합니다. 이 폐쇄형 예시는 계층 건너뛰기를 금지합니다.
- 저장 완료가 위로 반환됩니다. 0 → 1건, 반복해도 1건. 빈 ID나 쓰기 전 실패는 0건 유지, 문제 수정 후 재시도.
HTTP를 CLI로 바꿔도 검증 위치는 유지됩니다.
설명을 위한 가상 예시
세 책임, 하나의 프로세스
R1 · A17 · 처음에는 미저장
단일 프로세스 · 점선 테두리
표현
HTTP / CLI
ID 입력 · 저장 완료 표시
소스 의존성 ↓
실행 중 호출 ↓
애플리케이션
SaveArticle(R1, A17)
ID 검증 · 저장 조율
소스 의존성 ↓
실행 중 호출 ↓
저장
메모리 / 내장 데이터베이스
저장 항목 한 건 기록
↑ 저장 완료 반환: 저장 → 애플리케이션 → 표현
폐쇄형 예시: 계층 건너뛰기 금지. HTTP를 CLI로 바꿔도 검증은 애플리케이션에 유지.
- 저장 → 반복: 0 → 1 → 1건. 저장 완료 반환.
- 빈 저장소에서: 빈 ID나 쓰기 전 실패 → 0건. 문제 수정 후 재시도.
HTTP·CLI와 메모리·내장 데이터베이스는 대안입니다. 데이터 이전을 뜻하지 않습니다.
무엇이라 부르는가
계층형 아키텍처는 책임을 나누고 계층 간 의존성을 제한합니다. 논리 계층마다 별도 서버가 필요한 것은 아닙니다. Microsoft
포트로 저장 의존성을 역전할 수 있습니다. 폴더 이름만으로 규칙이 강제되지는 않습니다.
단순 전달 계층도 관리 비용이 듭니다.
이 선택에 관한 이야기
세 언어가 댓글을 공유합니다. 작성하려면 GitHub 로그인이 필요합니다.