거누의 개발노트

Controller, Service, Repository 본문

Spring

Controller, Service, Repository

Gogozzi 2022. 6. 7. 15:13
반응형

Controller, Service, Repository를 알기전에는 MVC 패턴에 대해서 이해해야 한다.

https://geonoo.tistory.com/148

 

[Spring] MVC 패턴 (ORM, SQL) - 회고

Spring 프레임워크로 간단한 웹 서버를 구현해 보고있다. 처음으로 JPA를 사용해봤고 정리해봤다. https://geonoo.tistory.com/147?category=1077864 [Spring] Java Persistence API - JPA Java Persistence API(..

geonoo.tistory.com

MVC패턴에 대해서 간략이 정리해 봤고, 그럼 MVC 패턴을 사용하는 이유는 무엇일까?

결론 역할에 따른 분리로 인해서 유지보수성, 확장성, 유연성이 증가하고, 코드의 중복도 사라지는 효과때문에 MVC 패턴을 사용한다.

Controller

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

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

그리고 Service에서 실질적으로 처리한 내용을 다시 Controller가 받고 받은것을 Controller가 넘겨주는 역할을 하는것이다.

Controller 구조

Service

서비스에는 사용자의 요구사항을 처리하는 로직이 있다.

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

규모 프로젝트일 수록 Service의 내용이 비대해질 것이다.

Service와 Repository

Repository

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

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

Repository

전체 그림으로 그린다면

이런 구조가 될 것이다.

 

간단한 게시판 만들때 Controller에서 Repository를 바로 호출하게 구현한적이 있었다.

그렇게 되면 Service의 역할을 나누어 놓는 이유가 사라지기 때문에 다음에는 역할에 맞는 로직으로 구현해봐야겠다.

반응형
Comments