작업 절차
- •유스케이스 입력/출력을 명시적 타입으로 정의한다.
- •비즈니스 규칙을 서비스 계층에 집중시킨다.
- •쓰기 작업 트랜잭션 경계를 명확히 설정한다.
- •유효하지 않은 상태에는 의미 있는 도메인/애플리케이션 예외를 사용한다.
- •정상/경계/실패 경로 단위 테스트를 작성한다.
규칙
- •오케스트레이션 흐름을 읽기 쉽게 유지한다.
- •외부 전송 포맷 파싱은 서비스에서 하지 않는다.
- •리포지토리 접근은 유스케이스 의도를 드러내도록 유지한다.
모듈 내부 배치 규칙
- •서비스 관련 코드는
modules/application에만 둔다. - •권장 패키지:
service,port/in,port/out,exception,usecase(선택) - •
controller는api, 도메인 모델(entity,valueobject)은domain, JPA 구현은infrastructure에 둔다.
완료 체크리스트
- •단위 테스트가 핵심 비즈니스 규칙을 검증한다.
- •트랜잭션 가정이 코드 또는 PR 노트에 드러난다.
번들 리소스
- •레퍼런스 인덱스:
references/INDEX.md - •서비스 설계 체크리스트:
references/service-design-checklist.md - •서비스 코드 샘플:
references/service-usecase-sample.md - •서비스 테스트 샘플:
references/service-test-sample.md - •프로젝트 백엔드 아키텍처 가이드:
../../../agents/guidelines/backend-architecture.md - •프로젝트 서비스 테스트 가이드:
../../../agents/guidelines/service-testing.md - •프로젝트 협업 가이드:
../../../agents/guidelines/collaboration.md - •서비스 스캐폴드 스크립트:
scripts/scaffold_service.py - •서비스 템플릿:
assets/service_template.kt