본문 바로가기

Spring46

Dto 클래스에서 MultiValueMap로 쉽게 타입 변환하기 모든 코드는 Github에 있습니다 1. 문제 상황 RestTemplate의 exchange 메소드를 이용해 HTTP.GET 호출을 할때면 매번 불편한게 있습니다. 바로 Query string 처리인데요. Request Body로 데이터를 전달하는 HTTP.POST의 경우에는 아래와 같이 간단하게 Dto 인스턴스 그대로 데이터를 전달할 수 있습니다. XssRequestDto2 requestBody = new XssRequestDto2("content", expected); HttpEntity entity = new HttpEntity(requestBody, headers); // Dto 인스턴스를 그대로 HttpEntity 생성자로 주입 (Request Body로 등록된다) ResponseEntity r.. 2020. 2. 23.
Spring Boot에서 JSON API에 XSS Filter 적용하기 일반적인 웹 애플리케이션에서 기본적으로 해야할 보안으로 XSS 방지가 있습니다. 기존에 많이들 알고 계시는 lucy filter의 단점은 이미 오명운 님께서 잘 정리해주셨기 때문에 한번쯤 읽어 보셔도 좋을것 같습니다. homoefficio.github.io - Spring에서 JSON에 XSS 방지 처리 하기 요약하자면, lucy 필터는 form data 전송 방식엔 유효하지만, @RequestBody로 전달되는 JSON 요청은 처리해주지 않는다 정말 친절하게 설명해주셨기 때문에 꼭 읽어보시길 추천드립니다. 다만 WebMvcConfigurerAdapter 가 스프링 부트 버전이 올라가면서 Deprecated가 되었습니다.그래서 다른 방법으로 해결해보겠습니다. 이 방식은 오명운님께서 작성해주신 방법을 응용.. 2019. 12. 29.
@Reuqest Body에서는 Setter가 필요없다? 회사에서 근무하던중 새로오신 신입 개발자분이 저에게 하나의 질문을 했습니다. POST 요청시에 Setter가 필요없는것 같다고. 여태 제가 알던것과는 달라서 어떻게 된 일인지 궁금했습니다. 정말 POST 요청시에는 Setter가 필요없을까요? 그럼 GET 요청시에는 Setter가 필요할까요? 한번 확인해보겠습니다. 모든 코드는 Github에 있으니 참고하세요 1. Post 요청 테스트 첫번째로 POST 요청시 Setter가 필요없는지 먼저 테스트해봅니다. 테스트해볼 RequestDto는 아래와 같습니다. @Getter @ToString @NoArgsConstructor public class RequestSetterDto { private String name; private Long amount; @D.. 2019. 2. 26.
스프링부트로 쇼핑몰 만들기 - 3주차 지난주에 이어 Web 진행 JPA 3-1. exam 프로젝트 까보기 저장소 위치 spring-boot-autoconfigure 밐ㅌ에 있는 spring.factories가 중요함 자동 설정에 관련된 키/값들이 존재함 @RestController @Controller, @ResponseBody로 이루어진 어노테이션 Spring 4.0 부터 지원 Form으로 전송되는 데이터를 받는 방법 @RequestParam @ModelAttribute 전송될 필드가 많으면 `@ModelAttribute로 객체로 받을수 있게 한다. 만약 JSON이 온다면 @RequestBody로 처리한다 문자열을 JSON으로 변환해주는 놈? MessageConverter HttpMessageConvertersAutoConfiguratio.. 2019. 1. 21.
스프링부트로 쇼핑몰 만들기 - 2주차 HTTP 프로토콜 구조 스프링에 대한 웹 프로그래밍 기본 학습 웹 어플리리케이션 구조 2-1. HTTP 요청과 WAS 브라우저에서 요청 정보가 오면 WAS가 이 요청정보를 모아 HttpServletRequest를 만든다. WAS는 이 요청 정보에서 Context Path를 추출해서 특정 웹 어플리케이션을 찾는다 웹 어플리케이션 안에는 다양한 Resource (정적) 와 Servlet 등이 존재 Context Path뒤에 있는 Path를 통해 어떤 Resource 혹은 Servlet이 필요한지를 찾는다 즉, Path를 통해 찾으려면 Resource 혹은 Servlet들은 고유의 Path를 가져야 한다. WAS에는 Default Servlet이 정적 Resource 서빙을 담당 Servlet (서블릿) Ht.. 2019. 1. 15.
스프링부트로 쇼핑몰 만들기 - 1주차 1. 1주차 1주차는 Spring에서 필요한 Java 개념 위주와 Spring 의 기본적인 개념에 관해 진행 상속, 인터페이스, 리플렉션 Spring의 Bean 컨테이너 Spring Boot의 설정 1-1. Intro java Exam03으로 실행하면 class path에서 파일 찾는다 클래스 정보를 읽은 뒤, 메모리에 올라감 클래스 정보를 메모리에 올리는건 시스템 클래스로더가 담당 한번 올라간 정보는 JVM 다시 시작하기 전까지 계속 유지 static 정보는 별도의 메모리에 올림 즉, 이 클래스를 사용해야겠다고 읽어들일때 static 정보가 올라감 static 블럭은 딱 한번만 실행 메소드에 static이 붙은 친구들은 인스턴스 없이도 실행가능 자식 인스턴스 생성시 부모 인스턴스도 생성된다. 자동차라는.. 2019. 1. 6.