1. Servlet
1. Network 통신
1. Server-client Model
- 서버는 특정 서비스를 제공하는 컴퓨터를 말하며, 클라이언트는 해당 서비스를 이용하는 사용자를 의미한다.
2. Servlet의 종류
- Web Server : 웹 브라우저와 HTTP 프로토콜을 사용하여 사용자의 요구에 따른 특정 서비스를 제공하는 서버
- Mail Server : 인터넷을 통해 사용자 간의 전자 우편을 주고 받는 서비스 제공
- FTP Server : 서버 내에 파일을 업로드, 다운로드 할 수 있도록 파일 관리 기능 제공
- Telnet Server : Terminal, 텍스트로만 이루어진 창에서 특정 명령어를 통해 원격지 서버를 접속 및 관리
- Database Server : 데이터를 저장하고, 원격지에 접속할 경우 권한에 따라 해당 데이터를 열람, 추가, 수정, 삭제하는 기능 처리
2. Web 통신
1. Web 통신 구조
2. Web Server 란
- 사용자에게 HTML 페이지나 jpg, png와 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에 제공하는 서버로, 내부의 내용이 이미 만들어져 있는 정적인 요소들을 화면에 보여주는 역할을 한다.
3. 개별(로컬)프로그램과 서버 프로그램의 특징
- 개별 프로그램의 특징 및 단점
- 프로그램 업데이트 발생 시 각각 다시 다운로드 해야 한다.
- 각 프로그램에서 생성된 데이터 개별 저장되므로 공유 불가하다.
- 서버 프로그램 특징
- 프로그램 업데이트 발생 시 서버가 상관하지 않아도 클라이언트가 서버에서 다운 받아 업데이트를 개별적으로 진행한다.
- 데이터는 서버에 일괄 저장된다.
3. Web Server의 종류
- Apache Software Foundation에서 만든 서버로 HTTP 통신에 대한 여러 라이브러리를 제공한다.
- Window OS에서 제공하는 웹 서버로, 높은 수준의 보안성과 성능을 제공한다.
- 무료 오픈 소스 서버로, 사용자 요청을 스레드가 아닌 확장성이 있는 이벤트 기반 설계를 통해 필요 리소스만 할당하여 사용한다.
4. WAS란
- Web Application Server의 약자로, 사용자가 요청한 서비스의 결과를 스크립트 언어 등으로 가공하여 생성한 동적인 페이지를 사용자에게 보여주는 역할을 한다.
- Web Application이란
- 정적인 페이지를 제공하는 미리 완성된 클라이언트 프로그램이다.
- 브라우저만 설치되어 있으면 서버에 요청해 언제든 볼 수 있다.
- 클라이언트 요청(= url 요청)에 따라 서버가 응답을 html 태그 문법인 텍스트로 전송하면, 브라우저가 해당 텍스트를 해석해 띄워주는 방식이다.
- 서버는 클라이언트 요청(request)에 반드시 응답(response)해야 한다.
- 응답할 내용이 없으면, 응답 내용이 없다는 응답이라도 해야 한다.
5. WAS의 종류
- Apache Software Foundation에서 서블릿과 JSP를 통한 동적인 웹 문서를 처리하기 위해 만든 웹 애플리케이션 서버이다.
- Jboss라고도 불리며, tomcat이 제공하는 servlet container뿐만 아니라 EJB container를 별도로 제공하여 폭넓은 서비스를 구현한다.
- 국산 WAS로, 대용량 데이터 트랜잭션을 고성능으로 처리하며 개발 및 운영에 관한 기술 지원이 뛰어나다.
6. Web & WAS
- 구조: Web browser ↔ Web (html) ↔ WAS
- web(html)은 사전에 작성된 화면으로 정적인 페이지(사전에 작성된 화면)를 의미한다. 서버는 따로 두고 일단 클라이언트 요청에 대해 web에서 응답한 뒤에, 처리할 동적 요청 등 필요에 따라 was에 요청하여 응답한다.
- WAS는 Servlet을 보관하다가 서블릿 라이프사이클에 따라 생성, 소멸 등을 주관하는 역할을 하여, 다른 말로 Servlet Container라고도 부른다.
3. CGI & WAS
1. CGI
- CGI(Common Gateway Interface)는 웹 서버가 직접적으로 웹 프로그램을 실행하는 것을 말한다.
- 동일 프로그램에 대한 요청이 있을 때마다 각각의 프로그램을 실행하여, 요청과 프로그램이 1:1 매칭되어 실행된다.
- Perl이나 C/C++ 언어를 사용하여 웹 서버가 실행할 수 있는 프로그램을 작성한다.
2. WAS
- WAS(Web Application Server)는 웹 서버가 웹 애플리케이션 서버에 요청하면, 웹 애플리케이션 서버가 해당 프로그램을 실행하는 방식이다.
- 동일 프로그램에 여러 요청이 있으면 한 개의 프로그램을 실행하여 다수 요청을 처리한다.
3. Container (Servlet, JSP)
- Servlet-Container
- Servlet의 생명 주기(생성,초기화,소멸)를 관리한다.
- HttpServletRequest, HttpServletResponse 객체를 생성한다.
- 요청에 따라 멀티스레딩 구성이 가능하며, 전송 방식에 따라 동적으로 페이지 구성하는 작업을 진행한다.
- 정적 로딩 처리를 한다.
- JSP-Container
- JSP 파일을 java코드로 변경해주고 class파일로 전환하여 메모리 공간에 로드한 뒤 실행 가능하게 만드는 작업(= Servlet화)을 한다.
- 처리 결과를 HTML파일로 만들어주는 작업을 진행한다.
- 동적 로딩 처리를 한다.
4. Web Server & WAS
구분 | 장점 | 단점 |
Web Server | - 빠른 처리 속도 → 요청에 대한 결과 페이지만 전송 - 쉬운 구현 → HTML같은 단순한 문서만으로 구성 |
- 한정적인 서비스 → 만들어진 정보만 보여주므로 서비스가 한정적임 - 글의 추가, 수정, 삭제가 어려움 → 문서의 내용이 변경될 경우 직접 수정 |
WAS | - 서비스의 다양성 → 여러 데이터 활용 가능 - 글의 추가, 수정, 삭제가 쉬움 → 문서 내용이 변경되면 직접 수정하지 않음 |
- 느린 처리 속도 → 데이터를 처리하여 결과 전송 - 어려운 구현 → 서비스에 해당하는 소스 직접 작성 |
'이것 저것 개발 공부 > Servlet' 카테고리의 다른 글
[Servlet] Servlet에서 Session과 Cookie 완벽 이해하기 | 차이점, 사용법, 예제까지 정리 (0) | 2025.05.12 |
---|---|
[Servlet] Servlet Forward와 Redirect의 차이점과 사용법 완벽 정리 (0) | 2025.05.11 |
[Servlet] Servlet 메서드와 파라미터 제대로 알기 - 초보자를 위한 웹 개발 가이드 (0) | 2025.05.08 |
[Servlet] 초보자를 위한 Servlet Mapping과 생명주기, 초기 설정법 총정리 (0) | 2025.05.07 |
[Servlet] Servlet 기초 완벽 가이드 | 동작 방식과 DD(web.xml) 설정법 (2) | 2025.05.07 |