개발/활동
코드잇 백엔드 스프린트 - 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 설정 | 수동 | 명시적이고 분리된 설정 | 복잡하고 최신 스타일 아님 |
반응형