Web Server와 WAS의 차이, SpringBoot Bean 등록 방법

BS8841·2025년 5월 12일

1. Web Server와 WAS의 차이

Web Server

정적인 컨텐츠 제공 (HTML, CSS, JS, Image 등)
ex) Apache HTTP Server 등
특징

  • 요청을 받아 정적 리소스 반환
  • 동적 요청은 WAS로 요청을 프록시처리(forwarding)

WAS(Web Application Server)

동적인 컨텐츠 처리 (Java 코드 실행, DB 연동 등)
ex) Apache Tomcat, Jetty 등
특징

  • 웹 서버 기능, 서블릿/JSP 등의 동적 웹 처리 기능을 포함
  • 비즈니스 로직 처리가 중심

Spring Boot의 내장 Tomcat?

Tomcat은 WAS
따라서 Spring Boot는 내장 Tomcat을 사용해 Application과 WAS를 함께 실행
즉, Spring Boot는 WAS 역할까지 내포한 단독 실행 가능한 애플리케이션을 생성
별도 Web Server 없이도 동작함

2. Spring Boot에서 Bean 등록 방법과 장단점 비교

- @Component 기반 자동 등록

ㄴ 자동 어노테이션 @Component, Service, Repository, Controller

@ComponentScan이 지정된 패키지 이하 클래스들을 자동 탐색해 Bean으로 등록
장점 - 코드가 간결, 명시적일 필요 없음, 유지보수가 용이, 일관된 프로젝트 구조에서 유리
단점 - 자동 등록 범위가 제한적, 명시성이 부족해 설정 흐름 파악이 어려움

- @Configuration, @Bean 수동 등록

장점 - 명확하게 등록 대상과 객체 생성 방법을 지정 가능, 외부 라이브러리나 조건부 Bean 등록에 유용
단점 - 코드가 많아지며 실수로 중복 등록 혹은 누락될 가능성이 있음

- XML 기반 등록

장점 - 설정과 구현을 완전 분리 가능, 레거시 프로젝트와 호환성 있음
단점 - 가독성, 유지보수 불편하며 Spring Boot 이후론 지양하는 방향으로 가고 있음

- 조건부 등록

ㄴ 예시 어노테이션 @ConditionalOnMissingBean, @Profile, @Primary, @Qualifier
특정 환경, 조건에 따라서 Bean을 등록하거나 선택함
장점 - 유연한 설정이 가능, 테스트나 멀티 환경 설정에서 유리
단점 - 설정이 복잡해지고 추적이 어려워짐, 디버깅에 시간 소요

0개의 댓글