JSP

Servlet vs Action의 역할

보배 진 2025. 12. 2. 17:48

1️⃣ Servlet vs Action의 역할

구분역할
Servlet 웹 서버에서 요청(Request)을 받아서 처리하는 실제 엔트리 포인트. URL과 직접 매핑되어 있음.
예: /KakaoPayApproveServlet.do를 직접 호출하면 서블릿이 실행됨
Action (FrontController 패턴) 비즈니스 로직 처리만 담당.
Servlet에서 바로 처리하는 대신, FrontController가 요청을 받아서 알맞은 Action에게 넘김.
→ 이렇게 하면 요청별 처리 코드를 여러 Servlet에 흩어놓지 않고 한 곳(FrontController)에서 관리 가능

즉:

  • Servlet = 요청을 받는 “문”
  • Action = 요청을 실제로 처리하는 “작업장”

2️⃣ 왜 파일이 자꾸 생기는지

  • 원래는 KakaoPayApproveServlet 하나만 있어도 동작 가능
  • 근데 FrontController + Action 패턴을 적용하려고 하면:
    1. FrontController.java → 모든 .do 요청을 받음
    2. KakaoPayApproveAction.java → 결제 승인 로직 처리
    3. ActionForward.java → 페이지 이동 정보를 담는 DTO

즉, 패턴을 적용하면서 파일이 늘어나는 것.

  • 장점: 요청마다 Servlet을 새로 만들 필요 없음, 유지보수 쉬움
  • 단점: 작은 프로젝트에서는 파일이 많아 보이고 헷갈림

3️⃣ 결론

  • 작게 유지하고 싶으면 → 그냥 KakaoPayApproveServlet 하나만 쓰면 됨
  • 확장성과 유지보수 고려 → FrontController + Action 패턴 사용, 파일 여러 개 생김은 정상