최근 MockMvc 기반으로 컨트롤러 단의 테스트 코드를 작성하다가 핸들러가 호출되지 않는 문제를 마주했고 이를 해결하기 위해 컨트롤러까지 요청이 들어오기까지 어떤 과정을 거치는지 알아야 할 필요성을 느껴 포스팅을 준비했다. 서블릿이란 과거에는 거의 동적인 컨텐츠만 다루는 웹 시스템이었으나 동적인 컨텐츠를 다루면서 웹 서버에 프로그램을 붙여 동적인 페이지를 제공하도록 변화했다. 그래서 등장한 것이 서블릿과 WAS이고 서블릿은 자바 Interface로 정의된 명세사항(specification)이다. (servlet은 javax 패키지에 정의된, 자바에서 정의한 스펙 사항이며 다른 플랫폼에서는 사용되지 않는다) 서블릿의 스펙사항을 기반으로 만들어진, 서블릿을 관리하는 서블릿 컨테이너가 WAS에서 구동된다. ..
Dispatcher Servlet 등장 배경 요청 메시지를 파싱하고 분석하고 이에 대한 응답 메시지 또는 파일 등을 만드는 작업 등을 매번 웹 개발자가 컨트롤 하는 것이 매번 서블릿을 만들때마다 중복해서 할 수밖에 없었다. 그래서 이런 작업을 통합적으로 해주는 것이 필요했고 필요할 때 마다 템플릿화 시켜서 변경이 필요한 부분에만 변경을 해주고 어떤 서비스를 호출하고 어떻게 처리할 지를 정하는 것을 '분리'해야 한다는 필요성에 의해 등장했다. Front Controller Pattern 중앙 집중형 컨트롤러를 가장 앞단에 두는 방식이다. 스프링은 Dispatcher Servlet을 제공하는데, 이는 Front Controller Pattern이 적용된 결과이다. 여러개의 서블릿을 둘 수도 있지만 스프링에서..
- Total
- Today
- Yesterday
- docker
- helm
- Controller
- LFCS
- 카프카
- CICD
- Stream
- jvm
- rolling update
- Linux
- 쿠버네티스
- 컨트롤러
- go
- kafka
- ubuntu
- GitOps
- ci/cd
- 코틀린
- spring
- golang
- db
- K8s
- RDB
- Non-Blocking
- Java
- Kubernetes
- github actions
- argocd
- 우분투
- container
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |