📌client/server  환경의 이해

 

정보시스템의 구성 요소와 정보를 요청하는 클라이언트와 정보를 제공하는 서버로 분리하는 네트워크 아키텍처가 등장했는데 이를 클라이언트/서버 아키텍처라 한다.

  (1) Client/Server 아키텍처 구성요소

  * presentation Rules : 사용자 인터페이스를 담당(User Interface)

  * Application logic(Business Rules) : 업무 프로세스(Business process)를 정의

  * Data Access Rules : Data Service 를 담당하는 영역에 access 담당

 

 

3-Tier구조
웹 어플리케이션 시스템의 N-Tier구조

W.S(웹서버, 정적컨텐츠)

웹브라우저의 요청을 받아 그에 따른 결과(응답)을 웹브라우저에 전송

주로 정적인 HTML, 이미지, CSS, 자바스크립트 파일을 웹브라우저에 제공할 때사용

  주요제품) Apache,IIS 등

 

W.A.S(웹어플리케이션서버, 동적컨텐츠)

게시글 목록, 로그인 처리와 같은 기능, 즉 로직을 실행(처리)하고, 그 결과를 응답으로 웹 서버에 전달

     1.로우데이터 확보(dao) 
     2.인포메이션화(service) 
     3.언어화시켜 컨텐츠로 만듬(view)/controller: 클라이언트의 요구사항분석         

주요제품) Tomcat, Jeus 등                                                             
                                                                      

  W.A.S가 필요한 이유
1 개발환경 상에서 없는 api를 빌려쓰기 위해
2 클라이언트가 언제 어디서 요청을 보낼지 몰라서 24시간 대기할 수 있는 80번 포트를 대기할 수 있는 상태로 한다
  (특정포트 감시)
3 백그라운드에서 동작할 수 있는 어플리케이션을 운영하다가 관련 요청이 들어오면 서비스를 제공한다(=컨테이너)

 

* Client/Server 시스템 관련 용어

용어 정의
클라이언트 서버가 제공하는 서비스를 요청하고, 서버로부터 반환되는 응답을 사용자에게 맞는 적절한 방식으로 표현하는 기능을 가진 프로그램이나 시스템
서버 클라이언트에게 네트워크를 통해 서비스를 제공하는 프로그램이나 시스템
프로토콜 정보기기 사이에서 정보교환이 이루어질 경우, 통신규칙 및 방법에 대한 규약
TCP/IP 패킷 통신 방식의 프로토콜인 IP와 전송조절 프로토콜인 TCP로 구성된 전송 규약
HTTP Hyper Text Transfer Protocol는 웹상에서 정보를 주고받기 위해 정의된 규약으로 주로 HTML문서의 송수신을 위해 사용, 클라이언트와 서버사이의 직접적인 요청과 응답 처리를 위한 프로토콜이라 할 수 있다.
미들웨어 분산 컴퓨팅 환경에서 서로 다른 기종의 하드웨어나 프로토콜, 통신환경 등을 연결하여, 응용프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있게 하는 소프트웨어

 

1. 서블릿이란?

  • HTTP protocol 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속하여 개발하며, Servlet은 컨테이너에 의해서 실행되고 관리된다.
  • HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다.
  • 서블릿은 외부 요청마다 프로세스보다 가벼운 스레드로써 응답한다.

2. JSP와 서블릿의 차이점

  기능의 차이는 없고 컨테이너의 역할의 차이만 있다. 

  1. JSP : HTML 문서 안에 java 코드를 포함하고 있다. MVC에서 View 역할
  2. 서블릿 : 자바 코드 안에 HTML을 포함하고 있다. 주로 MVC에서 컨트롤러 역할

3. 서블릿 컨테이너(톰캣 등)란?

  • HTTP 요청을 받아서 Servlet을 실행하고 생명주기를 관리하는 역할을 한다.
  • servlet과 웹서버가 통신할 수 있는 방법을 제공
  • 멀티 스레딩을 지원하여 클라이언트의 다중 요청을 알아서 처리

4.JSP 컨테이너(톰캣 등)란?

  JSP를 서블릿으로 변환하는 프로그램

- JSP 컨테이너 역시 서블릿으로 구현된 프로그램

- JSP 컨테이너가 JSP 파일을 서블릿 소스로 변환할 때의 기본 스펙은 컨테이너마다 동일하며, 상속관계나 생성되는 서블릿 클래스명만 다르게 생성된다

JSP 컨테이너는 JSP 파일을 서블릿 소스로 변환 및 컴파일까지만 담당하는 프로그램이며,

변환된 서블릿의 수행은 서블릿 컨테이너가 담당

5. 서블릿과  JSP의 특징


 Servlet

 

 Java 코드 안에 HTML 코드 (하나의 클래스)
 data processing(Controller)에 좋다.
 즉 DB와의 통신, Business Logic 호출, 데이터를 읽고 확인하는 작업 등에 유용하다.
 Servlet이 수정된 경우 Java 코드를 컴파일(.class 파일 생성)한 후 동적인 페이지를 처리하기 때문에 전체 코드를 업데이   트하고 다시 컴파일한 후 재배포하는 작업이 필요하다. (개발 생산성 저하)


JSP


 HTML 코드 안에 Java 코드
 presentation(View)에 좋다.
 즉 요청 결과를 나타내는 HTML 작성하는데 유용하다.
 JSP가 수정된 경우 재배포할 필요가 없이 WAS가 알아서 처리한다. (쉬운 배포)

'웹기반 애플리케이션' 카테고리의 다른 글

JSP(Java Server Page)란?  (0) 2023.03.02
자원의 종류와 식별 방법, URI(URL,URC,URN)  (0) 2023.02.27
서블릿(Servlet)이란?  (0) 2023.02.27
SOLID, MODEL1과 MODEL2의 차이  (0) 2023.02.24
톰캣이란?  (0) 2023.02.21

+ Recent posts