1. 웹 서버와 WAS의 기본 개념
- 웹 서버 : 클라이언트로부터 HTTP 요청을 받아 정적인 콘텐츠를 제공하는 서버
- 처리 대상 : HTML, CSS, 이미지 등
- 역할 : HTTP 요청 수신, 정적 파일 응답
- 예시 : Nginx, Apache HTTP Server
- 특징 : 비즈니스 로직 처리 X, DB 접근 X, 빠르고 가벼움
---------------------------------------------------------------------------------
- WAS : 동적 요청을 처리하는 애플리케이션 실행 환경
- 처리 대상 : 사용자 요청에 따라 로직 실행 결과를 생성
- 역할 : 비즈니스 로직 수행, DB 연동, 트랜잭션, 보안, 세션 관리
- 예시 : Tomcat, Jetty, JBoss, WebLogic
- 특징 : Servlet/ JSP 실행 가능, Spring 같은 프레임워크 실행 환경 제공
Spring Boot의 내장 톰캣
- 톰캣은 WAS의 한 종류이다 / JAR 실행 -> 내장 톰캣 자동 실행
- 기본적으로 톰캣을 내장 서버로 제공
- 별도의 톰캣 설치 없이 애플리케이션을 실행할 수 있다
- 개발 환경과 테스트에 매우 편리
2. Spring Boot의 Bean 등록 방식 비교
Bean : Spring 컨테이너가 생명주기 관리를 담당하는 객체이다
1) @Component 계열 애노테이션
- @Component
- @Service
- @Repository
- @Controller / @RestController
특징
- 컴포넌트 스캔 기반 자동 등록
- 코드 간결, 레이어 구조 표현 명확
- 외부 클래스에는 사용 불가
- 생성 로직 제어 어려움
2) @Configuration + @Bean
@Configuration
public class AppConfig {
@Bean
public UserService userService() {
return new UserService();
}
}
특징
- 명시적 Bean 등록
- 객체 생성 과정을 직접 제어
- 외부 라이브러리 Bean 등록 가능
- 조건 분기, 파라미터 주입 가능
- 테스트/환경 분리 유리
Bean 등록 시 고려사항
- 애플리케이션 규모와 복잡도
- 팀의 개발 문화와 컨벤션
- 유지보수성, 확장성
권장 사항
- 개발자가 직접 작성한 클래스는 @Component 사용
- 외부 라이브러리나 복잡한 생성 로직의 경우 2번 사용
- 등록한 타입의 여러 Bean을 등록할 때는 2번 사용
'Weekly Paper' 카테고리의 다른 글
| Weekly Paper #9 (0) | 2026.03.23 |
|---|---|
| Weekly Paper #7 (0) | 2026.02.27 |
| Weekly Paper #6 (0) | 2026.02.09 |
| Weekly Paper#3 (0) | 2026.01.19 |
| Weekly Paper#2 (0) | 2026.01.12 |