Controller, Service and Repository in multi-tiered

Ryan mingun choi·2023년 11월 1일
0
  1. Controller:

    • 역할: 들어오는 웹 요청을 처리하고, 모델 데이터를 검색하고, 응답을 렌더링하기 위한 뷰를 반환한다.
    • Spring에서의 주석: @Controller 또는 @RestController
    • 일반적인 작업: 요청 데이터 파싱, 사용자 입력 처리, 적절한 뷰 또는 응답 데이터 반환 (RESTful 웹 서비스의 JSON과 같은).
  2. Service:

    • 역할: 애플리케이션의 비즈니스 로직을 캡슐화한다. 이 계층은 보통 계산, 유효성 검사, 데이터 소스나 다른 서비스로의 호출 조정을 포함한다.
    • Spring에서의 주석: @Service
    • 일반적인 작업: CRUD 작업, 복잡한 비즈니스 유효성 검사 및 필요한 데이터 변환
  3. Repository:

    • 역할: 데이터 소스 (예: 데이터베이스)와 직접 상호 작용합니다. 그것은 기본 데이터 액세스 메커니즘을 추상화하고 데이터를 검색하고 저장하기 위한 깔끔하고 간단한 인터페이스를 제공한다.
    • Spring에서의 주석: @Repository
    • 일반적인 작업: 생성, 읽기, 업데이트, 삭제 (CRUD) 작업. Spring에서는 Spring Data JPA를 자주 사용하여 리포지토리 인터페이스의 구현을 자동으로 생성할 수 있다.

flow:

  • 웹 요청은 Controller에 의해 받아진다.
  • Controller는 일부 작업 (예: 데이터검색 또는 저장)을 Service에 위임할 수 있다.
  • Service는 차례로 Repository와 상호 작용하여 데이터 소스 (예: 데이터베이스)에 액세스한다.

다른 계층으로 분리함으로써:

  • 코드는 더 모듈식이고 유지 관리하기 쉽다.
  • 각 계층은 독립적으로 테스트될 수 있다.
  • 각 클래스나 모듈이 변경되는 한 가지 이유를 갖기 위해 단일 책임 원칙을 강화하는 것이 더 쉽다.
profile
finding happiness

0개의 댓글