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

자바(Java) 애플릿(Applet)과 서블릿(Servlet)의 차이점 완벽 정리

자바(Java)에서 애플릿(Applet)서블릿(Servlet)은 모두 자바 환경에서 실행되는 프로그램이라는 공통점이 있습니다. 하지만 두 기술의 가장 큰 차이점은 처리가 이루어지는 환경, 즉 어느 쪽에서 코드가 실행되느냐에 있습니다.

애플릿은 클라이언트 측에서 동작하는 반면, 서블릿은 서버 측에서 동작합니다. 아래 표를 통해 애플릿과 서블릿의 핵심적인 차이점을 한눈에 비교해 보겠습니다.

애플릿 vs 서블릿 주요 차이점 비교표

번호구분 기준애플릿(Applet)서블릿(Servlet)
1실행 위치클라이언트 측에서 실행됩니다. 즉, 클라이언트 머신의 웹 브라우저 내부에서 애플릿이 구동됩니다.서버 측에서 실행됩니다. 즉, 웹 서버 상에서 서블릿이 구동됩니다.
2부모 패키지java.applet.*java.awt.* 패키지를 사용합니다.javax.servlet.*javax.servlet.http.* 패키지를 사용합니다.
3주요 메서드init(), start(), paint(), stop(), destroy() 등이 중요한 메서드입니다.생명주기(Lifecycle) 메서드로 init(), service(), destroy()가 있습니다.
4사용자 인터페이스실행을 위해 AWT나 Swing과 같은 사용자 인터페이스(UI)가 반드시 필요합니다.서블릿 실행에는 별도의 인터페이스가 필요하지 않습니다.
5필요 대역폭클라이언트 머신에서 UI를 포함해 실행되기 때문에 더 많은 네트워크 대역폭이 요구됩니다.서버에서 실행되므로 상대적으로 적은 대역폭만 필요합니다.
6보안성클라이언트 머신에서 직접 실행되기 때문에 보안상 위험에 더 노출되기 쉽습니다.서버의 보안 체계 하에서 실행되므로 상대적으로 더 안전합니다.

애플릿 예제 코드

AppletDemo.java

import java.applet.Applet;
import java.awt.Graphics;
public class AppletDemo extends Applet {
    // paint() 메서드 오버라이딩
    @Override
    public void paint(Graphics g){
        g.drawString("AppletDemo", 20, 20);
    }
}

실행 결과

AppletDemo

서블릿 예제 코드

ServletDemo.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletDemo extends HttpServlet {
    private String message;
    public void init() throws ServletException{
        // 필요한 초기화 작업 수행
        message = "Servlet Demo";
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException{
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println(message);
    }
}

실행 결과

Servlet Demo

정리

결론적으로 애플릿은 브라우저 기반의 클라이언트 측 GUI 프로그램이고, 서블릿은 서버에서 요청을 처리해 응답을 생성하는 서버 측 프로그램입니다. 현재 애플릿은 최신 브라우저에서 지원이 중단된 기술이지만, 두 기술의 구조적 차이를 이해하면 자바 기반 웹 개발의 전체적인 흐름을 파악하는 데 큰 도움이 됩니다.