개발노트

Controller / Service / Repository의 역할

Happy._. 2024. 6. 24. 09:41
반응형

Controller

역할

  • 사용자 인터페이스와 상호작용
  • 사용자의 요청을 처리하고 그에 맞는 응답을 반환

주요 기능

  • 클라이언트로부터 HTTP 요청을 수신
  • 해당 요청에 대한 비즈니스 로직을 수행하기 위해 Service 계층에 작업 위임
  • header의 정보 확인 및 Service에 필요한 데이터 전달

Controller에서 하지 말아야 할 것

  • 비즈니스 로직을 Controller에 추가
  • DB를 controller에서 조작
  • Controller에서 Controller를 호출

Service

역할

  • 비즈니스 로직 처리
  • 해당 로직을 수행하기 위한 서비스 메서드 제공

주요 기능

  • 하나의 비즈니스 기능이나 기능 집합 담당
  • 입력된 데이터의 유효성을 검토
  • 비즈니스 로직 수행 및 데이터를 가공
  • Repository로부터 데이터를 가져와 비즈니스 로직 실행 또는 업데이트
  • Transaction, Cache 적용
  • Entity의 주요 함수 호출

Service에서 하지 말아야 할 것

  • Setter를 지양
    • 업데이트 함수를 직접 생성해 사용할 것
    • 나중에 어떤 변경사항이 있는지 찾기 어렵기 때문

Repository

역할

  • 데이터베이스나 다른 영속성 매체와 상호작용
  • 데이터에 접근하는 역할

주요 기능

  • 데이터베이스와 통신을 추상화
  • 데이터베이스 조작을 위한 메서드 제공
  • 데이터베이스에서 데이터를 읽거나 쓰는 작업 처리
  • Service 계층에서 필요한 데이터를 조회하거나 업데이트
반응형