Achievement Goals
JSON 구조가 재귀 함수를 사용할 수 있는 Tree 구조임을 이해할 수 있다.
JSON.stringify와 JSON.parse가 serialize, deserialize라는 것을 이해할 수 있다.
JSON.stringify와 JSON.parse를 사용하여 자바스크립트 값과 JSON을 넘나들 수 있다.
JSON에 재귀 호출을 사용할 때, 어디에 사용해야 할지 이해할 수 있다.
JavaScript Object Notation의 줄임말로,
데이터 교환을 위해 만들어진 객체 형태의 포맷
만약 메세지를 전송한다고 했을 때, 수신/발신자는 같은 형식의 포맷을 사용하거나 문자열처럼 범용적으로 사용할 수 있는 포맷을 사용해야 한다.
객체는 타입 변환을 이용해 String으로 변환할 경우 객체 내용을 포함하지 않는다. JavaScript에서 객체에 메소드나 형변환을 시도하면
[object, Object]라는 결과를 리턴한다.
이 문제를 해결하기 위해 객체를 JSON 형태로 변환하거나 JSON을 객체의 형태로 변환하는 방법이다.
JSON.stringfy 와 JSON.parse는 서로 반대되는 타입이다.
JSON.stringfy: Object type을 JSON으로 변환
JSON.parse: JSON을 Object type으로 변환
어떠한 객체를 stringfy 하면 typeof는 object가 아닌 string으로 나오는 것을 볼 수 있다.
(생긴 형태는 '' => 문자열만 붙었을 뿐, 그대로 객체형태이다.)
이렇게 stringify 하는 것을 직렬화(serialize) 라고 한다.
그렇다면 직렬화를 통해 문자열 수정이 완료되었다면 이를 다시 객체화시켜야 한다.
이때 쓰는 것은 JSON.parse 이며 역직렬화 라고 한다.