강의

멘토링

커뮤니티

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

홍티즈님의 프로필 이미지
홍티즈

작성한 질문수

제미니의 개발실무 - 커머스 백엔드 기본편

개념 정리

xxx서비스와 xxx핸들러 의 구분 기준

작성

·

13

1

안녕하세요!
궁금한점이 생겼는데요.

로직을 수행하는 객체중 어떤것은 xxx서비스 어떤것은 xxx핸들러또는매니저(컴포넌트) 등의 객체로 나눠지는데요. 이에 대한 기준이 있을까요?

컨트롤러가 호출하는 객체를 xxx서비스,

서비스가 호출하는 객체를 xxx핸들러또는매니저(컴포넌트)라고 보면 될까요?

그렇다면 컴포넌트는 특정 개념에서의 로직들이 응집되어있는 객체 라고 보면 될까요?

답변 2

0

제미니님의 프로필 이미지
제미니
지식공유자

안녕하세요 질문 감사드립니다!

먼저 해당 강의는 여러가지 구현 패턴을 보여주면서 수강생 분들이 최대한 생각을 많이 하시도록 구성하였습니다!

그렇기 때문에 구현 패턴이 다양하여서(어떤 코드는 Service 에 Repository 접근과 로직이 다 있음) 그 다양성 자체를 느껴주시면 좋을 것 같습니다!


그럼에도 질문의 기준 관련해서 힌트와 생각할 거리를 드리면 Service 와 도구(컴포넌트)들을 나눠놓은 구현 패턴에 대해서는 과거 제 글 중 하나인 지속 성장 가능한 소프트웨어를 만들어가는 방법을 기반으로 작성되었습니다 (인프런에 동명의 무료 강의도 있습니다)

해당 글 참고하시면 어느정도 이해가 되실 것 같습니다!

간단히 설명드리면 *Service 비즈니스 로직을 잘 나타내는 것을 목적을 하고 있습니다
그외 도구 컴포넌트들은 구현을 중심으로 구성 되어있으며 재사용성이 높은 도구 역할을 한다고 생각해주시면 될 것 같습니다!

그래서 특정 개념에서의 로직이 응집 되어있는 객체 라고 보시는 것은 잘 보신 것 같습니다 😃


고민해보시고 추가적인 고민이 있으시다면 편하게 질문해주세요!
모쪼록 답이 되었길 바랍니다! 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. 홍티즈님.

서비스(Surface)와 핸들러 또는 매니저(Component)의 구분은 소프트웨어 설계에서 매우 중요하며, 이 구분을 통해 코드의 가독성과 유지보수성을 높일 수 있습니다.

서비스와 컴포넌트 구분 기준

  1. 서비스(Service):

    • 역할: 비즈니스 로직의 주요 흐름을 관리합니다. 주로 컨트롤러에서 호출되며, 여러 컴포넌트나 도메인 객체를 활용하여 복잡한 비즈니스 로직을 처리합니다.
    • 구성: 비즈니스 로직을 모아서 하나의 흐름으로 조작하는 역할을 합니다. 여기에서 비즈니스 프로세스의 큰 틀을 이해할 수 있습니다.
  2. 컴포넌트(Handler/Manager):

    • 역할: 특정 작업이나 로직을 처리하기 위해 만들어진 객체입니다. 서비스에서 호출되어 세부적인 처리나 기능을 수행합니다.
    • 구성: 특정 개념이나 로직에 응집된 작업을 처리합니다. 반복적이고 구체적인 비즈니스 로직을 독립적으로 관리하여 서비스의 복잡도를 낮춥니다.

이러한 구분을 통해, 확장성과 응집도를 높여주는 역할을 합니다.

더 알아보기

서비스와 컴포넌트의 구분과 관리에 대해 더 깊이 이해하고자 하신다면, 비슷한 질문과 답변을 참고하시면 좋습니다:
- Service 간 의존하는 경우: 서비스 간의 의존성을 어떻게 관리하고 최소화할 것인지에 대한 설명을 통해 더욱 명확한 구분 기준을 얻을 수 있습니다.

이러한 정보가 홍티즈님의 이해에 도움이 되시기를 바라며, 추가적으로 궁금한 점이 있으시면 이어서 질문해 주세요. 곧 지식공유자께서도 상세히 도움을 드릴 것입니다.

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

홍티즈님의 프로필 이미지
홍티즈

작성한 질문수

질문하기