1.1 웹 서버와 WAS
1. 웹(Web)의 동작 원리
웹 브라우저(클라이언트)가 웹 서버(서버)에게 원하는 페이지를 요청(Request)하면, 웹 서버가 해당 페이지를 찾아서 응답(Response)하는 구조입니다.
정적 페이지 (Static Pages)
- 내용이 변하지 않는 페이지 (HTML, CSS, 이미지 등)
- 누가 언제 접속하더라도 항상 동일한 내용을 보여줍니다.
- 예: 회사 소개 페이지, 제품 설명서
동적 페이지 (Dynamic Pages)
- 사용자의 요청, 시간, 데이터베이스의 상태 등에 따라 내용이 변하는 페이지
- 예: 게시판, 쇼핑몰 장바구니, 마이페이지
2. 웹 서버 (Web Server)
- 역할: 클라이언트(브라우저)의 요청을 받아 정적 페이지를 제공하는 서버
- 대표적인 소프트웨어: Apache, Nginx, IIS
- 동적인 처리가 필요할 경우, WAS에게 처리를 부탁(위임)합니다.
3. 웹 애플리케이션 서버 (WAS: Web Application Server)
- 역할: 웹 서버의 기능 + 동적 페이지를 생성하는 기능
- 프로그램 코드를 실행하여 데이터베이스 조회, 비즈니스 로직 처리 등을 수행합니다.
- 대표적인 소프트웨어: Apache Tomcat, JBOSS, WebLogic, Jetty
참고: 요즘의 WAS는 웹 서버의 기능(정적 처리)도 성능이 매우 좋아져서, 트래픽이 엄청나게 많지 않은 중소규모 사이트에서는 WAS 하나만으로도 웹 서비스를 운영하기도 합니다. (Tomcat 하나만 사용하는 경우)
4. CGI와 Servlet
과거에는 C/Perl 등으로 만든 CGI(Common Gateway Interface)를 사용했으나, 요청마다 프로세스를 생성해야 해서 메모리 부하가 심했습니다. 자바에서는 이를 해결하기 위해 Servlet(서블릿) 기술을 만들었습니다.
- Servlet: 자바 언어로 웹 프로그래밍을 하기 위해 만들어진 기술 (스레드 기반으로 동작하여 효율적)
- JSP (Java Server Pages): Servlet은 자바 코드 안에 HTML을 넣어야 해서 작성이 불편했습니다. 이를 보완하기 위해 HTML 안에 자바 코드를 넣을 수 있게 만든 기술이 JSP입니다. (실행 시 Servlet으로 변환됨)
서브목차