Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 애플릿(Applet) vs 서블릿(Servlet): 핵심 차이점 완벽 정리

Java 개발을 하다 보면 애플릿(Applet)서블릿(Servlet)이라는 두 가지 개념을 접하게 됩니다. 이름은 비슷하지만 실행 환경과 용도가 완전히 다른 기술입니다. 이 글에서는 두 기술의 특징과 차이점을 체계적으로 정리해 드립니다.

애플릿(Applet)이란?

애플릿은 클라이언트 측(Client-side)에서 실행되는 Java 프로그램으로, 웹 브라우저 안에서 동작하도록 설계된 소형 애플리케이션입니다.

애플릿의 주요 특징

  • 실행 위치: 클라이언트(사용자) 머신에서 실행됩니다.

  • 실행 환경: 웹 브라우저 내부에서 구동됩니다.

  • 핵심 패키지: java.applet.*, java.awt.*

  • 생명주기 메서드: init(), start(), stop(), paint(), destroy()

  • UI 요구 사항: 실행을 위해 사용자 인터페이스(UI)가 반드시 필요하며, 주로 AWT나 Swing으로 구성됩니다.

  • 대역폭: 코드와 리소스를 클라이언트로 전송해야 하므로 더 많은 대역폭을 소모합니다.

  • 보안성: 사용자 컴퓨터에서 직접 실행되기 때문에 보안 위험에 상대적으로 노출되기 쉽습니다.

서블릿(Servlet)이란?

서블릿은 서버 측(Server-side)에서 실행되는 Java 프로그램으로, 웹 요청을 처리하고 동적인 웹 페이지를 생성하는 역할을 담당합니다.

서블릿의 주요 특징

  • 실행 위치: 서버(웹/애플리케이션 서버)에서 실행됩니다.

  • 실행 환경: 서버에서 처리된 결과가 웹 페이지 형태로 브라우저에 전달됩니다.

  • 핵심 패키지: javax.servlet.*, javax.servlet.http.*

  • 생명주기 메서드: init(), service(), destroy()

  • UI 요구 사항: 자체 UI 없이 실행되며, 결과는 HTML로 클라이언트에 전달됩니다.

  • 대역폭: 모든 연산이 서버에서 수행되므로 대역폭 사용량이 적습니다.

  • 보안성: 서버의 보안 체계 아래에서 실행되므로 애플릿보다 훨씬 안전합니다.

애플릿 vs 서블릿 비교표

구분애플릿 (Applet)서블릿 (Servlet)
실행 위치클라이언트 측서버 측
실행 환경웹 브라우저웹 서버 / WAS
핵심 패키지java.applet.*, java.awt.*javax.servlet.*, javax.servlet.http.*
생명주기 메서드init(), start(), stop(), paint(), destroy()init(), service(), destroy()
UI 필요 여부필수 (AWT/Swing)불필요
대역폭 소비많음적음
보안성상대적으로 취약서버 보호 하에 상대적으로 안전

참고: 애플릿은 현재 지원 종료

한 가지 알아두어야 할 점은, 오라클(Oracle)이 JDK 9부터 애플릿을 지원 중단(Deprecated)했으며, 최신 브라우저들은 플러그인 기반 애플릿 실행을 더 이상 지원하지 않는다는 것입니다. 따라서 현대적인 웹 개발에서는 애플릿 대신 HTML5, JavaScript, 그리고 서버 측에서는 서블릿 기반의 Spring 같은 프레임워크가 표준으로 자리 잡았습니다.

마무리

정리하자면, 애플릿은 클라이언트에서 UI를 통해 실행되는 프로그램이고, 서블릿은 서버에서 요청을 처리하는 백엔드 프로그램입니다. 두 기술의 차이를 이해하면 Java 웹 아키텍처의 발전 과정을 명확하게 파악할 수 있습니다.