ThreadLocal를 이용한 로그 추적 (feat. 동시성 이슈)
·
Back-end/Java
요구사항[f8477cfc] OrderController.request()[f8477cfc] |-->OrderService.orderItem()[f8477cfc] | |-->OrderRepository.save()[f8477cfc] | |서비스를 운영하면서 로그를 추적하기 위한 프로그램을 작성한다고 해보자.HTTP 요청의 흐름대로 Controller, Service, Repository에서의 실행시간과 각각의 깊이를 나타내려면 어떻게 해야 할까?가장 단순하게 생각해 보면 파라미터를 통해 넘겨주는 방법을 고려해 볼 수 있다.이를 위해선 Controller에서 요청이 시작되면 해당 요청의 id 값과 깊이를 Service와 Repository에 넘겨주면 된다.해결법파라미터를 통해 HTTP 요청 id값 전달하기위..
[Spring] Dispatcher-Servlet 알아보기
·
Back-end/Spring
Servlet 란?디스패처 서블릿을 알아보기 전에 서블릿이 무엇인지 알아보자.서블릿이란 Java에서 웹 요청을 처리하고 응답을 생성하는 서버 측 프로그램이다.웹 서버(Tomcat 등)에서 동작하며, 클라이언트(웹 브라우저)로부터 요청을 받아 HTML,JSON 등의 응답을 생성하여 반환하는 역할을 한다.Dispatcher-Servlet이란?Spring MVC에서 클라이언트의 모든 요청을 받아 적절한 컨트롤러로 전달하고는 프론트 컨트롤러(Front Controller)이다.여기서 프론트 컨트롤러란 주로 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리해 주는컨트롤러로서 , MVC 구조에서 함께 사용되는 디자인 패턴이다.Dispatcher-Servlet의 장점과거에는 모든 서..