Web Application Server (WAS)

Web Application Server (WAS)는 웹 애플리케이션을 실행하고 관리하는 서버 소프트웨어이다. WAS는 웹 서버와 유사하지만, 주요 기능과 용도가 다르다. 웹 서버는 정적 콘텐츠(HTML 파일, 이미지 등)를 클라이언트에 제공하는 반면, WAS는 동적 콘텐츠를 생성하고 애플리케이션 로직을 처리하는 데 중점을 둔다.
동적 콘텐츠 생성
WAS는 서버 측에서 코드 실행을 통해 동적 콘텐츠를 생성한다. 사용자의 요청에 따라 웹 페이지를 동적으로 생성하거나 데이터 처리를 통해 결과를 생성하여 클라이언트에게 전달한다. 예를 들어, JavaServer Pages (JSP), ASP, PHP와 같은 서버 측 스크립트를 사용하여 동적 웹 페이지를 생성할 수 있다. 이 기능은 사용자 맞춤형 콘텐츠 제공에 유용하다.
애플리케이션 로직 처리
비즈니스 로직을 처리하여 사용자의 요청에 적절한 응답을 생성한다. 이는 데이터베이스와 상호작용하거나 복잡한 계산을 수행하는 것 등을 포함한다. 예를 들어, 사용자 인증, 결제 처리, 데이터 분석 등의 기능이 여기에 해당한다.
세션 관리
사용자 세션을 관리하여 로그인 상태, 사용자 맞춤형 데이터, 장바구니 정보 등 다양한 사용자 상태를 추적하고 유지한다. 세션 관리는 사용자가 로그인 후 여러 페이지를 돌아다녀도 상태를 유지할 수 있게 해준다.
데이터베이스 연동
데이터베이스와 연동하여 사용자 요청에 따라 데이터를 조회하거나 업데이트한다. 이를 통해 동적 콘텐츠를 생성하거나 사용자 요청에 맞는 데이터를 제공한다. 예를 들어, SQL 쿼리를 통해 사용자 데이터를 검색하거나 수정할 수 있다.
서비스와 프로토콜 관리
HTTP, HTTPS, SOAP, REST 등 다양한 웹 프로토콜을 지원한다. 이는 웹 서비스와의 통신을 처리하며, 웹 애플리케이션과 다른 시스템 간의 데이터 교환을 가능하게 한다. 이는 웹 서비스의 통합과 API 호출을 지원한다.
스케일링과 성능 관리
여러 요청을 동시에 처리할 수 있도록 스케일링을 지원하며, 성능을 최적화하기 위한 다양한 기술을 사용한다. 캐싱, 로드 밸런싱, 세션 클러스터링 등의 기술을 통해 높은 성능과 안정성을 유지한다. 이는 대량의 트래픽을 효율적으로 처리하는 데 도움이 된다.
- Apache Tomcat: Java Servlet과 JSP를 실행하는 오픈 소스 컨테이너로, Java 기반 웹 애플리케이션을 실행한다.
- JBoss (WildFly): Red Hat에서 제공하는 Java EE 애플리케이션 서버로, 엔터프라이즈급 웹 애플리케이션을 지원한다.
- IBM WebSphere: IBM에서 제공하는 상용 Java EE 애플리케이션 서버로, 대규모 기업 환경에서 사용된다.
- Microsoft IIS (Internet Information Services): Microsoft의 웹 서버로, ASP.NET 애플리케이션을 실행한다.
WAS와 웹 서버의 차이
- 웹 서버: 정적 콘텐츠(HTML, CSS, 이미지 등)를 클라이언트에 제공하는 역할을 한다. 예를 들어, Apache HTTP Server, Nginx가 있다. 웹 서버는 정적 파일을 제공하는 데 특화되어 있다.
- WAS: 동적 콘텐츠를 생성하고 비즈니스 로직을 처리한다. 웹 서버와 함께 사용되며, 웹 서버가 정적 콘텐츠를 처리하고 WAS가 동적 콘텐츠를 처리하는 구조로 운영된다.
Java Archive (JAR)

Java Archive (JAR) 파일은 Java 애플리케이션, 라이브러리 또는 기타 Java 관련 파일을 패키징하는 파일 형식이다.
JAR 파일은 여러 개의 Java 클래스와 관련 자원(이미지, 속성 파일 등)을 하나의 압축된 파일로 묶어 배포할 수 있게 해준다.
패키징
여러 Java 클래스 파일과 관련 자원(예: 이미지, 속성 파일 등)을 하나의 압축된 파일로 묶어 배포한다.
패키징을 통해 애플리케이션의 모든 구성 요소를 하나의 파일로 관리할 수 있다.
배포
JAR 파일을 통해 애플리케이션이나 라이브러리를 배포하고 관리한다.
여러 파일을 하나의 JAR 파일로 묶어 배포하면 이는 배포 과정을 단순화하고 일관성을 유지한다.

JAR 파일에는 MANIFEST.MF라는 메타데이터 파일이 포함되어 있으며, 이를 통해 JAR 파일을 실행 가능한 애플리케이션으로 만들 수 있다. MANIFEST.MF 파일에 메인 클래스를 지정하면, java -jar yourfile.jar 명령어로 애플리케이션을 실행한다.
- myapp.jar: Java 애플리케이션을 패키징한 JAR 파일.
- library.jar: Java 라이브러리를 패키징한 JAR 파일
- JAR 파일은 Java 애플리케이션의 코드와 자원을 하나의 파일로 패키징하여 배포하고 실행할 수 있다.
- JAR 파일은 웹 애플리케이션 서버에서 실행되는 애플리케이션의 구성 요소로 사용될 수 있으며, Java Runtime Environment (JRE)에서 실행된다.
내장 Tomcat은 JAR 파일에 포함되어 있다. 이전의 WAR 는 톰캣을 직접 설치해서 설정해줘야했다면 Spring Boot 같은 프레임워크는 Tomcat을 내장 JAR로 포함시켜서, JAR 파일 하나로 애플리케이션과 서버를 함께 패키징한다. JAR 파일 내의 Tomcat이 애플리케이션을 실행하는 형태가 된다.
- WAS: 서버 소프트웨어로서, 웹 애플리케이션을 실행하고 관리하는 역할을 한다. 서버 환경을 제공하여 동적 콘텐츠를 생성하고, 비즈니스 로직을 처리한다. WAS는 애플리케이션 서버로서 클라이언트의 요청에 따라 애플리케이션을 실행하고 결과를 생성하여 클라이언트에게 전달한다.
- JAR: 파일 형식으로, Java 애플리케이션이나 라이브러리를 패키징하는 역할을 한다. JAR 파일 자체는 실행 환경이나 서버 기능을 제공하지 않는다. JAR 파일은 단순히 파일을 압축하고 패키징하는 형식일 뿐, 애플리케이션의 실행이나 서버 관리 기능은 포함되어 있지 않다.
용도와 기능
- WAS: 애플리케이션 서버로서, 웹 애플리케이션의 실행과 관리를 담당한다. 세션 관리, 데이터베이스 연결, 비즈니스 로직 처리 등의 기능을 제공한다. WAS는 애플리케이션의 실행 환경을 제공하며, 서버에서 애플리케이션을 실행하고 관리한다.
- JAR: Java 클래스와 자원을 패키징하여 배포할 수 있게 해준다. 애플리케이션 코드와 라이브러리를 묶어 관리할 수 있게 한다. JAR 파일은 웹 애플리케이션 서버에서 실행되거나 Java Runtime Environment (JRE)에서 실행된다
작동 방식
- WAS: 클라이언트 요청에 따라 서버에서 애플리케이션을 실행하고 결과를 생성하여 클라이언트에게 전달한다. WAS는 동적 콘텐츠 생성, 비즈니스 로직 처리, 데이터베이스 연동 등을 담당한다.
- JAR: Java 애플리케이션이나 라이브러리를 묶어서 배포하며, JAR 파일이 실제로 실행되기 위해서는 WAS와 같은 서버 환경이나 Java Runtime Environment (JRE)가 필요하다. JAR 파일 자체는 실행 환경을 제공하지 않는다.
'CS > NETWORK' 카테고리의 다른 글
| Cross Domain (0) | 2024.08.14 |
|---|---|
| CDN (Content Delivery Network) (0) | 2024.08.14 |
| HTTP 헤더 (0) | 2024.08.14 |
| 로컬 스토리지 / 세션 스토리지 / 쿠키 (0) | 2024.08.14 |
| 케이블 (0) | 2024.08.13 |