Skip to content

템플릿 조회 구조와 테스트 계약 정리#117

Merged
NaMinhyeok merged 1 commit into
mainfrom
codex/template-test-lombok-cleanup
Apr 26, 2026
Merged

템플릿 조회 구조와 테스트 계약 정리#117
NaMinhyeok merged 1 commit into
mainfrom
codex/template-test-lombok-cleanup

Conversation

@NaMinhyeok
Copy link
Copy Markdown
Contributor

개요

템플릿 조회 경로와 테스트 구성을 정리했습니다. 템플릿 목록/상세 조회가 별도의 read-side wrapper와 전용 JPA repository를 거치면서 실제 도메인 계약보다 구현 레이어를 더 많이 고정하고 있었고, 일부 구조 테스트도 특정 클래스명 존재 여부나 테스트 파일 위치 같은 스냅샷을 보호하고 있었습니다.

이번 변경에서는 템플릿 조회를 Templates aggregate repository 중심으로 단순화하고, 테스트는 설계 규칙과 외부 계약을 설명하는 이름과 범위로 정리했습니다. 동시에 getter/기본 생성자/생성자 주입처럼 의미가 분명한 반복 코드는 Lombok으로 줄였습니다.

변경 사항

  • 템플릿 조회에서 TemplateListReader, TemplateDetail, TemplateSummaryResponse, 전용 JPA list reader/repository를 제거했습니다.
  • FindTemplatesTemplateDetailResponseTemplate aggregate를 직접 사용하도록 정리했습니다.
  • Templates.findById, findAll@EntityGraph(attributePaths = "players")를 적용해 조회 후 응답 매핑에서 선수 컬렉션을 안정적으로 사용할 수 있게 했습니다.
  • TemplateConfiguration.from과 사용하지 않는 draft position limit 오류를 제거했습니다.
  • CoreException, InvalidDomainStateException, SettleAuction, JPA embeddable/value object의 반복 getter/기본 생성자 코드를 Lombok으로 줄였습니다.
  • 구현 파일 위치나 과거 클래스명 부재를 고정하던 구조 테스트를 제거하고, 남은 테스트는 Modulith 검증, internal package isolation, API/도메인 계약 중심으로 유지했습니다.
  • 테스트 메서드명을 컨트롤러 메서드명이나 구현 동작 중심에서 API 계약, 도메인 규칙, 스냅샷 발행 규칙 중심으로 바꿨습니다.

AS-IS / TO-BE

AS-IS

  • 템플릿 조회가 aggregate repository 외에 별도 list reader/JPA repository/wrapper DTO를 추가로 유지했습니다.
  • 일부 테스트가 설계 보호보다 현재 파일 배치, 클래스명, 메서드명 같은 구현 형태를 고정했습니다.
  • JPA 기본 생성자와 단순 getter가 수동 코드로 반복됐습니다.

TO-BE

  • 템플릿 조회는 TemplatesTemplate aggregate를 중심으로 흐릅니다.
  • 테스트는 모듈 경계, 도메인 invariant, 외부 API 응답 계약, 실시간 스냅샷 계약처럼 변경 비용을 지불할 가치가 있는 규칙을 보호합니다.
  • 반복 보일러플레이트는 Lombok으로 줄이고, 도메인 생성자와 규칙 검증은 그대로 유지합니다.

리뷰 포인트

  • Templates에 추가한 @EntityGraph가 템플릿 상세/목록 응답에서 필요한 선수 컬렉션 로딩 범위로 충분한지 봐주세요.
  • 삭제한 구조 테스트들이 실제 설계 규칙을 잃지 않았는지, 남은 ApplicationModules.verify()와 internal package isolation 규칙으로 충분한지 확인해 주세요.
  • 테스트 네이밍이 구현이 아니라 계약/설계 언어를 잘 드러내는지 봐주세요.

검증

  • ./gradlew check
  • ./gradlew integrationTest
  • git diff --check

@NaMinhyeok NaMinhyeok marked this pull request as ready for review April 26, 2026 14:14
@NaMinhyeok NaMinhyeok merged commit 45c0a5b into main Apr 26, 2026
2 checks passed
@NaMinhyeok NaMinhyeok deleted the codex/template-test-lombok-cleanup branch April 26, 2026 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant