Spring Framework/정리

[Spring] 스프링 MVC 이란?

포포015 2021. 5. 4. 14:35

스프링 MVC는 Model- View - Controller의 약자이다.

 

흠....

그래서 이게 무슨말이냐....

 

위의 이미지 예시로 설명하겠다. 위의 소스코드는 members.jsp라는 파일이다.

 

위의 코드를 보면 <% %> 안에 적혀있는 코드는 java코드고,

밑에는 html과 java코드가 섞여있다. 물론 jsp가 나오기전에는 servlet으로 html 응답을 만들어서 내려주고 했는데...

요즘 신규프로젝트에서는 그렇게 하지않으니 그부분은 너무 비효율적이기도하고 해서, 설명은 스킵하겠다..

(위의 파일을 본다면, jsp의 역할이 너무 많다. 비즈니스 로직도 수행하고, html 화면 그려주는 부분도해야하고...)

(만약 html만 변경되야할 상황이 온다면 java코드가 들어있는 jsp도 같이 파일의 변경이 일어나야한다. 

 (jsp가 너무 많은 역할을 맡고 있다.)

 

그래서 나온게 MVC 패턴이다.

 -> JSP로 한번에 처리하던것을 Controller - Model - View 라는 영역으로 각자 서로의 역할을 나눈것.

 

 

 

Controller -> HTTP 요청을 받아서

                     1) 파라미터를 검증하고

                     2) 비즈니스로직을 실행하며, 

                     3) 뷰에 전달할 데이터를 모델에 적재에서 보내준다.

 

Model       ->  뷰에 출력할 데이터를 담아둔다.

                (이로써 모델은 비즈니스로직, DB에 접근에서 데이터 접근을 몰라도 되고, 화면은 렌더링하는데 집중한다.)

 

View          -> 모델에 담겨 있는 데이터를 사용해서 화면을 그리는데에 집중한다.

 

 

참고로, 컨트롤러에서 비즈니스로직을 처리할수 있지만. 그렇게 되면 컨트롤러가 너무 많은 역할을 갖고 있기때문에

( http 파라미터 검증 , 비즈니스로직  수행 , 모델에 적재 ->3가지 일을 처리하는군..)

서비스(Service) 라는 비즈니스 로직을 처리하기 위한 계층을 따로 만들어서 관리한다.

 

기존에, JSP 방식의 경우 단순히 HTML변경이 필요하더라도 JSP 파일 자체를 건드려야하는 불편함과,

JSP 파일 자체에 비즈니스로직, 화면 렌더링하는로직, DB에 접근하는 로직 등등등 너무많아..

JAVA코드가 외부로 노출되는것도 불편하고.. 코드가 길어지면 유지보수 오우.,.........

 

MVC의 방식의 경우 각각 계층마다 본인의 역할이 정해져 있기때문에 유지보수도 편하고 가독성도 좋아진다.

요즘 개발하는 방식은 거의 대부분 MVC방식을 사용하고 있다.

 

 

 

'Spring Framework > 정리' 카테고리의 다른 글

[Spring] 컨테이너와 IOC, DI란?  (0) 2021.08.25