-
20221228 TIL Set을 http request, response body에 넣는 방법TIL 2022. 12. 28. 10:44
내가 작업하고 있는 포트폴리오에서 '태그' 가 있는데,
태그들끼리 겹치지 않도록 하기 위해 Set을 이용하고 있다.
프론트 단은 구현을 마쳤고, API를 구현해서 저장을 해야하는데,
그런데 글과 함께 태그를 저장하기 위해 http 요청을 할 때 Set을 어떻게 넘겨주면 좋을까 고민을 시작하게 되었다.
JSON 형태로 body에 넣어서 보내줄 것이기 때문에 JSON으로 직렬화를 해야겠다는 생각이 들었고,
JSON.stringify()를 이용해서 Set을 직렬화를 해보았다.
그런데... 값이 나오지 않았다.
MDN에서 찾아보니 JSON.stringify는 enumerable own properties들에 적용이 되기 때문에
Map, Set등은 '{}'로 직렬화된다는 것을 찾을 수 있었다.
그렇다면 Map이나 Set은 어떻게 보내면 좋을까?
Set은 spread연산자를 이용해서 배열로 변환한 후 직렬화해서 보내면 된다.
Map은 객체로 변환한 후 직렬화해서 보내면 된다.
잘 나오는 것을 확인할 수 있다!
그렇다면 백엔드는 어떨까?
백엔드 Jackson라이브러리도 Set을 배열 형태로 변환하는 것을 확인할 수 있다.
예상과 다른 결과가 나올 때는 항상 그 이유를 공식 문서에서 찾아보는 습관을 들이면 좋을 것 같다!
'TIL' 카테고리의 다른 글
20230102 TIL 작성자인지에 따라 다른 UI를 보여주기 (0) 2023.01.02 20221229 TIL optional한 dto의 값을 어떻게 하면 좋을까? (0) 2022.12.29 20221227 TIL 레버리지를 땡겨보자 (0) 2022.12.27 20221226 TIL 핵심 기능부터 작업을 해야한다 (0) 2022.12.26 20221225 TIL 외부 API 걸음마 떼기 (feat. github 소셜 로그인) (0) 2022.12.25