Spring
- x-www-form-urlencoded vs application/json
이 둘은 HTTP request 의 header에 실려 있는 content-type의 한 종류다.
HTTP request는 Reqeust Line - HTTP header - Empty Line - Message Body 이렇게 네 파트로 나누어져 있다.
이때 Message Body에 어떤 타입(텍스트, 파일 등등)이 들어갈 것인지를 header에 명시해 줄 수 있는데 Content-Type 필드에 명시해주면 된다.
일단 x-www-form-urlencoded는 전통적인 Content-Type으로 html의 form 태그를 통해 보내주면 이 방식이기 때문에 인기가 많았었다. key1=value1&key2=value2 이런 식으로 넘어온다.
Controller 단에서 api 매핑할 때, annotation을 생략한 경우와 @ModelAttribute를 사용한 경우에 이러한 방식으로 request data를 받는다.
application/json은 현재 가장 많이 쓰이는 Content-Type으로 json 형태로 데이터가 넘어온다.
- @JsonInclude
Json 처리에 유용한 jackson 에서 제공하는 annotation으로 json에서 원하지 않는 값들을 제외할 수 있다.
@JsonInclude(JsonInclude.Include.NON_NULL)
@RequestMapping("JsonInclude.Include.") //넝담~
ALWAYS - 모든 데이터 포함
NON_NULL - null인 데이터를 제외
NON_ABSENT - null이거나 absent인 데이터 제외
NON_EMPTY - null, absent, 빈 자료구조, "" 를 제외
NON_DEFAULT - NON_EMPTY인 경우 + 기본 형이 default(int면 0 boolean이면 true)인 경우 제외
알고리즘
- 프로그래머스 : 배달(Level 2, 다익스트라)
느낀 점
과제 기능 구현은 다 해서 다행이지만 설계 시에 Entity 연관 관계에 대한 고민과 공부를 더 해야한다고 느꼈다. 또한 튜터님마다 프로젝트나 코드짜는 방식이 다 다르신데 이것의 장단점에 대해서도 궁금해진 하루.
'TIL' 카테고리의 다른 글
[23.11.22] (1) | 2023.11.22 |
---|---|
[23.11.21] (0) | 2023.11.21 |
[23.11.17] (0) | 2023.11.17 |
[23.11.16] (0) | 2023.11.16 |
[23.11.15] (3) | 2023.11.15 |