HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
👼
[팀2] 극락이들
/
📰
[극락이들] 3주차 프로젝트 공유사항
/
🤔
주디 질문 & 의견 모음
🤔

주디 질문 & 의견 모음

생성자
우선순위
2순위
태그
Backend
음식
💚해결 완료
조수연
조수연
최민석
최민석
김동건
김동건
남명훈
남명훈
이소진
이소진
황일용
황일용
완료
Yes
1. 패키지 구조2. Entity와 DTO3. DTO Inner class 4. Bundle 5. Response
 

1. 패키지 구조


패키지 구조의 개선이 필요할 것 같아요.
  • 지금 같은 depth에 domain 관련과 config, error 등이 섞여있는데 필요한 도메인을 찾기가 불편한 구조인 것 같습니다..!!
    • 그리고 도메인 안에서도 뭔가 애매하게 나눠진 기분이여서 조금 더 개선해보면 좋을 것 같아요~
    • notion image
      notion image
패키지 구조 관련해서 이전에 참고했던 링크입니다.
www.baeldung.com
https://www.baeldung.com/hexagonal-architecture-ddd-spring
Spring Guide - Directory 가이드 | Popit
해당 코드는 Github 를 확인해주세요. Spring Guide Test 전략 가이드 Exception 전략 가이드 Domain 객체 가이드 외부 API 가이드 Service 적절한 크기 가이드 Directory 가이드 패키지 구성은 크게 레이어 계층형, 도메인형 이렇게 2 가지 유형이 있다고 생각합니다. 각 유형별로 간단하게 설명하고 제 개인적인 Best Practices를 설명하겠습니다.
Spring Guide - Directory 가이드 | Popit
https://www.popit.kr/spring-guide-directory-%EA%B0%80%EC%9D%B4%EB%93%9C/
Spring Guide - Directory 가이드 | Popit
[스터디] 도메인 주도 설계 4주차 (1부 끝)
https://docs.google.com/presentation/d/19WRZ1kk0-uHbOzKjI3_u0HWmHqb6yaP9MT28DML5bxU/edit?usp=sharing [6주차] 18. 도메인 이벤트 [6주차] 19. 데이터 무결성 [8주차] 20. 실무 사례 검토 혹시, 도메인 주도 설계에 대해서 전혀 모르는 개발자는 필자의 이전 글을 먼저 읽어보고 오길 바란다. https://brunch.co.kr/@springboot/605 https://brunch.co.kr/@springboot/607 https://brunch.co.kr/@springboot/614 필자의 글이 너무 지루해서 읽기 싫다면, 에릭 에반스의 책을 읽으면 된다. http://www.yes24.com/Product/Goods/5312881?OzSrank=2 해당 서적이 정말 좋은 책이지만, 아쉽게도 쉽게 이해가 되지 않을 것이다.
[스터디] 도메인 주도 설계 4주차 (1부 끝)
https://brunch.co.kr/@springboot/615
[스터디] 도메인 주도 설계 4주차 (1부 끝)
DDD - #2 아키텍처
DDD Start의 2장 내용을 정리 아키텍처를 구성하는 요소는 크게 4가지로 나뉠 수 있다. 표현, 응용, 도메인 및 인프라스트럭처 로 나뉠 수 있으며, 각 계층별로 가져야 할 책임은 위 다이어그램을 통하여 확인이 가능하다. 표현 레이어 의 경우, 사용자 혹은 외부 클라이언트의 요청을 받는 첫 관문이며, 해당 레이어에서는 요청에 대한 유효성 검사 및 응용 레이어 호출을 위한 객체 생성 및 변환 작업이 주로 이뤄진다.
DDD - #2 아키텍처
https://stylishc.tistory.com/144
DDD - #2 아키텍처
 

2. Entity와 DTO


Entity와 DTO 검증 할 때 어떻게 하는 것이 일관성(?)을 유지하는데 좋을까요?
  • 예를 들어서 앨범에서 제목은 20자 이내만 들어갈 수 있는데, DTO 생성 시 똑같이 20자 이내로 입력되도록 검증해야 하는데 이렇게 할 경우 실수할 가능성도 있기 때문에 숫자를 그냥 쓰는게 맘에 안들어요... 그냥 VO에서 한 번만 검증 하나요..? 여러가지 방법이 있을 것 같은데 어떤 방식이 가장 좋을까요? (아래는 그냥 예시)
  • 그리고 message 부분 ResponseMessage로 관리해도 되나요?
    • Entity
      • notion image
    • DTO
      • notion image
 

3. DTO Inner class


롬복을 사용하지 않아서 코드가 길어지는데 Inner class로 관리하는게 맞는 걸까요?
  • 롬복을 사용할 경우에 getter, builder 어노테이션만 달면 끝나던 코드가 직접 getter 구현하고 builder 구현하다보면 엄청 길어지더라고요.
  • 이렇게 코드가 길어지는데 Inner class로 관리하는게 맞나라는 생각이 들어요.
  • Inner class로 관리했을 때의 장점이 사라지는 기분
 

4. Bundle


구피 Bundle 설명 다시 해주세요!!
  • Bundle 관련 너무 초반에 들어서 기억이 잘 안나네요. 구피 레포 코드 보면서 왜 사용하는지 대충 이해는 했는데, 실제로 API 짜다보면 bundle이 필요 없거나 사용하기 애매한 경우도 있어서 설명 다시 듣고 싶습니다!
  • 검색 해보려고 했는데 뭐라고 쳐야 할지,, 원하는 자료가 안나오더라고요.
 

5. Response


생성 or 수정 후 응답 보낼 때 createdAt, modifiedAt 도 같이 보내나요?
  • 구피, 데비는 어떻게 하고 있나요?
 

  • 전체적으로 네이밍이 이상함.
  • API request에 대한 로깅 필요.
  • facade와 service의 역할 분명히 하기
  • 글로벌 예외 처리 추가적으로 필요함
  • response enum에 있는 한글 메세지는 어디에 사용되나?
  • patch 안 쓰는 이유? 왜 put인가
  • update는 칼럼 하나에 대해서 도메인에 메소드 만들 것인지?
  • response 구조 개선
    • 현재 : ResponseEntity<RespontDto<CreateAlbumResponse>>>