거누의 개발노트
Controller, Service, Repository 본문
Controller, Service, Repository를 알기전에는 MVC 패턴에 대해서 이해해야 한다.
https://geonoo.tistory.com/148
MVC패턴에 대해서 간략이 정리해 봤고, 그럼 MVC 패턴을 사용하는 이유는 무엇일까?
결론 역할에 따른 분리로 인해서 유지보수성, 확장성, 유연성이 증가하고, 코드의 중복도 사라지는 효과때문에 MVC 패턴을 사용한다.
Controller
MVC패턴 설명과 똑같이 Controller은 MVC에서 C에 해당 하며 주로 사용자의 요청을 처리 한 후 지정된 뷰에 모델 객체를 넘겨주는 역할을 한다.
사용자의 요청이 진입하는 지점이며 요청에 따라 어떤 처리를 할지 결정을 Service에 넘겨준다.
그리고 Service에서 실질적으로 처리한 내용을 다시 Controller가 받고 받은것을 Controller가 넘겨주는 역할을 하는것이다.
Service
서비스에는 사용자의 요구사항을 처리하는 로직이 있다.
DB의 데이터가 필요할 때는 Repository 에게 요청을 한다.
규모 프로젝트일 수록 Service의 내용이 비대해질 것이다.
Repository
Entity에 의해 생성된 DB에 접근하는 메서드 들을 사용하기 위한 인터페이스입니다.
쉽게 말해 DB 연결, 해제, 자원을 관리하고 CRUD 작업을 처리한다.
전체 그림으로 그린다면
이런 구조가 될 것이다.
간단한 게시판 만들때 Controller에서 Repository를 바로 호출하게 구현한적이 있었다.
그렇게 되면 Service의 역할을 나누어 놓는 이유가 사라지기 때문에 다음에는 역할에 맞는 로직으로 구현해봐야겠다.
'Spring' 카테고리의 다른 글
[Spring] 스프링 컨테이너와 빈 (0) | 2022.06.09 |
---|---|
[Spring] DI(Dependency Injection)를 사용하는 이유 (1) | 2022.06.07 |
[Spring] Spring Data JPA 기본 사용법 ( JpaRepository ) (1) | 2022.06.05 |
[Spring] MVC 패턴 (ORM, SQL) - 회고 (0) | 2022.06.05 |
[Spring] Java Persistence API - JPA (0) | 2022.06.04 |