NestJS · Project Design

요구사항을 API와 데이터 경계로 바꾸기

프로젝트 설계는 기능 목록을 적는 단계가 아니라, 사용 사례를 API 계약, 데이터 모델, 권한 규칙, 운영 품질 기준으로 번역하는 작업이다.

01

행위 추출

회원가입, 주문 생성, 문서 공유처럼 사용자 행동을 명령과 조회로 나눈다.

02

계약 작성

각 행동의 요청 DTO, 응답 DTO, 오류 코드를 먼저 정의한다.

03

데이터 모델

엔티티 관계, 소유권, 상태 전이, 삭제 정책을 설계한다.

04

API 계약 검토

권한 누락, 중복 처리, 감사 로그, 성능 목표를 acceptance 기준에 포함한다.

Command
상태 변경 생성, 수정, 취소, 승인 같은 행위
idempotency와 권한 중요
Query
조회 목록, 상세, 통계, 검색 조건
pagination과 filter 설계
Entity
영속 데이터 관계, unique 제약, soft delete 여부
DB 제약으로 무결성 보강
Policy
접근 규칙 role, ownership, organization scope
API마다 명시

완료 기준 · 오류 계약 · 데이터 제약 점검

요구사항 계약 검수 기능 설명에 성공 조건과 실패 조건이 함께 있다.
오류 계약 validation, conflict, forbidden, not found가 구분돼 있다.
데이터 제약 중복과 상태 전이가 DB와 서비스 양쪽에서 보호된다.
관측 중요 명령은 로그와 감사 기록 기준이 있다.