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

1주차(필수) 가이드 코드 클래스간 역할에 대한 설명 #3

Open
YangDaJin0104 opened this issue Oct 10, 2024 · 0 comments

Comments

@YangDaJin0104
Copy link
Collaborator

🔖 가이드 코드 클래스간 역할에 대해 설명

Entity, Repository, Service, Controller

1. Entitiy

  • 처리할 데이터를 어떻게 저장할지 설계하고 정의한다.
  • 비지니스 로직을 직접 처리하지 않고, 데이터를 저장하거나 가져온다.

2. Repository

  • 데이터를 조회하고 저장한다.
  • 추상화하여 서비스에서 데이터 조작이 쉽도록 도와준다.

3. Service

  • 비지니스 로직 처리한다.
  • 컨트롤러에서 요청을 받으면 비지니스 요구 사항에 따라 데이터를 처리하고 결과를 반환한다.
  • 레퍼지토리와 상호작용하여 필요한 데이터를 조회하거나 저장한다.

4. Controller

  • 사용자의 요청 처리 및 응답을 반환한다.
  • 비지니스 로직을 직접 수행하지 않고 서비스 계층에 전달한다.

🔖 역할을 분리해서 얻은 장점과 분리하는 이유

1. 역할 분리로 얻는 장점

  • 각자의 클래스가 자신이 맡은 업무만 수행할 수 있으므로 코드를 관리하기 쉽고 유지보수성이 좋아진다.
  • 클래스가 독립적으로 운영되므로 다른 클래스에 영향을 최소화 한다.
  • 서비스나 레퍼지토리를 재사용할 수 있기 때문에 중복 코드가 줄어든다.
  • 서비스 계층은 레포지토리 인터페이스에 의존한다. 구체적인 구현에 의존하지 않고 추상화된 인터페이스에 의존하도록 한다.

2. 역할 분리를 하는 이유

  • 일관성을 유지하기 때문이다.
  • 새로운 기능 추가나 변경할 때 특정 계층만 수정하면 되기 때문에 시스템 확장이나 유지보수에 좋기 때문이다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant