분류 전체보기 512

HTTP Message Converter

응답의 경우 클라이언트 HTTP Aceept 헤더와 서버의 Controller 반환 타입 정보를 조합해서 HTTPMessageConverter가 선택된다. HTTP 요청 : @RequestBody, HttpEntity(RequestEntity) HTTP 응답 : @ResponseBody, HttpEntity(ResponseEntity) HTTP Message Converter 인터페이스 해당 클래스, 미디어 타입을 지원하는지 체크 Message Converter를 통해서 메시지를 읽고 쓰는 기능 스프링 부트의 주요 Message Converter ByteArrayHttpMessageConverter : byte[] 데이터를 처리 클래스 타입 : byte[] 미디어 타입 : */* request ex) @..

Spring/Spring MVC 2021.05.11

HTTP Response

정적 리소스, 뷰 템플릿 스프링에서 응답 데이터를 만드는 법은 크게 3가지 정적 리소스 뷰 템플릿 HTTP Message(주로 JSON) 정적 리소스 스프링 부트는 ClassPath의 다음 디렉토리에 있는 정적 리소스를 제공 /static, /public, /resources, /META-INF/resources src/main/resources는 리소스를 보관하는 곳이고, ClassPath의 시작 경로이다. 따라서 리소스를 넣어두면 스프링 부트가 정적 리소르로 서비스를 제공 뷰 템플릿 뷰 템플릿을 거쳐서 HTML이 생성되고, 뷰가 응답을 만들어 전달 HTML을 동적으로 생성하는 용도로 사용하지만, 다른 것들도 가능하다. 뷰 템플릿이 만들 수 있는 것이라면 뭐든지 가능하다. 스프링 부트는 기본 뷰 템플릿..

Spring/Spring MVC 2021.05.10

HTTP Request Message

단순 텍스트 Request Parameter와 다르게, HTTP Message Body를 통해 데이터가 직접 넘어오는 경우는 @RequestParam, @ModelAttribute를 사용할 수 없다. 먼저 단순한 텍스트를 HTTP Message Body에 담아서 전송하고, 이를 InputStream으로 읽어보자. Spring 공식 문서를 참조하면 알 수 있듯이, InputStream과 OutputStream을 직접 받을 수 있다. 따라서 아래와 같이 코드를 작성할 수 있다. 스프링 MVC는 다음 파라미터를 지원한다. HttpEntity : HTTP header, body 정보를 편리하게 조회 메시지 바디 정보를 직접 조회 요청 파라미터를 조회하는 기능과 관계 없음 HttpEntity는 응답에도 사용 가능..

Spring/Spring MVC 2021.05.09

HTTP Request Parameter

HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법에 대해 공부해보자. 클라이언트에서 서버로 요청 데이터를 전달할 때 주로 사용하는 3가지 방법 GET - 쿼리 파라미터 /example?username=son&age=25 메시지 바디없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 검색, 필터, 페이징등에서 많이 사용 POST - HTML Form content-type : application/x-www-form-urlencoded 메시지 바디에 쿼리 파라미터 형식으로 전달 username=son&age=20 회원 가입, 상품 주문, HTML Form 사용 HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용, JSON / XML / TE..

Spring/Spring MVC 2021.05.07

HTTP 요청 - 헤더 정보

애노테이션 기반의 스프링 컨트롤러는 다양한 파리미터를 지원 HTTP 헤더 정보를 조회하는 방법에 대해 공부해보자 이미지가 잘려있지만 headerMap은 모든 헤더 정보가 Map안에 key-value형태로 담겨있다. Locale은 지역의 언어, 국가 등의 정보를 갖고 있는 객체 헤더 정보 중 host라는 키 값으로 value를 가져옴(특정 헤더 조회) required 속성을 통해 필수 값 여부를 설정 @CookieValue 또한 required 속성을 통해 필수 값 여부 설정 가능 MultiValueMap은 Map과 유사하지만 하나의 키의 여러 값을 받을 수 있다. HTTP header, HTTP Query Parameter와 같이 하나의 키에 여러 값을 받을 때 사용 get을 통해 값을 꺼내면 해당 키에..

Spring/Spring MVC 2021.05.07

[LeetCode] Array > Two Sum

leetcode.com/explore/interview/card/top-interview-questions-easy/92/array/546/ Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com 풀이 2중 for문을 통해 Brute-Force를 진행하면 해결할 수 있지만, 이를 조금 개선하여 해결 배열 내 x, y의 합이 target이 되려면 x를 기준으로 ..

[LeetCode] Array > Plus One

https://leetcode.com/explore/interview/card/top-interview-questions-easy/92/array/559/ Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com 풀이 deque라이브러리를 사용하여 큐를 만들고 각 자릿수가 10을 넘으면 다음 자릿수를 추가하거나 한자리 올려주는 식으로 하려고 하다가, 그냥 단순 ..

요청 매핑

@RequestMapping은 위와 같이 다중 값 설정이 가능하다. /hello-basic과 /hello-basic/은 다른 URL이지만, 스프링은 이를 같은 요청으로 매핑한다. 또한 앞서 공부했듯이 method 속성으로 HTTP 메서드를 지정하지 않으면 HTTP 메서드와 무관하게 모두 호출된다. 이는 method 속성에서 HTTP 메서드를 지정해주는 방식으로 해결할 수 있다. 더 편리하게 제공되는 GetMapping 애노테이션으로 더욱 직관적으로 나타낼 수 있음. PathVariable(경로 변수) 위와 같이 변수를 사용하여 매핑시키고 들어온 변수를 PathVariable을 통해 꺼낼 수 있다. 최근 HTTP API는 다음과 같이 리소스 경로에 식별자를 넣는 스타일을 선호 /mapping/userA /..

Spring/Spring MVC 2021.05.06
반응형