일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 로드밸런서
- gcp
- 자료구조
- Spring Data JPA
- aws
- 백트래킹
- 스프링 부트
- 개발자
- DFS
- springboot
- 클라우드 컴퓨팅
- 클라우드
- 오일러프로젝트
- Docker
- 스프링부트
- 월미도
- Kafka
- Spring
- Elasticsearch
- 쿠버네티스
- Spring Boot
- 알고리즘
- 프로그래밍문제
- JPA
- 카프카
- 백준
- 코드업
- 스프링
- Apache Kafka
- VPC
- Today
- Total
GW LABS
CGI에서 Servlet까지: WAS(Web Application Server)의 진화 역사 본문
CGI에서 Servlet까지: WAS(Web Application Server)의 진화 역사
GeonWoo Kim 2025. 8. 8. 16:04서론
오늘날 웹 애플리케이션은 단순한 HTML 페이지 제공을 넘어, 실시간 데이터 처리와 복잡한 비즈니스 로직 수행까지 가능하게 되었습니다. 이러한 변화를 가능하게 한 핵심 요소 중 하나가 바로 WAS(Web Application Server)입니다.
이번 글에서는 CGI(Common Gateway Interface)의 등장부터 Servlet과 Tomcat에 이르기까지, 인터넷과 웹 애플리케이션 서버가 어떻게 발전해왔는지를 살펴보겠습니다.
본론
1. CGI(Common Gateway Interface)의 등장
1990년대 초, 웹은 정적인 HTML 페이지 제공이 주 기능이었습니다. 하지만 사용자 요청에 따라 동적인 데이터를 생성할 필요성이 커지면서, CGI가 등장했습니다.
CGI는 웹 서버와 외부 프로그램을 연결하는 표준 인터페이스로, 요청이 들어올 때마다 새로운 프로세스를 생성해 실행합니다.
CGI 동작 예시 (Perl)
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><body>";
print "<h1>Hello, CGI!</h1>";
print "</body></html>";
장점
- 언어 제약이 없음(Perl, C, Python 등)
- 단순한 구조
단점
- 요청마다 프로세스를 생성 → 성능 저하
- 상태 유지(Session 관리)가 어려움
2. Servlet의 등장과 자바 진영의 확장
CGI의 성능 한계를 극복하기 위해, 1997년 Sun Microsystems는 Servlet API를 발표했습니다.
Servlet은 JVM(Java Virtual Machine) 위에서 실행되며, 프로세스 대신 스레드를 활용하여 성능과 자원 효율성을 크게 향상시켰습니다.
import java.io.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<h1>Hello, Servlet!</h1>");
}
}
Servlet의 장점
- 멀티스레드 기반으로 높은 성능
- Java의 객체지향 장점 활용 가능
- 세션, 쿠키 등 상태 관리 지원
3. Tomcat과 WAS의 대중화
Servlet은 표준 API였기 때문에, 이를 실행할 컨테이너(서버)가 필요했습니다.
1999년 Apache Software Foundation이 발표한 Tomcat은 오픈소스 Servlet/JSP 컨테이너로, WAS 보급에 결정적 역할을 했습니다.
Tomcat의 특징
- Servlet/JSP 표준 구현
- 경량, 오픈소스 → 학습과 실무에 용이
- 기업 환경에서도 충분히 사용 가능
Tomcat server.xml 예시
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
Tomcat은 이후 GlassFish, JBoss, WebLogic, WebSphere 등 다양한 상용 및 오픈소스 WAS의 발전을 촉진했습니다.
결론
CGI에서 시작된 웹 서버 기술은, Servlet과 Tomcat의 등장으로 성능·확장성·안정성 측면에서 비약적인 발전을 이루었습니다. 오늘날의 클라우드 네이티브 환경에서도 WAS의 개념은 여전히 핵심적인 역할을 하고 있습니다.
💡 정리: 과거 CGI의 단점을 해결한 Servlet과 Tomcat은 현대 WAS의 초석이 되었으며, 웹 애플리케이션 개발의 효율성과 확장성을 비약적으로 높였습니다.
'Journal > About Tech' 카테고리의 다른 글
오픈소스 GraphRAG 'Graphiti' (2) | 2025.08.07 |
---|---|
팔란티어(Palantir) 완전 정복: 데이터 분석 플랫폼, 활용법, 그리고 미래 전망 (1) | 2025.08.05 |