Why do we need JSON.stringify and parse?
- JSON.stringify와 JSON.parse는 서버 간 데이터 통신에 필수적인 개념입니다. 🤝
- JavaScript 객체는 메모리 구조가 복잡하여 바이트 스트림으로 직접 전송할 수 없습니다. 🧱
- JSON.stringify는 객체를 JSON 형식의 문자열로 변환하며, 함수나 심볼은 제외됩니다. ✂️
- Date 객체나 RegExp 객체는 JSON.stringify를 거치면 문자열이나 빈 객체로 변환될 수 있습니다. 🪲
- SuperJSON과 같은 라이브러리는 Date나 RegExp와 같은 특수 객체를 올바르게 직렬화/역직렬화하는 데 도움을 줍니다. 🛠️
- JSON.stringify는 Map이나 Set과 같은 자료 구조를 지원하지 않으며, undefined 값은 무시됩니다. 🚫
- 순환 참조가 있는 객체는 JSON.stringify로 직렬화할 수 없습니다. 😵💫
- JSON.stringify의 replacer 함수를 사용하면 직렬화 과정을 커스터마이징할 수 있습니다. 🎨
- 캐싱 전략에서 JSON.stringify와 JSON.parse를 사용하여 데이터베이스 접근을 줄일 수 있습니다. 💾
- SSR hydration 과정에서도 데이터 직렬화/역직렬화가 중요한 역할을 합니다. 💧