수정이력
2022-08-07 불필요한 표현 정리
웹 서버, 웹 컨테이너, 애플리케이션 서버, 웹 애플리케이션 서버(WAS)... 명칭들이 비슷하다.
이참에 확실하게 정리해본다
1. 웹 애플리케이션 (Web Application)
사용자가 웹에 접속해 간접적으로 실행시키는 프로그램이다. 반대는 데스크톱 애플리케이션이다. 데스크톱 애플리케이션은 사용자 pc에 설치되어 인터넷 서비스가 필요한 게 아니라면 웹이 필요하지 않다.
2. 웹 서버 (Web Server)
웹 서버는 정적인 페이지를 클라이언트에게 전송하는 역할을 수행하는 서버이다. 클라이언트(사용자)가 특정 페이지(url)를 요청하면, 주소에 미리 매핑되어 있는 콘텐츠(html, jpg, mp3... )를 클라이언트 브라우저에 전송한다.
3. 웹 컨테이너 (Web Container)
웹 컨테이너는 웹 서버 보다 정교한 역할을 수행한다. 동적인 페이지를 클라이언트에게 전송하기 때문이다. 요청을 받으면
1) 내부 로직을 수행하고, 2) data를 가공, 처리, 보관하는 등의 기능을 수행할 수 있다.
3-1) 서블릿 컨테이너
java 기반 서버를 서블릿 컨테이너라고 부른다. 자바로 웹을 구현시 url 매핑과정에서 서블릿을 사용하기 때문이다. 서블릿 컨테이너는 웹 서버의 내부에서 서블릿(servlet) 클래스 또는 jsp파일을 실행하기 위한 환경을 제공한다.
3-2) 서블릿 컨테이너의 세부적인 역할
서블릿 객체를 생성(load)해 객체가 소멸(unload)할 때까지, 생명주기(init, service, destroy)동안 서블릿을 관리하는 역할을 한다. Apache Tomcat 이 대표적인 서블릿 컨테이너이다.
4. 애플리케이션 서버 (Application Server)
웹 컨테이너에서 확장된 것이 애플리케이션 서버이다. (웹 컨테이너 + α = 애플리케이션 서버)
Java 기준으로 보자면, 서블릿 컨테이너는 servlet, jsp, jstl 등에 집중된 환경을 제공한다. (자바로 웹 구현이 되도록 필요한 기능에 집중했다). 애플리케이션 서버는 서블릿, jsp, jstl에 더해 좀더 기능이 추가되어 통합적인 환경을 제공한다.
아래는 자바 애플리케이션 서버에서 제공되는 기능이다.
- JDBC(Java Database Connectivity)
- EJB(Enterprise JavaBean)
- JNDI(Java Naming and Directory Interface)
- JTA(Java Transaction Interface)
5. 웹 애플리케이션 서버 (Web Application Server)
웹 기술을 기반으로 동작하는 애플리케이션 서버를 웹 애플리케이션 서버라고 한다. 보통 줄여서 WAS라고 부른다. 특히, 자바에서의 WAS란 Java EE 사양을 준수하여 만든 서버를 의미한다. 웹 컨테이너보다는 애플리케이션 서버에 가깝다고 보면 되겠다.
덧붙이기
자바로 웹 애플리케이션을 개발한다 = '서블릿, JSP 기술을 사용하여 애플리케이션을 개발한다' 라고 이해하면 된다.
'웹 개발 > 개념 정리' 카테고리의 다른 글
HTTP 내용 필기 (0) | 2021.10.21 |
---|---|
내 IP 확인하기 - 사설ip와 공인ip, ip로 위치조회 (0) | 2021.07.30 |
[Java 웹개발] HttpServletRequest 객체에서 url 매핑경로 알아내기 (0) | 2021.07.21 |
[Java 웹개발] 서블릿에서 특정 페이지로 이동하기(dispatcher, redirect) (0) | 2021.06.26 |
[Java 웹개발] get방식, post방식 (0) | 2021.06.23 |