인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

아라레님의 프로필 이미지
아라레

작성한 질문수

서버개발자 과제전형 완벽가이드 - 1편

데이터베이스 연결

비즈니스 로직 담당 서비스

해결된 질문

작성

·

58

0

비즈니스 로직만을 담당하는 BookApplicationService 를 두는게 새롭고 좋은 구조 아닐까 생각이 들어서 제 생각이 맞는지 궁금해서 여쭙습니다.

 

Query 이름의 서비스는 조회만을

Command 는 등록, 수정, 삭제 담당하는 것이고

또한 이런 서비스 구조가 순환참조 발생 가능성도 줄일 수 있겠죠?

 

p.s 강의 잘 듣고 있습니다. 처음 겪어보는 내용들이 많아서 재밌고 배울게 많네요. 강의 빨리 더 내주십시오.

답변 2

1

J Tech님의 프로필 이미지
J Tech
지식공유자

안녕하세요 아라레님! 질문 남겨주셔서 감사합니다

넵 말씀주신것처럼 책임분리(명령과 조회)로 인해 의존관계가 간소화되어 순환참조 가능성이 줄어든다고 볼 수 있겠네요!

관련 패턴에 대해서 비슷한 질문을 해주신분이 계셔서 해당 답변(답변링크)도 참고해주시면 감사하겠습니다.

추가적인 궁금증이 있다면 언제든 다시 말씀주세요 🙏

아라레님의 프로필 이미지
아라레
질문자

네 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 아라레님,

비즈니스 로직을 담당하는 별도의 Service를 두는 것은 좋은 설계입니다. 특히, 비즈니스 로직을 Command 서비스와 Query 서비스로 분리하여 구현하는 방식은 CQRS (Command Query Responsibility Segregation) 패턴과 밀접한 관련이 있습니다. 이를 통해 읽기와 쓰기 작업에 대해 더 나은 확장성과 유지보수성을 제공할 수 있습니다.

CQRS 패턴의 장점:

  1. 단일 책임 원칙: 각 서비스가 명확한 책임을 가지게 되어 코드의 명확성과 유지보수성을 높입니다.
  2. 성능 최적화: 읽기와 쓰기 작업을 분리하여 각각 독립적으로 처리할 수 있으므로 성능을 최적화할 수 있습니다.
  3. 순환 참조 감소: 명확하게 분리된 서비스 구조로 인해 의존 관계가 복잡해질 위험이 줄어들며, 순환 참조 문제도 미연에 방지할 수 있습니다.

이와 관련된 구체적인 사례와 더 많은 설명은 기존의 관련 답변을 참고하시면 도움이 될 것입니다:

  1. 멀티모듈 구성에서 하위 모듈은 java 모듈로 하는 이유가 궁금합니다. - 모듈 간의 의존성 및 프로젝트 구조에 대한 설명.
  2. 포트폴리오 질문 - 다양한 기술의 적용 시 고려해야 할 사항에 대한 내용, 클린 아키텍처 관련.
  3. cqrs에 관한 질문 - 실제 CQRS 패턴을 어떻게 활용할 수 있는지에 대한 답변.

강의를 통해 많은 것을 배우고 계신 것 같아 기쁜 마음입니다. 추가적으로 궁금한 점이 있으시면 언제든지 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

아라레님의 프로필 이미지
아라레

작성한 질문수

질문하기