본문 바로가기

WEB

[Web] Web Architecture

Web Architecture

Network

· TCP(Transmission Control Protocol) /IP

 - TCP는 연결지향 프로토콜이다

 - IP가 실제로 데이터의 배달을 처리한다

 - TCP는 IP가 처리할 수 있도록 메시지를 여러 개의 패킷으로 나누고, 반대편에서는 받은 패킷을 재조립하여 완전한 메시지로 만든다.

  ※ 패킷 : 하나의 바구니

  ※ 패킷은 보낼 때 순서 보장이 되지 않는다.

 

· UDP(User Datagram Protocol)

 - TCP와 달리 메시지를 패킷으로 나누고 재조립하는 등의 서비스를 제공하지 않는다.

 - 도착하는 데이터 패킷들의 순서를 제공하지 않는다.

 - 순서에 상관없이 빠른 시간 내 전송을 위해 주로 사용한다.

 - 실시간 전송에는 UDP를 사용한다.

 

Servlet

자바 서블릿(=서블릿)은 자바를 이용하여 웹페이지를 동적으로 생성하는 서버측 프로그램을 말한다. JSP와 비슷하다.

 - JSP는 HTML 문서 안에 자바 코드를 포함, 서블릿은 자바 코드 안에 HTML을 포함

 

· Servlet LifeCycle

Servlet class는 main method가 없다. 객체의 생성부터 사용의 주체가 Servlet Container에게 있다. Client가 요청을 하게 되면 Servlet Container는 Servlet객체를 한번만 생성, 초기화하며 요청에 대한 처리를 요청시마다 반복한다. Servlet 객체가 필요 없게 되면 Container가 제거한다.

 

JSP(Java Server Page)

JSP는 HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹페이지를 생성하여 웹 브라우저에 돌려주는 언어이다. 웹 애플리케이션 서버에서 동작한다. JSP 실행 시에는 자바 서블릿으로 변환되어 실행된다. 

 

JSP 기본객체

request : HTML 폼 요소의 선택 값 등 사용자 입력 정보를 읽어올 때 사용한다. 하나의 HTTL 요청을 처리할 때 사용되는 영역으로 웹 브라우저가 요청을 할 때마다 새로는 request객체가 생성된다. 

request영역에 저장한 속성은 그 요청에 대한 응답이 완료되면 사라진다.

메소드 명 리턴타입 설명
request.getParameter("name"); String 이름이 "name"인 파라미터의 값을 읽어온다. 존재하지 않을 경우 null return.
request.getParameterValue("name"); String[] 이름이 "name"인 모든 파라미터의 값을 배열로 가져온다. 존재하지 않을 경우 n ull return.

MVC Pattern(Model - View - Controller)

JSP를 이용하여 구성할 수 있는 Web Application Architecture은 크게 model1과 model2로 나뉜다.

 

· Model1구조

  - view와 logic을 JSP 페이지 하나에서 처리하는 구조

 

· Model2 구조

  - client 요청에 대한 처리는 servlet이, logic처리는 java class, client에게 출력하는 view는 JSP가 담당한다.

  - MVC pattern을 웹 개발에 도입한 구조이다.

Model2 MVC pattern  
Service, Dao or Java Bean Model
(순수 Java 코드)
Logic을 처리하는 모든 것
Controller로부터 넘어온 data를 이용하여 메서드를 수행하고 그에 대한 결과를 다시 Controller에 return.
JSP View
(JSP)
모든 화면 처리를 담당. Logic 처리를 위한 java 코드는 사라지고 결과 출력을 위한 코드만 존재한다.
Servlet Controller
(Java Servlet)
교통순찰처럼 방향 지시만 한다.
Client의 요청을 분석하여 Logic처리를
=위한 Model을 호출한다. 

 -Model2 구조(MVC Pattern)

EL(Expression Language)

표현을 위한 언어로 JSP 스크립트의 표현식을 대신하여 속성값을 쉽게 출력하도록 고안된 language이다.

<%=%>을 대체할 수 있다.

EL : pageContext를 제외한 모든 EL 내장 객체는 Map이다. key와 value 쌍으로 값을 저장하고 있다.

표현식 : ${expr}

'WEB' 카테고리의 다른 글

[자바스크립트] 비동기 함수  (0) 2022.06.15
[Web] JavaScript -2  (0) 2022.02.21
[Web] JavaScript  (0) 2022.02.21
[Web] HTML, CSS  (0) 2022.02.19