Skip to content

Conversation

@fbehdgus906
Copy link
Contributor

@fbehdgus906 fbehdgus906 commented Nov 26, 2025

✅ 워크북 체크리스트

  • 모든 핵심 키워드 정리를 마쳤나요?
  • 핵심 키워드에 대해 완벽히 이해하셨나요?
  • 이론 학습 이후 직접 실습을 해보는 시간을 가졌나요?
  • 미션을 수행하셨나요?
  • 미션을 기록하셨나요?

✅ 컨벤션 체크리스트

  • 디렉토리 구조 컨벤션을 잘 지켰나요?
  • pr 제목을 컨벤션에 맞게 작성하였나요?
  • pr에 해당되는 이슈를 연결하였나요?
  • 적절한 라벨을 설정하였나요?
  • 스터디원들에게 code review를 요청하기 위해 reviewer를 등록하였나요?
  • 닉네임/main 브랜치의 최신 상태를 반영하고 있는지 확인했나요?

📌 주안점

Copy link
Member

@jjin70 jjin70 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API 설계까지 했으니 이제 정말 끝이 보입니당 .. 다들 시험이랑 스터디 마지막까지 파이팅입니닷 ...리뷰가 늦어져 죄송합니다..

  • DTO: 요청/응답 받을 데이터 형식 정의
  • Controller: 클라이언트와 통신
  • Service: 비즈니스 로직
  • Repository: 데이터 접근
  • Converter: DTO 변환

이 정도로 알아두시면 될 것 같고 처음이면 기본적인 CRUD (ex)게시판 쓰기, 읽기, 수정, 삭제 등등) 구현하면서 익숙해지는 게 좋을 것 같습니다!

워크북 구조랑 다른 컨벤션도 많으니 다른 레포들도 구경하면서 구조랑 컨벤션에 대해서 알아보는 걸 추천드립니다 (예를 들어 converter를 매번 별도로 두지 않고 dto 내부에서 담당하게 하는 경우도 많습니다)

코드 보고 전체적으로 공유하면 좋을 것 같은 내용들을 아래에 공통 정리했습니다!

1. @Setter 사용은 보통 지양합니다

이건 검색하면 레퍼런스들이 많이 나오니 찾아보시면 좋을 것 같습니다

2. DTO record/class

DTO 정의 시 record와 class가 섞여 있는 경우들이 보이는데, 큰 이유가 없으면 통일해야 협업할 때 일관성이 생겨 좋을 것 같습니다. 저는 원래 class를 사용했었는데 record는 기본 제공 메서드가 있다는 걸 알게 되어 record 사용을 시작했습니다!

3. Command/Query Service

Service, CommandService, QueryService가 섞여 있거나 네이밍이 일관되지 않은 부분들이 보여서 말씀드립니다

  • Query: 조회 로직 (ex) MemberQueryService
  • Command: 생성, 수정 등 조회 외의 로직 (ex) MemberCommandService

서비스가 크지 않은 경우에는 분리하지 않아도 되니 컨벤션을 정할 때 고민해보고 결정한다면 좋을 것 같습니다 (사용 이유는 CQRS 패턴에 대해 찾아보시면 됩니다)

4. 정적 팩토리 메서드(of,from, toEntity 등등)와 Builder 패턴 관련해서도 공부 후에 코드에 적용해보는 걸 추천드립니다. (객체 생성 시 사용됩니다!)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants