Skip to content

Conversation

@h2jinee
Copy link

@h2jinee h2jinee commented Jan 15, 2026

📌 Summary

  • 3단계 - 수강신청(DB 적용)을 구현했습니다.
  • TDD 방식으로 Repository 테스트를 먼저 작성한 후 구현했습니다.
  • JdbcTemplate을 활용한 쿼리 구현은 익숙하지 않아 시간이 오래 걸릴 것 같아서 AI의 도움을 받았습니다.

🤔 고민한 점 및 질문

  • 디미터의 법칙:
    • Repository에서 session.getSessionTypeName() 처럼 위임 메서드를 통해 접근하도록 했습니다. AI에게 물어보니 Repository는 객체를 테이블로 매핑하는 역할을 수행하므로, 인프라 계층 내에서는 객체 그래프를 탐색하는 것이 허용될 수 있다는 답변을 받았습니다. 하지만 아직 거기까지 이해하지를 못해서... 여쭤보고 싶습니다.
  • Repository 반환 타입:
    • EnrollmentRepository.findBySessionId()의 반환 타입을 일급 컬렉션이 아닌 List<Enrollment>로 구현했습니다. AI에게 물어보니 리포지토리는 순수한 자료구조만 넘기고 비즈니스 로직이 포함된 일급 컬렉션은 서비스 계층에서 만드는 게 역할 분리에 맞다는 답변을 받았는데요... 여기도 아직 이해를 못해서 우선 AI 답변에 따라 구현을 진행했는데 적절한지 궁금합니다.
  • CoverImage 테이블 분리:
    • Session 테이블에 필드로 포함시키지 않고 CoverImage를 별도 테이블로 분리했습니다. 이미지 자체의 독립적인 검증 로직이 존재하고, 향후 확장성을 고려했을 때 별도 엔티티로 관리하는 것이 더 맞다고 판단했는데 올바른 접근이 맞을까요?
  • Enrollment 도메인 클래스 추가:
    • DB 매핑을 위해 Enrollment 클래스를 새로 만들었습니다. AI에게 물어보니 DB 테이블과 매핑을 깔끔하게 하려면 중간 지점 역할을 하는 클래스가 필요하다고 해서 해당 클래스를 추가했습니다. 사실 제가 이런 구조적인 분리를 왜 해야 하는지 완벽히 이해하지 못한 상태라... 적절한지 궁금합니다.

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