본문 바로가기

TIL

[TIL 2022-1-27] 스프링 MVC, 서블릿, 핸들러 어댑터 등 공부

스프링 컨테이너와 서블릿 컨테이너와의 관계

2022.01.27 - [Spring] - 스프링 컨테이너와 서블릿 컨테이너와의 관계

 

스프링 컨테이너와 서블릿 컨테이너와의 관계

서블릿 컨테이너는 서블릿 객체의 생명주기를 관리하고 클라이언트의 HTTP 요청에 따라 맵핑된 서블릿 객체를 찾아 service() 메서드를 실행시킨다. 톰캣은 이러한 서블릿 컨테이너 기능을 포함한

unannn.tistory.com

스프링 컨테이너와 서블릿 컨테이너와의 상호 동작 관계가 어떻게 되는지 헷갈려서 공부하고 정리해봤다. 단순하게 동작 흐름도 정도만 찾아보고 이해하려고 했는데, 스프링부트가 @EnableAutoConfiguration를 통해 빈을 등록하는 흐름 도 같이 이해해볼 수 있어서 매우 재밌었다. 엄청 자세한 부분까지 들어가 보지는 않았지만 앞으로 스프링 부트를 더 많이 사용하고 공부하면서 천천히 추상적으로 이해한 흐름이 구체적으로 어떻게 구현되어 있는지 찬찬히 알아봐야겠다.

 

 

[Spring MVC] DispatcherServlet 의 동작 흐름

2022.01.27 - [Spring] - [Spring MVC] DispatcherServlet 의 동작 흐름

 

[Spring MVC] DispatcherServlet 의 동작 흐름

DispatcherServlet DispatcherServlet은 Spring MVC 에서 프론트 컨트롤러 역할을 하는 서블릿 객체이다. 스프링 부트 어플리케이션을 시작하면 DispatcherServlet 객체를 생성해 서블릿 컨테이너에 등록하고, url..

unannn.tistory.com

어제부터 도저히 이해 안되던 핸들러 어댑터 개념을 생각해보고 전체적인 DipatcherServlet 의 동작 흐름과 이렇게 개발된 이유에 대해 생각해보며 글을 작성했다. 처음엔 진짜 이해안되고 힘들었는데 계속 생각해보고 고민해보고 하니까 점점 이해가되는건지 익숙해지는건지 어제보단 훨씬 가까워진 느낌이든다. 시간이 지나면 까먹기 쉬울 것 같아서 면접전이나 개발할 때 종종 떠올려보고 해야겠다.

 

 

스프링에서 컨트롤러 1개가 동시에 여러 요청을 수행할 수 있는 이유

내가 친구와 같이 책 하나를 펼쳐 놓고 같은 줄을 읽는다고해도 서로 읽는데 지장이 없는 것처럼,  개발된 stateless한 컨트롤러는 바이트코드로 Method Area 영역에 적재되어 JVM의 Execution Engine에 의해 실행되므로, 컨트롤러가 싱글톤 빈으로 등록되는 것과 여러 스레드들이 해당 컨트롤러를 수행하는 것은 상관없다!!

 

 

느낀점

어제 풀었던 문자열 처리 관련 코테문제를 오늘 다시 정규식 제대로 익혀서 풀어보려고 했는데 스프링 공부에 빠져서 못했다,,, 자기 직전까지 이것저것 조합해가면서 split하려고 했으나 내 뜻대로 잘되지 않았다. 아얘 하루 딱 날을 잡고 제대로 한번 익혀봐야겠다. 코데전에!!!

 

그래도 스프링 공부를 하면서 처음으로 이해가 되지않아서 어제오늘 고생했는데 포기하지 않고 끝까지 잡고 생각하고 고민해서 어느정도 정리가 된 것이 매우 뿌듯했다. 나중에 또 까먹게 될 수도 있지만 오늘 공부했던 것을 기반으로 한번 더 공부하면 어렵지 않게 잘 할 수 있을 것 같다. 그냥 대충하고 다음으로 넘어갈까 유혹도 느꼈지만 역씨!!! 안넘어가길 잘했다. 앞으로도 속도에 신경쓰지말고 천천히 확실하게 공부하도록 해야겠다!!!


<참고링크>

https://gowoonsori.com/spring/architecture/

 

[SPSP] Bellman Ford

단일 최단경로를 구하는 알고리즘인 Bellman Ford알고리즘에 대해 정리하고 직접 구현해보는 글

gowoonsori.com

https://velog.io/@jihoson94/Spring-Boot%EB%A5%BC-%EC%82%B4%ED%8E%B4%EB%B3%B4%EC%9E%90-1-.-EnableAutoConfiguration

 

Spring Boot를 살펴보자 1 . @EnableAutoConfiguration

Spring MVC를 맛보고 이어서 실제로는 Spring Boot기반으로 대부분 프로젝트를 진행할 테니 Spring Boot를 한번 정리해보겠습니다.Spring Boot helps you to create stand-alone, production-grade Sprin

velog.io