Controller,Service,Repository 차이점

배지원·2022년 11월 7일
0

SpringBoot

목록 보기
4/11

Controller, Service, Repository의 관계를 알기 위해서는 MVC패턴을 알아야 하므로 이전에 정리한 페이지 MVC 패턴를 확인하면 된다.


Controller,Service,Repository 구분이유

  • 많은 데이터들을 처리하고 가공하여 자신이 원하는 데이터를 얻기위한 구조를 만들기 위해서는 절차적보다는 객체지향적인것이 효율적이다. 따라서 객체지향 프로그래밍의 특징인 역할별로 분리하는 것이다.

Controller

  • 사용자의 요청을 처리 한 후 지정된 뷰에 모델 객체를 넘겨주는 역할을 한다.
  • 사용자의 Request를 전달받아 요청의 처리를 담당하는 Service를 호출한다.

Service

  • Controller에 의해 호출되어 실제 비즈니스 로직과 트랜잭션을 처리한다.
  • 사용자의 요구사항 처리, DB 정보가 필요할 때는 Repository 호출

Repository

  • Service에 의해 호출되어 DB에서 데이터 처리를 하여 반환한다.
  • Entity에 의해 생성된 DB에 접근하는 메서드들을 사용하기 위한 인터페이스이다.
  • DB CRUD 작업 처리


🔔 Controller와 Service따로 사용하는 이유


Controller에서 바로 Repository로 연결해서 사용할 수도 있다. 하지만 그렇게 되면 중복코드가 발생하게 된다. 비즈니스 로직 코드가 컨트롤러에 구현되어 있는 경우 다른 컨트롤러의 핸들러 메소드에서 똑같은 로직 코드를 구현해야 하므로 중복코드가 발생하고 재사용성이 줄어든다. 결론적으로, controller와 service를 구분하면 확장성과 재사용성이 좋아지고 중복코드를 제거할 수 있다는 장점이 있다.

참고자료 : Controller,Service,Repository

profile
Web Developer

0개의 댓글