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

[Seminar1] 가이드 코드의 클래스 간 역할에 대해 #4

Open
ckkim817 opened this issue Oct 11, 2024 · 0 comments
Open

[Seminar1] 가이드 코드의 클래스 간 역할에 대해 #4

ckkim817 opened this issue Oct 11, 2024 · 0 comments
Assignees

Comments

@ckkim817
Copy link
Member

ckkim817 commented Oct 11, 2024

클래스 간 역할 설명

Entity

  • 데이터베이스 테이블의 구조를 나타내는 클래스
  • 데이터베이스와 직접 매핑되며, 각 엔티티 객체는 테이블의 한 행을 의미한다.

Controller

  • Application의 진입점 역할로, 프레젠테이션 계층에 속한다.
  • 사용자의 요청(HTTP 요청)을 받아들이고, 해당 요청을 처리한 후 적절한 응답을 반환한다.

Service

  • 비즈니스 로직을 처리하는 계층
  • 데이터 조작, 검증, 트랜잭션 관리 등 비즈니스 규칙에 관련된 로직을 구현한다.

Repository

  • 데이터베이스와 상호작용을 담당하는 계층
  • 엔티티를 저장하거나 검색, 수정, 삭제하는 기능을 수행한다.

역할 분리의 장점과 이유

  • 각 계층이 특정 역할에 집중하도록 분리함으로써, 코드가 모듈화되고 유지보수가 쉬워진다. (유지보수성 향상)
  • 서비스 계층과 레포지토리 계층에서 구현된 로직을 다양한 컨트롤러에서 재사용 할 수 있다. (재사용성 증가)
  • 각 계층은 서로 분리된 상태로 테스트할 수 있기 때문에, 테스트를 더욱 쉽고 효과적으로 수행할 수 있다. (의존성 관리 및 테스트 용이)
  • 역할과 책임이 명확히 구분되므로, 새로운 기능을 추가하거나 기존 기능을 수정할 때의 구조적 혼란을 줄일 수 있다. (명확한 책임 분리)
  • 새로운 요구사항이나 기능이 추가될 때, 각 계층의 독립성을 유지하면서 쉽게 확장할 수 있다. (유연성 및 확장성)
@ckkim817 ckkim817 self-assigned this Nov 15, 2024
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