웹서버, WAS, 서블릿

현서·2025년 6월 2일
1

자바

목록 보기
24/32
post-thumbnail

서블릿(Servlet)

  • 자바를 기반으로 웹 서버에서 실행되는 서버 측 프로그램
  • 클라이언트의 요청을 처리하고 그에 대한 응답을 생성하는 역할
  • javax.servlet 패키지에 정의된 인터페이스를 구현하여 작성
  • 초기화(init), 요청 처리(service), 종료(destroy)의 생명주기를 가짐
  • WAS(Web Application Server)에서 관리

WAS(Web Application Server)

  • 웹 클라이언트의 요청을 처리하고 데이터베이스나 서버 로직과 연동하여 동적인 웹 컨텐츠를 생성해주는 서버 소프트웨어
  • HTTP 요청을 받아 서블릿, JSP, Spring 같은 웹 애플리케이션 컴퍼넌트를 실행하고, 그 결과를 HTML 형태로 클라이언트에게 응답
  • 아파치 Tomcat ✅
  • Jetty
  • JBoss
  • WebLogic
  • WebSphere

웹서버(web Server)

  • 클라이언트의 요청을 받아, 정적인 리소스(HTML, CSS, 이미지, 자바스크립트 등)를 클라이언트에게 그대로 반환하는 역할
  • 아파치 HTTP 서버
  • NginX ✅
  • Microsoft IIS
구분웹서버 (Web Server)WAS (Web Application Server)
역할정적 파일(html, css, js, 이미지 등) 제공동적 처리(로그인, DB 조회, 로직 처리 등)
예시Nginx, ApacheTomcat, Node.js, Spring Boot, Express 등
처리 대상클라이언트 요청 중 정적인 것클라이언트 요청 중 동적인 것

항목웹서버(Web Server)WAS(Web Application Server)서블릿(Servlet)
역할정적 파일 응답(html 등)동적 요청 처리(Java 실행 등)Java로 만든 요청 처리 코드
예시Nginx, ApacheTomcat, Spring Boot, JettyLoginServlet, BoardServlet 등
코드 실행❌ 안 됨✅ 가능✅ Java 클래스
위치사용자와 제일 가까움웹서버 뒤에서 동작WAS 안에서 실행됨

✅ WAS와 Web Server를 같이 쓰는 이유 (협업 구조)

1. 정적/동적 분리로 성능 향상
웹서버가 정적 파일을 빠르게 처리하고,
동적 요청은 WAS로 넘겨줌 → 리소스 낭비 방지

2. 보안 강화
외부와 직접 연결되는 건 웹서버 (ex. Nginx)
WAS는 내부 네트워크에서만 동작 → 노출 최소화

3. 부하 분산 (Load Balancing)
웹서버가 여러 WAS로 요청을 분산시켜 줌 → 확장성 향상

4. 유지보수 용이성
정적 콘텐츠 변경은 웹서버만 손보면 되고,
로직 변경은 WAS만 수정 → 역할별로 관리 용이

5. 캐싱
웹서버는 정적 파일을 캐싱하여 더 빠르게 응답 가능 → 속도 ↑

[사용자 브라우저]

[웹서버 (Nginx)]
├── 정적 파일 처리 (html, css, js)
└── 동적 요청 전달

[WAS (Express, Spring 등)]

[DB or 로직 처리]

💡비유로 이해하기
웹서버 = 안내데스크 직원

  • 간단한 요청(“화장실 어디예요?”)은 직접 처리하고,
  • 복잡한 요청(“계약서 상담이요”)은 전문가에게 연결해 줌.
    WAS = 전문가
  • 복잡한 업무 처리 담당 (로그인 처리, 주문 로직 등)

nginx 실행

윈도우 설치
https://nginx.org/en/download.html 에서 윈도우용 stable버전 다운로드

맥 설치
brew install nginx

윈도우 실행
c:\nginx 폴더에서 nginx.exe를 실행하거나, 명령 프롬프트에서 start nginx
맥 실행
sudo nginx

명령 프롬프트에서
cd C:\nginx
start nginx

Nginx 종료
nginx -s quit (정상종료)
nginx -s stop (강제종료)

Nginx 재시작
nginx -s reload

NginX 실행 중 확인
tasklist | findstr nginx

localhost 페이지 새로고침하면,


Tomcat 실행

https://tomcat.apache.org/download-10.cgi

tomcat10 -> Core: 64-bit Windows zip 설치!

파일 경로가 굉장히 중요하다...!
cd C:\tomcat10\bin

톰켓 실행 : startup
톰켓 종료 : shutdown

나는 localhost:8080 이 어디선가 사용중이라,
localhost:8081 에서 실행시키기 위해 conf 폴더 안의 server.xml에서 8080부분을 8081로 수정했다.

<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000"
               />

이렇게 뜨면 잘 된 것

profile
The light shines in the darkness.

0개의 댓글