김찬진의 개발 블로그

개념들이 헷갈려 위 개념들을 포함한 스토리를 만들어서 메커니즘을 정리해보았습니다. 1. 클라이언트의 요청이 들어오면 DispatcherServlet이 요청을 수신합니다. 2. DispatcherServlet은 HandlerMapping에게 요청을 전달하여 적절한 handler(=controller)를 찾습니다. 3. HandlerMapping은 요청을 기반으로 적절한 handler(=controller)를 찾아 반환합니다. 4. DispatcherServlet은 반환된 handler(=controller)를 실행할 수 있는 적절한 HandlerAdapter에게 전달합니다. 스프링은 HandlerAdapter 인터페이스를 구현한 다양한 클래스들을 갖고 있습니다. 예를 들어 만약 @RequestMapping..
영한님이 정리해주신 성스러운 글이다. 꼭꼭 씹어먹자 서블릿 객체와 서블릿 내장 객체는 다른 것입니다. 이 두 개념을 이해하기 위해 각각을 설명하겠습니다. 서블릿 객체: 서블릿 객체는 웹 애플리케이션을 구성하는 하나의 구성 요소로, 클라이언트의 요청을 처리하고 응답을 반환하는 역할을 합니다. 서블릿 객체는 보통 싱글톤 패턴으로 구현되어, 웹 애플리케이션에서 단 하나의 인스턴스만 존재하며 요청이 들어올 때마다 재사용됩니다. 이러한 구조로 인해 메모리 효율성과 성능이 향상됩니다. 서블릿 내장 객체: 서블릿 내장 객체는 서블릿이 처리하는 요청과 응답과 관련된 정보와 기능을 제공하는 객체입니다. request와 response 객체는 이러한 내장 객체의 예입니다. 요청이 발생할 때마다 새로 생성되며, 서블릿 내부..
스프링부트는 내장톰캣서버가 있다 내장톰캣서버에는 WAS, 서블릿 컨테이너를 가지고 있다 내장톰캣서버는 서블릿 컨테이너에 서블릿 객체 (EX) MemberSaveServlet 등)를 싱글톤으로 생성한다 클라이언트가 요청을 보내면(EX) a 태그 누르기 등) 웹브라우저가 HTTP Request Message를 내장톰캣서버에게 보낸다 내장톰캣서버의 WAS는 그 HTTP Request Message를 읽고 HttPServletRequest객체와 HttPServletResponse객체를 매번 새롭게 만든다 내장톰캣서버는 HttPServletRequest객체와 HttPServletResponse객체를 서블릿 객체에게 넘겨준다 서블릿 객체가 호출되면 객체의 service 메서드가 호출된다 service 메서드는 Ht..
원래 내 의도는 MyLogger 객체를 request scope bean객체로 사용하는 것이었다. 하지만 MyLogger 프록시 객체는 singleton scope bean객체로 만들어진다. 즉, 나의 원래 의도는 MyLogger 객체를 HTTP request객체가 들어오고 HTTP response객체로 나가는 동안 해당 HTTP request객체를 보낸 client에게는 동일한 requset scope bean객체를 조회할 수 있도록 하는 것이었다. 하지만 MyLogger 프록시 객체는 MyLogger를 상속받아 singleton방식으로 만들어졌고 singleton scope bean객체가 되기 때문에 원래 의도였던 request scope bean객체로서 사용할 수 없게 된다. 대신 MyLogger ..