CS/자바 스프링

MVC 패턴의 @Controller , @Service 그리고 @Repository과 이를 활용한 동작 과정 이해하기

컴맹 개발자 2024. 2. 26. 20:17

MVC 동작 (출처: 위키피디아)

 

Model , view 그리고 controller이란
Model  
  모델은 애플리케이션의 핵심 데이터와 비즈니스 로직이다.
  DB와의 상호작용, 데이터 처리 및 유효성 검사 등을 진행한다.

view 
 뷰는 사용자에게 보여지는 애플리케이션 UI
 모델에서 데이터를 받아 사용자에게 표시하고 입력을 컨트롤러에 전달한다.

controller
  컨트롤러는 사용자의 입력을 처리하고, 애플리케이션의 흐름을 관리한다
  뷰에서 전달된 사용자 입력을 분석하여 모델의 기능을 호출하여 데이터를 조작하거나 업데이트한다.
  그리고 결과를 다시 뷰에 전달하여 화면에 표시한다.

 

 

자바 스프링에서 Controller란 무엇인가?
1.URL로 view front-end에서 서버로 요청을 했을 때, controller에게 먼저 요청이 온다. 이때, 각 URL마다 API를 만들어 두고 클라이언트의 요청에 따라 적절히 API에 요청한다.
 즉, 컨트롤러란 이러한 요청별로 하나씩 맡은 API들을 모아놓은 클래스를 의미한다

 

 

자바 스프링에서 @Contoller와 @RestContoller의 차이점은 무엇인가? - @Controller
1. @Controller는 해당 클래스가 웹 어플리케이션의 컨트롤러임을 의미한다.
2.스프링 컨테이너는 @Controller 어노테이션이 지정된 클래스를 빈으로 등록하고, 요청(request)을 받으면 해당 컨트롤러에게 매핑한다.
3.Client로부터 Reuset를 받고 response를 하는 모든 API를 담고 있다.

 

자바 스프링에서 @Contoller와 @RestContoller의 차이점은 무엇인가? - @RestController
@RestContoller는 @Controller와 @ResponseBody를 결합한 형태로 주로 JSON/XML 형태로 객체 데이터 반환을 목적으로 한다. 

 

 

자바 스프링에서 Service란 무엇인가?
1.비지니스 로직을 처리한다.
2.Repository에서 가져온 정보를 이용해 요청을 처리한 후 controller에게 전달한다.
3.Controller가 service를 통해 repository에 접근하는 이유는 직접 접근하면 테이블의 원본 정보가 손상될 위험이 있기 때문이다.
Spring의 4계층 구조에서 Application layer(응용 계층)을 담당하며, 주로 서비스의 비지니스 로직을 정의하는 Layer의 역할을 담당한다. 

 

자바 스프링에서 Respository란 무엇인가?
1.DB에 접근하는 클래스, 그 후 객체를 이용해 데이터를 조작하는 기능을 하는 클래스이다.
2.스프링의 Repository는 웹 MVC에서 Model의 역할을 한다.
3.Repository를 구성하는 클래스는 DAO,DTO 그리고 VO가 있으며 이들을 통해 DB와 연결된다.

 

요약

 

@Controller: 웹의 요청과 응답을 담당함, 서비스를 호출하며 서비스의 리턴값 가져와 클라이언트쪽에 응답을 해준다.
@Service : 서비스 로직이 실행되는 부분이다. Repository를 통해 데이터를 가져오며 요청을 처리한 후 컨트롤러에게 전달.
@Repository: 서비스에 의해 호출되며 DB관련 CRUD를 수행한다.

출처 :

https://mundol-colynn.tistory.com/147

https://jjangadadcodingdiary.tistory.com/entry/Spring-스프링-MVC에서-Controller-어노테이션의-활용

https://youwjune.tistory.com/40

https://velog.io/@0andwild/MVC패턴Controller-Servicec-Repository란-무엇일까TIL.220526

https://velog.io/@kon6443/Java-Spring-Boot-Controller-Service-Repository-개념