본문 바로가기

강의 내용 정리/Spring5 기초 정리

4-1강 웹 아키텍처의 이해

# MVC 패턴

 

 

 

 

# View

 

1) MPA(Multi Page Application)

 

0 . 웹 어플리케이션이 서버에서 동작하고 있음.

1. 클라이언트가 서버에게 요청을 보냄

2. 요청의 결과를 응답해줄텐데 이 때 사용자가 어떤 요청을 보냈을 때 결과로 보여지는 View들을 서버에서 만들어서 보내줬었다. ( 이 때 만들어야하는 파일이 JSP. JSP파일을 이용해서 클라이언트에게 View 제공 )

3. 요청에는 여러가지가 있는데(제품보여주세요, 많이 팔린 상품부터 보여주세요 등등..) 그 요청에 하나하나 해당하는 JSP파일이 존재했었다. 클라이언트입장에서는 요청마다 사용자에게 보여지는 화면이 존재했었다.

서버가 가진 여러 JSP 파일들

4. 서버가 요청에 응답하는 다양한 페이지를 갖고 있기 때문에 이를 MPA 라고 했음.

 

 

2) SPA(Single Page Application)

 

0. 클라이언트에 React, Angular.. 등등의 JS 기술로 서버는 응답으로 데이터만 보내주면 클라이언트에서 받은 데이터를 가지고 다양한 화면들을 만들어냄. ( 서버에서 여러가지 페이지를 가지고 있는 것이 아니다. ( 최초의 빈 페이지 하나만 보내주고 클라이언트에서 서버에 데이터를 요청하고 그 데이터를 받아서 화면에 웹브라우저가 렌더링하여 보여주는 형태 이기 때문에 클라이언트입장에서는 서버로 하여금 하나의 페이지를 받기 때문에 SPA 라 한다. )

-> 이제 웹서버의 입장에서는 예전처럼 View에 대한 관리를 치밀하게 할 필요가 없어졌다. ( SPA에서는 데이터를 주고받을 때 JSON으로 주고받는다. )

서버에서는 최초 빈 페이지와 데이터만 보내준다.

 

 

 

# Model

 

어떤 데이터들을 서버가 클라이언트에게 응답 할 때는 Model 형태의 클래스로 보낸다.

 

 

------------------------------------------------------------------------------------------------------------------------------

 

 

Front Controller패턴 들어가기 전에 다시 MPA 에 대한 이야기...

 

0. 웹 애플리케이션이 서버에 띄워져있다.

1. 클라이언트는 다양한 종류의 요청을 보낸다.  

2. servlet/JSP( Java Server Page ) 웹 프로그래밍 같은 경우, 각 요청마다 각각 대응하는 servlet 클래스가 존재했다. ( servlet이라는 클래스를 좀 더 화면에 가깝게 만들 수 있도록 해주는 것이 JSP 파일 )

3. 즉, Front Controller 개념없이 요청에 따라 그 때 담당하는 servlet들이 동작/응답.

4. 즉, 만약 어떤 웹 페이지에 접근할 때 무조건 메인페이지부터 접근 할 수도 있지만 특정 URL을 복사해두고 그 링크로 바로 접속 할 수도 있다. -> 메인페이지 거치지 않고 해당 페이지 접근 ( 클라이언트 입장에서 이 애플리케이션에 접근 할 수 있는 경로가 다양하다. )

 

 

 

------------------------------------------------------------------------------------------------------------------------------

 

 

# Front Controller 패턴

 

DispatcherServlet 이라는 클래스가 Front Controller 역할을 하는 클래스

-> Front Controller 를 만들어두고 이제는 어떤 요청이던지 Front Controller가 받게함.

-> 요청을 분석해서 그 요청을 처리해주는 Controller에게 넘겨줌. ( Controller가 뷰 등을 보여줌 )

-> 요청이 들어오는 경로는 Front Controller 단 하나!!

-> 개발자는 Controller 중심으로 개발

 

 

 

 

4번째 문장 중요!

-> 웹 MVC 프레임워크는 요청을 각 컨트롤러로 분기하는 중앙 서블릿 중심으로 설계되었다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 자료를 참고하였습니다.

 

 

꾸준히 다시보자.

 

1. 220730

2. 220812

3. 220915

Recent Posts
Popular Posts
Recent Comments