본문 바로가기

spring4

HTTP 메시지 컨버터 HTTP 메시지 컨버터 뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 사용하면 편리하다. 앞선 포스팅에서 Controller 계층에서 HTTP Message body 데이터 조회와 응답에서 모두 HTTP 메시지 컨버터가 실행된다. JSON 포스트도 읽어보면 도움이 된다. JSON 통신의 Serialize & Deserialize 과정 처리를 해주는 기능이라고 생각하면 된다. 스프링 MVC는 다음의 경우에 HTTP 메시지 컨버터를 적용한다 HTTP 요청데이터 읽기: @RequestBody , HttpEntity(RequestEntity) 사용시 실행 HTTP 응답데이터 생성: @Resp.. 2022. 8. 22.
[restAPI] 응답 헤더 다루기 [restAPI] 응답 헤더 다루기 restAPI를 개발하다보면 클라이언트로부터 온 요청에대한 응답을 처리할때 HTTP body에 json 등의 데이터만 담아주는게 아니라 response HTTP header에 다양한 속성을 다뤄주거나 그 응답에 맞는 상태코드들도 함께 내려줘야한다. 상태 코드는 다음에 다루겠다. 오늘은 헤더 컨트롤만! Spring boot는 이런 기능을 손쉽게 할수있도록 여러 기능을 제공한다 ServletHttpResponse 같은건 서블릿이라고 할수도있겠다. Spring boot는 Spring의 기능을 더 간편화 한것이기때문에 Spring에서도 일치한다. 응답 HTTP 헤더를 설정하는 방법 단일 응답에 헤더를 설정하려면 HttpServletResponse 또는 ResponseEntit.. 2022. 1. 20.
왜 JPA를 선택해야하나? 왜 JPA를 선택해야하나? 예전에 학교에서 DB를 공부할때 객체를 어떻게 DB에 반영해야할지 어려워했었는데..JPA라는 좋은 기술을 알게되어 왜 JPA가 등장했는지 JPA가 어떤장점이있는지 정리해보고자한다. SQL에 의존적인 개발의 한계 대부분의 개발은 객체지향으로 이루어진다. DB를 이용하기 위해선 객체를 DB에 넣어서 관리해야한다. 데이터베이스의 세계의 헤게모니는 바로 관계형 DB이다. [MSSQL 등] 객체를 관계형 DB에 저장해서 사용해야한다는 말인데, 문제는 SQL이다. 관계형 DB는 SQL을 통해 동작한다. 결국 자바 객체를 SQL로 바꾸고 SQL을 자바객체로 다시 바꾸는 비효율적인 반복작업이 필요하다. 관계형 DB의 프로시져 같은걸로 어느정도 해결할수도 있겠지만 어쨋든 한번은 작성해야한다는것.. 2022. 1. 5.
Spring 동시요청 처리 서비스를 배포하게 되면 여러 클라이언트에서 서비스를 이용할것이다. 동시 요청을 받게 될텐데 어떻게 해결하는지 알아보자. java spring은 멀티쓰레드를 이용하여 동시요청을 처리한다. 쓰레드는 한번에 하나의 코드라인만 수행한다. 동시처리를 위해서는 쓰레드를 추가하여 멀티쓰레드로 활용해야한다. 멀티 스레드 WAS는 요청시 쓰레드를 할당하여 로직을 수행하여 응답해준다. 만약 쓰래드가 한개라면 할당된 쓰래드의 로직 수행이 지연되면 그사이 들어오는 새로운 요청들은 모두 마비상태가 된다. 쓰래드를 적절히 추가 생성하여 동시요청을 동시처리 하도록 한다. 장점 • 동시 요청을 처리할 수 있다. • 리소스(CPU, 메모리)가 허용할 때 까지 처리가능 • 하나의 쓰레드가 지연 되어도, 나머지 쓰레드는 정상 동작한다. .. 2021. 11. 17.