왜 필요한가

화면 변경과 업무 규칙, 저장 처리가 뒤섞여 있습니다. 무엇을 어디서 고쳐야 하는지 알 수 있도록 역할을 나눌 필요가 있습니다.

어떻게 해결하는가

  1. 가상 단일 프로세스: 독자 R1, A17 미저장. 메모리 또는 내장 데이터베이스 사용.
  2. HTTP·CLI 표현 계층이 애플리케이션 검증 코드를 참조·호출하고, 애플리케이션은 저장 계층을 참조·호출합니다. 이 폐쇄형 예시는 계층 건너뛰기를 금지합니다.
  3. 저장 완료가 위로 반환됩니다. 0 → 1건, 반복해도 1건. 빈 ID나 쓰기 전 실패는 0건 유지, 문제 수정 후 재시도.

HTTP를 CLI로 바꿔도 검증 위치는 유지됩니다.

논리 계층은 한 배포 안에 함께 둘 수 있습니다

설명을 위한 가상 예시

세 책임, 하나의 프로세스

R1 · A17 · 처음에는 미저장

단일 프로세스 · 점선 테두리

  1. 표현

    HTTP / CLI

    ID 입력 · 저장 완료 표시

    소스 의존성 ↓

    실행 중 호출 ↓

  2. 애플리케이션

    SaveArticle(R1, A17)

    ID 검증 · 저장 조율

    소스 의존성 ↓

    실행 중 호출 ↓

  3. 저장

    메모리 / 내장 데이터베이스

    저장 항목 한 건 기록

↑ 저장 완료 반환: 저장 → 애플리케이션 → 표현

폐쇄형 예시: 계층 건너뛰기 금지. HTTP를 CLI로 바꿔도 검증은 애플리케이션에 유지.

  • 저장 → 반복: 0 → 1 → 1건. 저장 완료 반환.
  • 빈 저장소에서: 빈 ID나 쓰기 전 실패 → 0건. 문제 수정 후 재시도.

HTTP·CLI와 메모리·내장 데이터베이스는 대안입니다. 데이터 이전을 뜻하지 않습니다.

무엇이라 부르는가

계층형 아키텍처는 책임을 나누고 계층 간 의존성을 제한합니다. 논리 계층마다 별도 서버가 필요한 것은 아닙니다. Microsoft

포트로 저장 의존성을 역전할 수 있습니다. 폴더 이름만으로 규칙이 강제되지는 않습니다.

단순 전달 계층도 관리 비용이 듭니다.