상세 컨텐츠

본문 제목

Servlet (Server + let) 자바 웹 프로그램

FrontEnd/Servlet

by H_Develop 2022. 8. 12. 08:16

본문

HTML의 동적인 내용을 클라이언트의 웹 브라우저에 띄우기 위해 필요한 중간과정 처리 도구이다.

사용자가 브라우저 요청(request) < - > 서버 프로그램이 요청을 처리 (DB에서 정보를 추출해서 처리) < - > 결과를 다시 클라이언트에게 보내는 구조

 

예전에는 클라이언트쪽 프로그램과 서버쪽 프로그램으로 나뉘어 있어서 
클라이언트 프론트엔드 쪽과 서버 백엔드 쪽에서 변경이 있을 때 모든 참여된 노드들에게서 
업데이트가 일어나야 하고, Socket, RPC 등으로 데이터를 주고받았지만 최근에는 이를 웹으로 대체해서
 GET Request와 Response로 간단하게 해결하게 했다.
 웹 서버에는 서버 프로그램과 웹 서버 페이지를 이용해서 작업해준다.
  서블릿은 Apache Tomcat 서버를 이용해서 개발한다. Apache는 순수한 웹 서버(최근에는 Nginx라는 서버로 대체 중이다)는 웹 서버를 의미하고 Tomcat은 웹 서버 프로그래밍 개발용 서버이다.  
  Tomcat은 'WAS(Web Application Server) + 웹 서비스' 기능이 포함된 서버인데 여기에 웹 문서를 추가해서 실행시킬 수 있다. 웹 서버는 웹 문서를 제공하는 서버이다. 

 

 Context  
  콘텍스트는 localhost:80 아래 /admin/index, /dealer/.., /community/..., /academy/...식으로 웹 페이지상에 보이는 여러 링크 사이트를 구분해서 별개로 만들어 저장하는 기법이다. 가상 경로나 가상 사이트로 부르기도 한다. 규모가 큰 사이트를 구성할 때 사용된다. Naver와 같이 커다란 포털 사이트를 만들 때 메일, 카페, 블로그, 지식iN, 쇼핑, ... 등을 하나하나 만든 뒤 이들을 엮어서 하나의 Naver 사이트가 되는데 이 때 메일, 카페, 블로그, 지식iN, 쇼핑, ...하나 하나의 사이트를 콘텍스트로 부른다.  
  

  Tomcat의 홈 디렉터리는 ROOT인데 여기에 모든 사이트 파일들이 들어가 있으면 실행이 무거워져서 비효율적이 되고, 중요한 것은 이 디렉터리는 외부에 노출되어서도 안되고 외부에서 접속하게 해서도 안된다. 따라서 각 사이트 파일을 외부에서 접속할 수 있는 가상의 이름으로 만들어 두고 내부적으로 이를 매핑시키는 기법으로 운영한다.

 

  서블릿은 서버 어플을 생성하는 프로그램인데 서버 프로그램은 기능별로 코드가 분리되어 있고, 요청에 의해서 선택적으로 실행되게 되어 있다. 이렇게 서버에 각 서버 어플이 용도별로 조각나서 저장된 형태를 Server Application Let(Servlet)이라고 부른다. 예를 들어서 클라이언트가 GET: /notice/list, GET: /notice/reg, GET: /notice/del, ...을 요청하면 서버에 있는 모든 프로그램 파일이 응답하지 않고 해당 파일만 응답하게 된다. 이렇게 서버 프로그램을 조각나게 하기 위해서는 (자바에서 main() 메써드를 기반으로 했던 것과 다르게) service() 메써드를 사용해서 서비스별로 하나씩 생성해주고, 여기에 웹 요청 Request와 응답 Response만 추가하면 된다. Servlet 프로그램에서는 Java 프로그램을 작성할 때 main() 메써드 대신 service() 메써드를 사용한다고 이해하면 된다.
 

 

  http프로토콜
- www 서비스를 제공하기 위한 통신규약이다.
- 웹 서비스를 제공하는 Hyper Text Transfer Protocol이다.
- 웹 서버와 클라이언트는 HTTP를 통해서 통신한다.
- 소켓 통신보다 조금 더 편하게 사용할 수 있도록 설계되어 있다.


  Servlet 개요
  서블릿(server + let)이란 : 
- 서버에서 실행되는 서비스(사용자의 요구사항을 제공해주는) 객체. 
- 웹 응용프로그램을 만드는 자바 기술이며, 실행 결과값은 html로 돌려준다.
- html의 정적인 문제를 해결할 수 있는 동적인 특징을 갖는다.
- 자바언어로 작성되어 자바의 일반적인 특징을 모두 갖는다.
- 객체지향적이다.
- 쓰레드로 처리한다(동시 다발적인 사용자의 요청에 대한 응답이 용이하다)
- container(Apache Tomcat)라는 특별한 환경에서 실행된다.
- 보안 모델 적용이 수월하다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'FrontEnd > Servlet' 카테고리의 다른 글

Servlet session, cookie, application 사용법 (Calc 프로그램)  (0) 2022.08.16
Servlet  (0) 2022.08.15

관련글 더보기