[스진초 4기] 스프링 3대장 - Controller, Service, Repository

창진·2023년 8월 7일

[스진초 4기] 

목록 보기
7/11

스프링 3대장 Controller, Service, Repository 알아보기에 앞서 MVC 디자인 패턴에 대해서 먼저 아는 것이 중요합니다.

MVC 패턴이란?


MVC패턴은 Model-View-Controller의 약자로서 개발을 할 때 3가지 형태로 역할을 나누어 개발하는 방법론입니다.

MVC패턴의 장점

  • 애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있습니다.
  • 재사용성과 확장성이 용이하다는 장점이 있습니다.

MVC패턴의 단점

  • 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점이 있습니다.

결론

JSP를 사용할 때 역할을 분리하지 않아 JSP 파일에 대한 비중이 커졌고 유지 및 보수하기 어려웠습니다. 그래서 나타난 MVC 패턴은 모델 - 뷰 - 컨트롤러 분리로 인해서 유지보수성, 확장성, 유연성이 향상하고, 코드의 중복도 사라지는 앞선 문제점을 해결해 주었습니다.

Controller, Service, Repository

Controller

  • MVC패턴 설명과 똑같이 Controller은 MVC에서 C에 해당 하며 주로 사용자의 요청을 처리 한 후 지정된 뷰에 모델 객체를 넘겨주는 역할을 합니다.

  • 사용자의 요청이 진입하는 지점이며 요청에 따라 어떤 처리를 할지 결정을 Service에 넘겨줍니다.

  • 그리고 Service에서 처리한 내용을 다시 Controller가 받고 받은것을 Controller가 넘겨주는 역할을 하는것입니다.

Controller를 사용하는 이유

대규모 서비스중 A서비스, B서비스, C서비스 가 있다고 예를 들어보겠습니다.

많은 종류의 서비스를 한 클래스를 만들어서 처리할 게 아니라 Controller라는 중간 제어자를 만들어서 A서비스에 대한것은 A-Controller가 B서비스는 B-Controller 이렇게 역할에 따라 설계를 하고 개발을하면 개발비용이나 유지보수비용이 대폭 줄어들기 때문에 Controller를 사용합니다.

Service

  • Service가 알맞은 정보를 가공하는 과정을 '비즈니스 로직을 수행한다.' 라고 합니다.

  • DB의 데이터가 필요할 때는 Repository 에게 요청을 합니다.

  • 규모 프로젝트일 수록 Service의 내용이 비대해집니다.

Service 의 로직

  1. Client가 Request를 보낸다.
    2.Request URL에 알맞은 Controller가 수신 받는다.
  2. Controller 는 넘어온 요청을 처리하기 위해 Service 를 호출한다.
  3. Service는 알맞은 정보를 가공하여 Controller에게 데이터를 넘긴다.
  4. Controller 는 Service 의 결과물을 Client 에게 전달해준다.

Repository

  • Entity에 의해 생성된 DB에 접근하는 메서드 들을 사용하기 위한 인터페이스입니다.

  • 쉽게 말해 DB 연결, 해제, 자원을 관리하고 CRUD 작업을 처리합니다.

결론

profile
안녕하세요

1개의 댓글

comment-user-thumbnail
2023년 8월 7일

글 재미있게 봤습니다.

답글 달기