인프런) 토비의 스프링 부트 - 이해와 원리 학습 Day1
본문 바로가기
Backend/Spring Boot

인프런) 토비의 스프링 부트 - 이해와 원리 학습 Day1

by 코딩하는 핑가 2025. 5. 12.
반응형

* 본 포스팅을 무단 복제하시거나 배포하지 마시기 바랍니다.

( 게시글 최상단에 본 블로그 출처를 밝히시면 포스팅은 가능합니다. )

* 필요한 부분만 학습 후 정리했습니다.


주제) Containerless 웹 애플리케이션 아키텍처

키워드) 컨테이너, 컨테이너리스

 

1. 전통적인 웹 아키텍처 개념

웹 프로그램 개발 의미

- 서버에서 동작하는 웹 컴포넌트(회원가입, 조회, 주문 등)를 만드는 일

- 이 컴포넌트들은 웹 컨테이너 안에 있어야 동작함

 

웹 컨테이너의 주요 역할

- 생명주기 관리: 웹 컴포넌트를 메모리에 올리고, 인스턴스를 생성 및 유지 관리

- 요청 매핑: 클라이언트 요청을 어떤 컴포넌트가 처리할지 결정
→ 스프링에서는 이것을 핸들러 매핑이라 부름

 

자바 용어로 해석하면

웹 컴포넌트 = 서블릿

웹 컨테이너 = 서블릿 컨테이너 (예: Tomcat)

 

2. 전통 구조의 한계

- web.xml 설정 필요

- 서블릿 컨테이너 구성/배포/실행 절차가 복잡

- 컨테이너 종류에 따라 환경 설정이 다름 → 학습 부담 증가

- 애플리케이션을 실행하려면 항상 별도의 서버에 배포 필요

 

3. 스프링 프레임워크 등장

- 스프링은 서블릿 컨테이너를 대체하지 않고 그 뒤에서 동작

- 서블릿이 들어온 요청을 → 스프링 컨테이너로 넘겨주고→ 스프링 컨테이너 내의 빈(Bean) 중 하나가 처리

 

즉,

실제 애플리케이션 로직은 스프링 컨테이너 내에서 수행

하지만 자바 표준상 서블릿은 반드시 존재해야하므로 서블릿 컨테이너는 여전히 필요

 

4. Containerless 개념 (Spring Boot 방식)

 

변화 포인트

- 더 이상 web.xml 작성 필요 없음

- 스프링 부트 메인 클래스 실행만으로 애플리케이션이 실행됨

- 내부적으로 내장 톰캣(Embedded Tomcat)을 실행시켜 자동으로 컨테이너 구성

 

핵심 이점

- 서버를 직접 띄우지 않아도 됨 (개발환경에서 바로 실행 가능)

- 톰캣 설정, 서블릿 등록 등을 자동화

- 개발자 생산성 향상, 설정 부담 감소 → "컨테이너리스(Containerless)" 아키텍처

요약

구분 전통 방식 스프링 부트 ( 컨테이너리스 )
서블릿 설정 직접 작성 (web.xml) 자동 등록 (@SpringBootApplication)
서버 실행 외부 WAS 필요 내장 톰캣 자동 실행
컴포넌트 매핑 수동 설정 스프링 핸들러 자동 처리
개발 흐름 설정 > 배포 > 실행 코드 작성 > 바로 실행
학습 곡선 비교적 가파름 설정 부담 낮음

 

 

 

 

 

 

 

반응형

댓글