JAVA

Spring Web Application 구동 과정, 이것만 알면 당신도 Spring 마스터!

wooyit 2024. 12. 3. 12:23

안녕하세요! 웹 개발을 공부하는 여러분, Spring Web Application의 구동 과정이 궁금하셨나요?

복잡해 보이는 Spring의 내부 동작, 사실 알고 보면 어렵지 않습니다. 이 글에서는 Spring Web Application이 실행되는 순간부터 웹 페이지가 사용자에게 전달되기까지, 10단계의 여정을 알기 쉽게 설명해 드리겠습니다.

## 🌱 Spring Web Application 구동, 그 시작은 web.xml부터!

모든 여정은 `web.xml` 파일의 로드로부터 시작됩니다. 이 파일은 웹 앱의 모든 설정을 담고 있는 청사진과도 같죠. 서버가 가동되면 가장 먼저 이 파일을 읽어들입니다.

## 🔧 ContextLoaderListener, 스프링 컨테이너의 시동을 걸다

`web.xml`에 등록된 `ContextLoaderListener`는 스프링의 핵심인 `ApplicationContext`를 생성합니다. 이것이 바로 스프링 컨테이너의 시작이에요. 컨테이너는 객체(Bean)들의 생명주기를 관리하는 일종의 '관리자'랍니다.

## 📜 root-context.xml로 전체 설정을 묶다

`ContextLoaderListener`는 `root-context.xml`도 읽어들이는데요. 이 파일에는 전체 앱에 대한 스프링 설정이 담겨 있습니다. 이를 통해 필요한 객체들(DAO, VO, Service 등)이 자동 생성되죠.

## 🌐 HTTP Request의 처리, 본격적인 서비스의 시작

사용자가 URL을 입력하면 HTTP Request가 서블릿 컨테이너에 전달됩니다. 이때 `HttpServletRequest`, `HttpServletResponse` 객체가 생성되는데요. 이들은 사용자 요청과 응답을 처리하는 데 핵심적인 역할을 합니다.

## 🗺️ 요청 URL과 서블릿의 매핑

서블릿 컨테이너는 `web.xml`을 참조해 요청 URL과 매핑되는 서블릿을 찾아냅니다. 마치 길 안내를 해주는 내비게이션 같은 역할이죠.

## 🔩 servlet-context.xml로 개별 설정을 더하다

매핑된 서블릿은 `servlet-context.xml`을 로드합니다. 이 파일에는 해당 서블릿만을 위한 스프링 설정이 들어있어요.

## 🎬 서블릿의 service 메소드 호출과 로직 수행

이제 서블릿의 `service` 메소드가 호출됩니다. GET, POST 등 요청 방식에 따라 `doGet()`, `doPost()` 등으로 분기되어 필요한 로직을 수행하죠.

## 🌈 동적 페이지 생성과 응답 전송

로직 수행 결과를 바탕으로 동적 페이지가 생성됩니다. 이 결과는 `HttpServletResponse` 객체에 담겨 사용자의 브라우저로 전송되는데요. 우리가 보는 웹 페이지의 실체가 바로 이것이랍니다!

## 🔚 요청 처리의 종료, 그리고 반복

응답이 완료되면 `HttpServletRequest`, `HttpServletResponse` 객체는 소멸되고, 이 과정은 매 요청마다 반복됩니다. 마치 출퇴근을 반복하는 직장인처럼 말이죠.

이렇게 Spring Web Application의 구동 과정을 10단계로 압축해 보았는데요. 각 단계를 이해하고 나면 Spring이 왜 강력한 웹 프레임워크인지 깨달을 수 있을 거예요.

Spring을 사용하면 이런 복잡한 과정들이 추상화되고 단순화되기 때문에, 개발자는 핵심 비즈니스 로직에만 집중할 수 있습니다. 마치 보이지 않는 곳에서 열심히 일하는 스태프들이 있는 것처럼 말이죠.

궁금하신 점이 더 있다면 아래 링크를 클릭해 보세요!

 

 

Spring Web Application은 어떻게 구동될까? 10단계로 알아보는 전체 프로세스 • WOOYIT 테크 블로그

안녕하세요! 오늘은 Java 웹 개발의 핵심이라 할 수 있는 Spring Web Application의 구동 과정에 대해 자세히 살펴보려고 합니다.

www.wooyit.com