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

+ Recent posts