본문 바로가기
IT/읽어보기

WAS란?

by ccclog 2024. 6. 20.
반응형

WAS(Web Application Server, 웹 애플리케이션 서버)는 웹 애플리케이션을 실행하고 서비스하기 위한 플랫폼입니다. WAS는 클라이언트 요청을 처리하고, 비즈니스 로직을 실행하며, 데이터베이스와 통신하는 등의 역할을 합니다. WAS 구조는 이러한 기능을 효과적으로 수행하기 위해 다양한 구성 요소로 이루어져 있습니다.

WAS 구조의 주요 구성 요소

  1. 웹 서버(Web Server):
    • 역할: HTTP 요청을 받아들이고, 정적 콘텐츠(HTML, CSS, JavaScript 파일 등)를 클라이언트에 제공하는 역할을 합니다.
    • 예: Apache HTTP Server, Nginx 등.
  2. 애플리케이션 서버(Application Server):
    • 역할: 비즈니스 로직을 처리하는 중심 컴포넌트입니다. 클라이언트의 요청을 받아 데이터베이스와 통신하고, 필요한 연산을 수행한 후 결과를 클라이언트에 반환합니다.
    • 예: Apache Tomcat, JBoss, IBM WebSphere, Oracle WebLogic 등.
  3. 데이터베이스 서버(Database Server):
    • 역할: 데이터를 저장하고 관리하는 역할을 합니다. 애플리케이션 서버의 요청에 따라 데이터를 조회하거나 변경합니다.
    • 예: MySQL, PostgreSQL, Oracle Database 등.
  4. 커넥션 풀(Connection Pool):
    • 역할: 데이터베이스 연결을 효율적으로 관리하기 위한 풀입니다. 데이터베이스 연결을 미리 생성해두고 요청 시 재사용하여 성능을 최적화합니다.
    • 예: HikariCP, C3P0 등.
  5. JDBC/ODBC 드라이버:
    • 역할: 애플리케이션 서버와 데이터베이스 간의 통신을 위한 인터페이스입니다. JDBC(Java Database Connectivity) 드라이버는 자바 애플리케이션에서 데이터베이스에 연결할 때 사용됩니다.
  6. 캐시 서버(Cache Server):
    • 역할: 자주 사용되는 데이터를 메모리에 저장하여 빠르게 접근할 수 있도록 합니다. 데이터베이스 부하를 줄이고 성능을 향상시킵니다.
    • 예: Redis, Memcached 등.

WAS 구조의 작동 원리

  1. 클라이언트 요청: 사용자가 웹 브라우저를 통해 URL을 입력하거나, 애플리케이션을 통해 서버에 요청을 보냅니다.
  2. 웹 서버 처리: 웹 서버는 HTTP 요청을 받아 정적 콘텐츠를 직접 제공하거나, 동적 콘텐츠 처리를 위해 요청을 애플리케이션 서버로 전달합니다.
  3. 애플리케이션 서버 처리: 애플리케이션 서버는 비즈니스 로직을 처리하고, 필요한 경우 데이터베이스 서버와 통신하여 데이터를 조회하거나 업데이트합니다.
  4. 데이터베이스 서버 통신: 애플리케이션 서버의 요청에 따라 데이터베이스 서버는 데이터를 조회하거나 변경합니다. 이때, 커넥션 풀을 통해 효율적인 데이터베이스 연결 관리가 이루어집니다.
  5. 응답 반환: 애플리케이션 서버는 처리 결과를 웹 서버에 반환하고, 웹 서버는 이를 클라이언트에 전달합니다.
  6. 캐시 사용: 자주 조회되는 데이터는 캐시 서버에 저장되어, 데이터베이스 서버에 요청하기 전에 캐시에서 빠르게 데이터를 가져옵니다.

WAS의 장점

  • 확장성: 여러 대의 서버를 추가하여 시스템의 용량을 쉽게 확장할 수 있습니다.
  • 안정성: 애플리케이션 서버와 데이터베이스 서버를 분리하여 하나의 서버에 문제가 발생하더라도 전체 시스템이 영향을 받지 않도록 할 수 있습니다.
  • 성능 최적화: 캐시 서버와 커넥션 풀을 통해 데이터 접근 속도를 향상시키고, 데이터베이스 부하를 줄일 수 있습니다.
  • 보안: 웹 서버와 애플리케이션 서버 간의 분리를 통해 보안 위협을 줄일 수 있습니다.

WAS 구조는 현대의 복잡한 웹 애플리케이션을 효율적으로 운영하기 위해 필수적인 구성 요소들을 포함하고 있으며, 이를 통해 안정적이고 확장 가능한 서비스를 제공합니다.

반응형