[Spring] 스프링의 3대장 Controller, Service, Repository

클라이언트의 요청과 서버의 응답 그리고 Spring MVC

  • 위의 그림은 Spring MVC 동작 과정을 담았다. 그림을 보면 개발자가 구현해야할 것은 보라색 박스임을 알 수 있다.
  • 보라색 박스엔 스프링의 3대장이라고 할 수 있는 Controller, Service, Repository 가 포함돼 있다. 그 부분만 확대해 보면 아래와 같다. 각각의 역할은 무엇일까?

Controller

  • 프레젠테이션 계층(Presentation Layer)
  • HTTP 요청을 받는다.
  • HTTP 응답을 보낸다.
  • 받은 요청을 비즈니스 계층으로 전달한다.
  • 어노테이션
    • @Controller
    • @RestController(@Controller + @ResponseBody)

Service

  • 비즈니스 계층(Business Layer)
  • 모든 비즈니스 로직을 수행한다.
  • 어노테이션
    • @Service

Repository

  • 퍼시스턴스 계층(Persistence Layer)
  • 모든 데이터베이스 관련 로직을 수행한다.
  • 데이터베이스에 접근하는 DAO(Data Access Object) 객체를 사용할 수 있다.
  • 어노테이션
    • @Repository

언급된 어노테이션 모아보기

참고