kakao-tech-campus-2nd-step3 / Team4_BE

4조 백엔드
4 stars 3 forks source link

BodyInfoService의 부재 #73

Closed chris0825 closed 4 weeks ago

chris0825 commented 1 month ago

현재 상황

건의 사항

사유

noojmogstel commented 1 month ago

User / Trainer 를 각각 다른사람이 작업해서 통일되지 않은 코드스타일 인것같습니다.

저는 Step2 때도 Service - Repository 는 1:1로 매핑하고 Service 레이어에서 다른 Service를 호출했고, 순환참조가 우려되는 부분은 Facade 패턴을 사용해서 해결했었습니다.

Trainer는 제가 작성했던 부분이라 Career와 같이 개발하면서 위에 말한 방식으로 개발했습니다.

코드스타일을 통일하는것은 좋다고 생각합니다. 개인적으로 BodyInfoService를 따로 만드는것이 단위테스트할때 더 좋아보이기는 합니다. 그렇지 않다면 UserService를 테스트하는 과정에서 BodyInfo의 비즈니스로직도 테스트를 같이해야 할것같다는 생각.

아래 글도 읽어보시면 좋을듯합니다! https://velog.io/@lej7122/Spring-%ED%95%9C-Service%EA%B0%80-%EB%8B%A4%EB%A5%B8-Service-%EB%98%90%EB%8A%94-Repository%EB%A5%BC-%EC%9D%98%EC%A1%B4%ED%95%98%EB%8A%94-%EA%B2%BD%EC%9A%B0

chris0825 commented 1 month ago

오 좋습니다! 저도 BodyInfoService로 UserService에 있는 BodyInfo내용을 분리하는게 좋다고 생각이 들어서 그렇게 처리하도록 하겠습니다

GamJaDo commented 1 month ago

저도 bodyinfoService를 분리하는게 좋을것 같습니다

chris0825 commented 1 month ago

넵 혹시 그러면 그 다음 문제로 BodyInfoService의 접근 방법이 고민인데,,,,

일단 먼저 분리된 CareerService는 CareerController없이 TrainerService에서 참조하는 방식으로 구현되어 있더라구요. 그러면 BodyInfoService의 참조 방식도 UserService에서 하는게 좋다고 생각하시나요 아니면 Career와 BodyInfo Contoller를 새로 생성하여 각각 Controller와 Service가 1:1이 되는게 낫다고 생각하시나요,,?

GamJaDo commented 1 month ago

커리어는 커리어 컨트롤에서 관리하고 트레이너는 트레이너 컨트롤로에 각각 관리하는게 맞다고 봅니다. 저도 개발하면 그런식으로 개발하는데 제가 트레이너를 안 만들다보니 이렇게 구현되어 있었네요

noojmogstel commented 1 month ago

음 저는 API가 구분되어 있지 않고 Trainer API에서 커리어까지 처리하는 방식이라 TrainerService에서 CareerService를 호출했었습니다.