2023. 9. 7. 22:04ㆍ학부 강의/웹프로그래밍 (Spring)
1. model1과 model2
model1과 model2는 웹 애플리케이션을 구현하기 위한 프로그램 설계 방법이다.
둘 다 MVC패턴을 웹프로그래밍에 적용한 것이다.
가. model1 아키텍처
JSP와 JavaBeans를 이용해서 웹 애플리케이션을 개발하는 방법이다.
많은 파일을 만들지 않고 HTML 기반의 JSP와 자바빈스만을 이용한다.
- 개발 속도가 빠르다.
- 유지 보수가 어렵다. 컨트롤러와 뷰 코드가 JSP에 섞여있음.
- 잘 사용하지 않는다.
나. model2 아키텍처
model1보다 발전한 방식.
각각의 기능을 모듈화하여 기능에 따른 코드를 분리한다.
서블릿, JSP, JavaBeans를 이용한다.
- 유지 보수에 유리
- 클라이언트의 요청을 처리, 제어 → 컨트롤러
- 클라이언트에 응답하기 → 뷰
- 비즈니스 로직 처리, 데이터베이스 사용 → 모델
- MVC패턴
2. MVC 패턴
가. 모델, 뷰, 컨트롤러에 대한 설명.
- 모델
: 데이터베이스와 밀접한 관계를 갖고 비즈니스 로직을 담당함.
: 데이터(data) 가공을 책임지는 컴포넌트(component). - 뷰
: 사용자에게 보여지는 부분, 즉 유저 인터페이스(User interface)를 의미.
: 모델에게 전달받은 데이터를 별도로 저장하지 않아야 한다. - 컨트롤러
: 모델과 뷰 사이를 이어주는 브리지(bridge) 역할.
: 모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다.
: 모델과 뷰에 대해 알고 있으며 모델이나 뷰로부터 변경 내용을 통지받으면 이를 각 구성 요소에게 통지.
: 사용자가 어플리케이션을 조작하여 발생하는 변경 이벤트들을 처리하는 역할을 수행.
모델과 뷰는 직접 연결되지 않는다.
최대한 분리시켜야 한다. (모듈화, 유지 보수)
출처 : https://ko.wikipedia.org/wiki/모델-뷰-컨트롤러
나. MVC 패턴의 장점
- 모듈화를 통한 체계적인 개발이 가능하다.
- 유지 보수가 쉽다.
- 개발자는 비즈니스 로직에 보다 집중할 수 있다.
3. 스프링 MVC의 흐름
스프링 MVC는 스프링을 기반으로 하는 하위 프레임워크다.
MVC 패턴을 적용해서 쉽게 웹 애플리케이션을 개발할 수 있도록 고안된 프레임워크다.
1단계
클라이언트의 요청이 들어오면 DispatcherServlet
, HandlerMapping
, HandlerAdapter
를 이용해 클라이언트 요청에 적합한 컨트롤러를 찾고 해당 컨트롤러의 메서드를 실행한다.
- (1) 클리라이언트의 요청 →
DispatcherServlet
가 요청을 받음. - (2)
DispatcherServlet
은 클라이언트의 요청을 분석해서 가장 적합한 컨트롤러를 찾음. 이때DispatcherServlet
이 직접 찾지는 않고HandlerMapping
에 위임한다. - (3)
HandlerMapping
객체는 요청에 적합한 컨트롤러 객체를 반환한다. - (4) 이때
DispatcherServlet
은HandlerAdpater
에게 컨트롤러 메서드 호출을 위임한다. - (5)
HandlerAdpater
은 반환된 컨트롤러 객체를 호출한다. - (6)(7) 컨트롤러에서 요청을 처리 후
HandlerAdpater
에 결과를 반환한다. 이때ModelAndView
객체를 사용한다.ModelAndView
는 처리 결과의 데이터와 view 정보를 가지고 있다.
2단계
DispatcherServlet
이 HandlerAdapter
로부터 처리 결과를 받으면 클라이언트에 응답하기 위해서 뷰를 찾는 단계.
- (8)
DispatcherServlet
는ViewResolver
를 이용해서 처리 결과에 적합한 뷰를 찾는다. - (9)
ViewResolver
는ModelAndView
에 저장된 뷰 정보를 이용해서 적합한 뷰를 찾아서DispatcherServlet
로 반환한다.
3단계
- (10)
DispatcherServlet
는ViewResolver
가 반환한 뷰 정보를 이용해서 뷰 객체를 준비한다. - (11) 뷰 객체는 JSP 파일이며, WAS는 클라이언트의 브라우저에 응답 결과를 전달한다.
DispatcherServlet
, HandlerMapping
, HandlerAdpater
는 이미 구현되어있다.
개발자는 스프링 MVC 프레임워크라는 틀 안에서 컨트롤러와 뷰만을 제작하는 작업에만 집중하면 된다.
4. 스프링 프레임 워크
- 스프링 프레임워크
: 자바 기반의 애플리케이션 개발을 위한 오픈소스 프레임워크.
: 다양한 분야, 다양한 애플리케이션에 사용됨. - 스프링 MVC
: 스프링 기반의 하위 프레임워크.
: 웹 애플리케이션 개발에 최적화됨.
가. 스프링 모듈
스프링의 대표적인 모듈.
'학부 강의 > 웹프로그래밍 (Spring)' 카테고리의 다른 글
[Spring] 학사 정보 시스템 (0) | 2023.10.07 |
---|---|
[Spring] 스프링으로 계산기 만들기 (0) | 2023.09.22 |
[Spring] Maven (0) | 2023.09.14 |
[Spring] DI, DIP, IoC (0) | 2023.09.09 |
[Spring] 개발 환경 구축 (0) | 2023.09.07 |