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

djeuskwiwhe님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

질문

작성

·

71

0

강의 내용 중 엔티티에 비즈니스 로직을 포함시키셨는데 여러 사이트를 보면서 내용을 이해하려고 노력하면서 최종적으로 이런 결론을 지었습니다.

Q. 어떤 비즈니스 로직을 서비스 계층에서 구현해야 하고 어떤 비즈니스 로직을 도메인에서 구현하는 것이 맞을까?

A. 상품과 관련된 비즈니스 로직(주문 접수에 따른 재고 감소, 주문 취소에 따른 재고 증가)에서는 하나의 도메인만 활용이 되므로 하나의 도메인만으로 비즈니스 로직을 구현할 수 있다고 판단되는 상황이라면 도메인에 비즈니스 로직을 구현해도 괜찮지만 여러 도메인을 활용해야하는 복잡한 비즈니스 로직을 구현하거나 회원가입이나 로그인과 같이 리포지토리와 직접적 관련을 맺고 있는 비즈니스 로직의 경우라면 서비스 계층에서 구현하는 것이 맞다.

질문에 대한 대답이 이게 맞는지 궁금합니다.

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

dhwiwnwnf님의 질문에 대해, 비즈니스 로직을 어디에 구현해야 하는지에 대한 기준을 제시하는 내용은 매우 중요한 주제이며, 실제 개발 프로젝트에서 자주 마주치게 되는 고민입니다. dhwiwnwnf님의 결론은 매우 타당한 관점을 담고 있습니다. 비즈니스 로직을 엔티티 도메인에 구현할지, 서비스 계층에서 구현할지를 결정하는 기준으로, 해당 로직이 단일 엔테티에 국한되는지 여부와 복잡한 비즈니스 연산을 필요로 하는지 여부를 고려하는 것은 좋은 접근 방식입니다.

이러한 고민에 대해 지식공유자가 이전에 제시한 답변을 찾아보았고, 이와 관련해 유용할 것 같은 자료를 발견했습니다.

  • 도메인에 들어가는 비즈니스 로직과 Service 내의 로직

    • 이 글에서는 게시글의 좋아요 기능을 예시로 들며 도메인과 서비스 계층 사이에서 비즈니스 로직을 어떻게 나누어 구현했는지 고민하는 내용이 담겨 있습니다. 비즈니스 로직을 도메인에 포함시킬지, 서비스 계층에 구현할지에 대한 질문자의 고민에 대해 공식 서포터즈가 기존 지식공유자의 답변을 바탕으로 안내하고 있습니다.
  • 로직 배치

    • 변형된 계정 처리 같은 로직의 배치에 대한 구체적인 지침을 묻는 질문에 대해 지식공유자가 답변을 제공한 내용입니다. 핵심 비즈니스 로직은 서비스 또는 도메인에 속하며, 도메인이 자체적으로 처리할 수 있는 부분과 서비스가 필요한 경우에 대해 설명합니다.

이 두 자료를 통해 하나의 비즈니스 로직이 도메인 또는 서비스 계층에 구현되는 기준을 좀 더 명확하게 파악할 수 있습니다. 각 사례는 구체적인 상황에 따라 다루어지며, 나머지는 전반적인 지침에 따라 결정됩니다.

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