개발/활동

코드잇 백엔드 스프린트 - 7주차 위클리-페이퍼 WAS

나무개발자 2025. 3. 24. 09:05
반응형

✏️ 웹 서버 vs WAS 그리고 Spring Boot의 내장 톰캣은?

1. 웹 서버(Web Server)란?

  • 정적인 리소스(HTML, CSS, JS, 이미지 등)를 클라이언트에게 제공
  • 클라이언트의 요청(Request)을 받아서, 파일 그대로 응답(Response)
  • 대표적인 웹 서버: Apache HTTP Server, Nginx

2. WAS(Web Application Server)란?

  • 동적인 로직을 처리하는 서버
  • Java Servlet, JSP 등 웹 애플리케이션을 실행시켜 결과를 생성
  • 데이터베이스 연동, 세션 관리, 비즈니스 로직 수행
  • 대표적인 WAS: Tomcat, Jetty, WildFly

3. 웹 서버와 WAS의 차이

항목 웹 서버 WAS
처리 대상 정적 리소스 동적 로직
사용 목적 HTML, CSS 등 파일 전달 비즈니스 로직 처리
예시 Nginx, Apache Tomcat, JBoss

4. Spring Boot의 내장 톰캣은?

Spring Boot는 내장 톰캣을 사용하여 애플리케이션을 실행합니다.
톰캣은 JSP와 Servlet을 처리할 수 있는 WAS이기 때문에, Spring Boot의 내장 톰캣은 WAS에 해당합니다.

즉, Spring Boot 애플리케이션은 별도 WAS 없이 실행 가능하며, 동적인 웹 서비스 제공이 가능합니다.


✏️ Spring Boot의 Bean 등록 방법과 비교

1. @Component 계열 애노테이션

  • @Component, @Service, @Repository, @Controller
  • 컴포넌트 스캔을 통해 자동으로 Bean 등록
@Service
public class MyService { }

장점: 코드가 간결하고, 자동 구성에 용이
단점: 복잡한 의존성 주입이 필요한 경우 관리 어려움


2. @Bean을 이용한 수동 등록

  • @Configuration 클래스 안에서 메서드로 직접 등록
@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

장점: 외부 라이브러리, 동적으로 생성되는 객체에 유용
단점: 설정 클래스가 많아질 수 있음


3. XML 기반 등록 (과거 방식)

<bean id="myService" class="com.example.MyServiceImpl"/>

장점: 명시적 설정, Spring 2.x 시절에는 주요 방식
단점: 가독성 떨어짐, 현재는 거의 사용되지 않음


✅ 정리

방법 자동/수동 장점 단점
@Component 계열 자동 간편한 자동 구성 복잡한 로직에는 부적절
@Bean 수동 세밀한 제어 가능 설정 코드 작성 필요
XML 설정 수동 명시적이고 분리된 설정 복잡하고 최신 스타일 아님
반응형