Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Survey 도메인 및 SurveyService 일부 구현 #27

Merged
merged 4 commits into from
Jan 20, 2024

Conversation

JinhyeokFang
Copy link
Member

유저 인증과 컨트롤러, 포인트 적립/소모 기능은 제외하고 구현했습니다.
Member 등 일부 엔티티도 수정되어 머지 충돌 방지를 위해 PR 올렸습니다
확인부탁드립니다!

@JinhyeokFang JinhyeokFang added the feat 새로운 기능 개발 label Jan 20, 2024
@JinhyeokFang JinhyeokFang self-assigned this Jan 20, 2024
Copy link
Contributor

@mingmingmon mingmingmon left a comment

Choose a reason for hiding this comment

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

  1. SurveyServiceFacade를 둔 이유가 무엇인가요?
  2. SurveyControllerDTO랑 SurveyServiceDTO를 구분해서 둔 이유가 무엇인가요? SurveyControllerDTO쪽에 코드가 아직 작성이 안돼서 어떻게 구분해서 사용할지 감이 잘 안옵니다.
  3. SurveyConverter는 SurveySeriveDTO와 SurveyControllerDTO 중 어떤 DTO를 위한 컨버터인가요? 아니면 다른 용도가 있나요?

@JinhyeokFang
Copy link
Member Author

JinhyeokFang commented Jan 20, 2024

  1. Point를 지불하고 적립하는 Service에 SurveyService가 직접 Dependency를 가지면 순환 참조에 걸릴 수 있어서 Service를 저수준과 고수준으로 분리했습니다. SurveyService에서는 오직 Survey와 관련된 기능에만 의존성을 가집니다. Facade는 Service를 분리하는 데에 사용한 디자인 패턴명입니다.
    https://balldev.tistory.com/92
  2. Service에서 사용하는 DTO와 Controller의 인터페이스(입력으로 받는 ResponseBody)가 서로 의존하지 않도록 Service에서 사용할 DTO와 Controller의 DTO를 분리했습니다. 이렇게 작성하면 Controller를 변경해도 Service를 바꿀 필요가 없고, Service가 변경되어도 Controller의 인터페이스가 바뀔 필요가 없습니다.
    https://developer-ping9.tistory.com/261
  3. Controller단에서 데이터를 SurveyServiceDTO로 변환하는 컨버터입니다.

@JinhyeokFang JinhyeokFang merged commit b6b8986 into develop Jan 20, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat 새로운 기능 개발
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants