Weekly Paper

Weekly Paper#5

승주우에요 2026. 2. 2. 09:19

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