일일구름 IT

[Spring] 웹 프로그래밍 설계 모델 본문

Spring

[Spring] 웹 프로그래밍 설계 모델

일구름 2024. 3. 1. 17:27

웹 프로그래밍 설계 모델

웹 프로그래밍을 설계할때 웹 프로그래밍을 하는데 기본적으로 지켜야 할 설계 구조에 대해 설명하고자 합니다.

 

첫번째로는 웹 프로그래밍 구축을 위한 설계 모델이 있습니다. 이러한 설계 모델은 2가지가 있는데요.

그중 하나가 모델1이고, 두번째는 모델2 방법입니다.

 

 

모델 1

클라이언트는 브라우저를 이용해 사이트를 열 수 있습니다. 예를 들면, 인터넷 익스플로러, 크롬, 사파리와 같은 브라우저를 통해서 사이트를 이용합니다.

 

사용자는 사이트에 요청을 하고 요청 내용은 WAS로 갑니다. 예를 들어 사용자는 사이트에서 날씨 정보를 알고 싶어 주간 날씨를 검색하면, 검색 내용이 WAS로 갑니다. 그다음, WAS 서버에서는 요청을 처리한다. 처리를 하기 위해서는 데이터베이스에서 주간 날씨, 월요일 날씨, 화요일 날씨 등을 찾아야하기 때문에 데이터베이스에 접근을 합니다. 그후에, 데이터베이스에서 받아온 정보를 토대로 UI 작업을 한 뒤 다시 클라이언트에게 보냅니다. 이때 클라이언트한테 html 코드로 반환하며 응답합니다.

 

사용자로부터 받은 요청, 그 기능을 Service라고 합니다. 그리고 DAO는 데이터베이스와 연결을해주는 역할을 합니다. 

 

이때 model1은 Service, DAO, 사용자한테 보여줄 View를 모듈화하지 않고 하나의 파일로 처리를 합니다. Model1 방식의 장점은 각종 태그를 한 파일에 넣기 때문에 개발 속도가 빠릅니다. 하지만 단점은 여러가지 언어를 하나의 문서에 다 작성을 하기때문에 유지보수가 어렵습니다.

 

그렇기 때문에 Model2 방식은 Model1 방식의 단점을 보완하기위해 생겼습니다.

 

 

모델2

 

클라이언트가 WAS에 요청을 하는 것은 Model1과 같지만 Model2는 요청을 Controller가 받아서 어떤 Service에 작업을 시킬지 정하는 역할을 합니다. 

 

DAO에서는 Model이라는 객체를 이용해 데이터베이스와 통신을 하고, 통신으로 가져온 값을 다시 Servie, Controller로 보낸 다음 View라는 객체를 만들어 클라이언트에게 response해줍니다.

 

이렇게 기능 관련된건 Service, 데이터베이스와 통신하는건 DAO, 사용자한테 보여주는 부분은 View, 컨트롤해주는건 컨트롤러로 각각의 기능을 모듈화한 것이 Model2입니다.

 

Model2는 MVC를 기본으로 합니다. M은 model, V는 view, C는 controller입니다.

 

 

스프링 MVC프레임워크 설계 구조

 

DispatcherServlet은 클라이언트로부터 요청을 받으면 HandlerMapping에 보낸다. HandlerMapping은 요청을 처리하기에 알맞는 Controller을 찾고, DispatcherServlet은 다시 HandlerAdaptor한테 보낸다. HandlerAdaptor은 해당 Controller의 메소드 중에서 적합한 메소드를 찾는다. 데이터가 모두 처리된 후, DispatcherServlet는 Controller로부터 모델 데이터와 view 정보를 받는다.  이 view에 가장 적합한 jsp문서를 찾기위해 DispatcherServlet은 ViewResolver한테 보낸다. ViewResolver가 적합한 jsp페이지 view를 선택해주면, View에 응답을 생성하고 이 응답을 클라이언트에게 reponse해준다.

 

 

DispatcherServlet 설정