Conversation
|
Q1. 패키지 구조 패키지를 잘 나누기 위해서 가장 먼저 생각해야 할 것은, 어떤 컨셉으로 프로젝트를 구조화 할것인가~ 라고 생각해요. 현재 제가 프로젝트의 구조를 살펴 봣을땐 프로젝트 내부에서도 여러 컨셉이 혼재 되어있다는 느낌을 받고 있어요. 한가지 예시로 Entity/Dto/Domain/Request&Response 이렇게 다양한 종류의 클래스들이 존재 하는것으로 보이는데, 패키지 구조를 보면 omocha-domain/src/main/java/org/auction/domain/auction/domain/entity/AuctionEntity.java 와 같이 domain 안에 auction 안에 domain이 다시 있고, 그 안에 entity까지 있어요. 도메인과 인프라스트럭처를 구분하고 싶었던것 같은데 현 상태는 패키지의 depth만 깊어진 상태로 보여요. 또 bid쪽은 domain 패키지가 하위에 없고 바로 entity패키지가 있기도 하구요. 또 chat쪽은 domain 패키지 하위에 dto패키지가 있고... |
|
Q2. 낙찰 처리 |
|
Q3. Entity의 속성 |
|
Q4. QueryDSL |
|
Q5. Service 코드 개선 와 같은 부분들은 해당 서비스 코드 뿐만 아니라 다른 서비스코드 전역에 걸쳐서도 나타날것 같은데요. 이런 경우는 Repository 자체를 한번 더 래핑 하는게 어떨까요? RepositoryAdpater 혹은 CommandService 등을 만든 후, 반복되는 이 코드에서, AuctionListResponse 의 생성자로 auction, imageKeys 등등을 받아서 생성할 수 있도록 만든다면, 이런식으로 줄일수 있는거죠. 이것을 이제 생성자가 아니라 팩토리 메서드를 이용 한다면 인자가 여러개이기 때문에 of라고 명명한 후 이렇게도 만들수가 있겠네요. 생성 로직은 팩토리 메서드 안에 두고요. |
|
Q6. Entity를 넘겨주는 방법 |
Final 중간발표 이후 코드리뷰 요청 보내드립니다!
노션 페이지 : https://www.notion.so/Final_-_1-Omocha-eff998bfd0524dd3926822834f9cd433?pvs=4