김지팡의 저장소
728x90

 

🧑‍💻

이번에 Spring Boot 공부를 시작했다. 해당 Spring 진영에 요청이 들어왔을 때 프레임워크 내부에서 어떻게 동작하는지 궁금해 알아보고 이해한 대로 정리해보고자 한다.

 

 

📚Spring Framework & Spring Boot

 

이에 대해 이야기하기 전, Spring Framework와 Spring Boot의 차이를 간략하게 이야기하겠다.

 

Spring Framework는 Java 기반 웹 프레임워크이고, Spring Framework위에 구축된 Spring Boot는 Spring Framework에는 없는 개발에 필요한 초기 설정이나 Spring Framework와는 다르게 내장 웹 서버가 있어 더 빠르게 개발 및 테스트가 가능한 것이라 보면 된다.

 

 

📚 내장 웹 서버가 있으면 왜 개발 및 테스트가 빠를까?

 

Spring Boot에는 기본적으로 tomcat이라는 내장 웹 서버를 포함하고 있다고 한다. 이 밖에도 Jetty, Undertow 등 내장 웹 서버가 존재하지만 이에 대해서는 언급하지 않고, 내장 웹 서버가 있으면 무엇이 왜 좋은지에 대해서만 이야기해 보겠다.

 

내장 서버가 있기 때문에 다른 설정을 하지 않아도 개발 중인 웹앱을 실행시켜 구현한 기능이 올바르게 동작하는지를 테스트할 수 있기에 여러 설정을 위한 리소스에 시간을 쏟지 않아도 된다는 것이다. 때문에, 개발 및 테스트가 빠르고 용이한 것이다.

 

 

📚 클라이언트로부터 요청이 왔을 때 Spring Framework는 어떤 동작을 할까?

 

  1. 처음 클라이언트에서 Spring Boot로 구축한 서버로 요청이 오면 내장 웹 서버인 tomcat이 클라이언트의 요청을 수신한다.
  2. 이러한 요청을 웹 서버가 Dispatcher Servlet에 전달을 하면, Dispatcher Servlet은 해당 요청을 수행하기 위해 요청에 알맞은 Controller를 확인하는데, 이를 위해 Handler Mapping을 조회하여 알맞은 컨트롤러를 호출한다.
  3. 호출된 Controller 내에 정의된 비즈니스 로직을 수행하고, 클라이언트에게 응답을 보내준다.

 

 

🧑‍💻 위의 내용은 어떤 요청인지에 따라 Repository를 통해 DB와 데이터를 주고받는 등 상세한 내용이 달라지기는 하지만 클라이언트로부터 요청이 오고 Dispatcher Servelet이 Handler Mapping을 조회하여 Controller를 매핑하고, Controller 내에 정의된 비즈니스 로직을 수행하는 프로세스는 동일하다.

728x90

'Spring Boot' 카테고리의 다른 글

Dirty Checking(변경 감지)  (0) 2024.06.11
벌크성 수정 쿼리를 보낼 때 주의해야 할 점  (0) 2024.06.11
[Spring framework] - Bean이란 무엇인가?  (0) 2024.06.02
@Transactional  (0) 2024.05.31
profile

김지팡의 저장소

@김지팡

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!