스프링 소개 | 스프링

Faithful Dev·2025년 2월 17일

스프링 프레임워크

목록 보기
1/20

서블릿(Servlet)

서블릿(Servlet)은 자바 기반의 웹 애플리케이션에서 HTTP 요청을 처리하는 기본 기술이다.

특징 및 역할

  • 클라이언트의 요청을 받아 서버에서 처리한 후, 응답을 생성한다.
  • 웹 컨테이너(예: Tomcat, Jetty)에서 실행되며, 요청/응답 객체(HttpServletRequest, HttpServletResponse)를 통해 데이터를 주고받는다.
  • HTML, JSON 등의 응답을 생성할 수 있으며, JSP(JavaServer Pages)와 함께 사용되기도 한다.

한계

  • 서블릿을 직접 사용하면 코드가 길어지고 유지보수가 어려워진다.
  • 요청 처리 로직과 비즈니스 로직이 혼재하기 쉽다.
  • 여러 서블릿 간의 공통 기능(인증, 로깅 등)을 재사용하기 어렵다.

이러한 문제를 해결하기 위해 JSP, 필터(Filter), 리스너(Listener), 서블릿 컨테이너 등의 개념이 등장했으며, 나아가 스프링 프레임워크가 발전하게 되었다.


EJB(Enterprise JavaBeans)

EJB(Enterprise JavaBeans)는 엔터프라이즈급 애플리케이션을 위한 비즈니스 로직 관리 기술이다.

특징 및 역할

  • 분산 환경에서 재사용 가능한 비즈니스 로직을 제공한다.
  • 트랜잭션 관리, 보안, 원격 호출(RMI), 분산 컴퓨팅 등을 지원한다.
  • 세 가지 주요 유형이 있다.
    • Session Bean: 비즈니스 로직을 캡슐화
    • Entity Bean(EJB 3.0 이후 JPA로 대체됨): 데이터베이스 엔티티 관리
    • Message-Driven Bean(MDB): 비동기 메시지 처리

EJB의 한계

  • 설정이 복잡하고 개발이 어렵다.
  • 컨테이너(WebLogic, JBoss 등) 의존성이 강하다.
  • 무겁고 과도한 엔터프라이즈 기능이 필요하지 않은 경우 비효율적이다.

EJB의 복잡성과 성능 문제를 해결하기 위해 스프링이 등장했다.


스프링(Spring)

스프링(Spring)은 경량 컨테이너 기반의 기업용 애플리케이션 프레임워크다.

특징 및 역할

  • POJO(Plain Old Java Object) 기반 개발을 지원하여 EJB의 무거운 의존성을 줄였다.
  • DI(Dependency Injection, 의존성 주입)를 활용하여 객체 간의 결합도를 낮추고, 유연한 애플리케이션 설계를 가능하게 한다.
  • AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)을 지원하여 트랜잭션, 로깅 등 공통 기능을 모듈화할 수 있다.
  • 스프링 MVC를 제공하여 서블릿 기반의 웹 애플리케이션을 쉽게 개발할 수 있다.
  • EJB 대신 스프링 트랜잭션 관리를 통해 효율적인 트랜잭션 제어가 가능하다.
  • JPA, Hibernate 등 ORM 프레임워크와 통합이 용이하다.

장점

  • EJB보다 가볍고 설정이 간편하다.
  • XML, 애너테이션, 자바 설정을 활용하여 유연하게 설정할 수 있다.
  • 다양한 모듈(스프링 부트, 스프링 데이터, 스프링 시큐리티 등)과 연계가 가능하다.

비교

기술주요 역할특징단점
서블릿HTTP 요청/응답 처리웹 컨테이너에서 실행됨비즈니스 로직과 분리 어렵고 유지보수 힘듦
EJB엔터프라이즈급 비즈니스 로직 관리트랜잭션, 분산 컴퓨팅 지원설정이 복잡하고 무거움
스프링경량 엔터프라이즈 애플리케이션 프레임워크DI, AOP, 트랜잭션 관리 지원학습 필요, 설정 방식 다양

정리

서블릿은 기본적인 웹 요청을 처리하지만, 직접 사용하기에는 한계가 있다. EJB는 엔터프라이즈 환경에서 강력한 기능을 제공하지만, 복잡성과 무거운 의존성 문제로 인해 점점 사용이 줄어들고 있다. 반면, 스프링은 EJB의 복잡성을 해결하면서도 경량화된 엔터프라이즈 애플리케이션 개발을 지원하는 대안으로 자리 잡았다.
따라서 단순한 웹 애플리케이션이라면 서블릿 기반의 스프링 MVC를, 기업용 대규모 애플리케이션이라면 스프링과 JPA, 스프링 부트 등을 활용하는 것이 일반적인 선택이 된다.

profile
Turning Vision into Reality.

0개의 댓글