스프링7 HTTP 메시지 컨버터 동작 오류(feat.HTTP 메시지 컨버터 동작 원리) 문제발생 //컨트롤러 @PostMapping("/apply") public void apply(@RequestBody Long postId, HttpServletRequest request) { ... } //보낸 json 요청 { "postId": 1 } 다음과 같은 환경에서 아래와 같은 오류가 발생했다. resolved [org.springframework.http.converter.httpmessagenotreadableexception: json parse error: cannot deserialize value of type `java.lang.long` from object value (token `jsontoken.start_object`); nested exception is com.fas.. 2022. 2. 15. [스프링 AOP 동작 원리] 빈 후처리기(feat.스프링이 제공하는 빈 후처리기) [스프링 AOP 동작 원리] 빈 후처리기(feat.스프링이 제공하는 빈 후처리기) 간단하게 표현해서 빈 등록과정을 조작하는 것이다. 이것은 스프링 빈 객체를 조작하거나 심지어 다른 객체로 바꾸어 버릴 수 있을 정도로 막강하다 이 말은 스프링 빈 객체를 프록시로 교체하는 것도 가능하다는 뜻이다 스프링이 제공하는 BeanPostProcessor 인터페이스를 구현해서 만든다. 빈 후처리기를 사용하려면 BeanPostProcessor 인터페이스를 구현하고, 스프링 빈으로 등록하면 된다. postProcessBeforeInitialization: 객체 생성 이후에 @PostConstruct 같은 초기화가 발생하기 전에 호출되는 포스트 프로세서이다. postProcessAfterInitialization: 객체 생.. 2022. 2. 10. [스프링 AOP 동작 원리] 프록시 팩토리 [스프링 AOP 동작 원리] 프록시 팩토리 개발자가 일일이 인터페이스가 있는 경우에는 JDK 동적 프록시를 적용하고, 그렇지 않은 경우에는 CGLIB를 적용해야 했던 문제를 해결하고 프록시팩토리 하나로 편리하게 동적 프록시를 생성할 수 있다. JDK 동적 프록시를 사용할때 정의해야하는 InvocationHandler 와 CGLIB의 MethodInterceptor를 각각 중복으로 따로 정의해야 할까? 스프링은 이 문제를 해결하기 위해 부가 기능을 적용할 때 Advice 라는 새로운 개념을 도입했다. 개발자는 Advice 만 만들면 된다. InvocationHandler 나 MethodInterceptor 는 이 Advice 를 호출하게 된다. 또한, Pointcut이라는 개념을 도입해서 특정 조건에서만 .. 2022. 2. 10. 스프링으로 서블릿(Servlet)을 다룬다는 것 스프링으로 서블릿(Servlet)을 다룬다는 것 [10분 테코톡] 🐶 코기의 Servlet vs Spring - YouTube 글을 시작하기 앞서 해당 영상을 꼭 들어보자. 목차 개요 서블릿의 등장 서블릿 컨테이너 JSP 초기 MVC 스프링으로 서블릿을 다룬다는 것 프론트 컨트롤러 스프링의 MVC 개요 웹 서버는 다양한 Http 요청(Request)과 응답(Response) 외에도 네트워크 연결 등 많은 규칙과 처리해야하는 로직들이 존재한다. 서버가 처리해야하는 업무 #network • 서버 TCP/IP 연결 대기, 소켓 연결 ↓ #Request Http • HTTP 요청 메시지를 파싱해서 읽기 • POST 방식, /save URL 인지 • Content-Type 확인 • HTTP 메시지 바디 내용 .. 2022. 1. 3. 이전 1 2 다음