데이터 객체를 저장 매체에 저장할 수 있는 형식
OR
네트워크를 통해 전송할 수 있는 것으로 변환하는 것
저장된 데이터를 읽거나 네트워크 통신으로부터 받은 데이터를 다시 객체로 변환하는 것

프로그래밍 언어에서 데이터를 다룰 때 메모리 구조는 크게 두 가지로 나뉜다.
- 값 형식 데이터 (Primitive Type)
int,float,char등의 기본 데이터 타입- Stack 메모리에 저장되며 직접 접근 가능
- 참조 형식 데이터 (Reference Type)
객체(Object)와 같은 참조형 데이터- Heap 메모리에 저장되고, Stack 영역에서 이 Heap 메모리를 참조하는 방식
직렬화가 필요한 이유는 참조 형식 데이터를 직접 저장하거나 전송할 수 없기 때문!
프로그램이 종료되면 Heap 메모리에 있던 객체가 사라지므로, 객체의 주소값(메모리 위치)만 저장하면 의미가 없다.
직렬화를 통해 객체 데이터를 값 형식으로 변환해야 영구 저장하거나 다른 환경에서 활용할 수 있다.
JSON, YAML 등.Serializable, Protobuf, MessagePack 등.클라이언트와 서버간의 HTTP 통신을 위한 텍스트 데이터 포맷
주로 API의 반환형태, 시스템을 구성하는 설정파일(package.json)에 활용
객체를 JSON포맷의 문자열로 변환하는 기술
클라이언트가 서버로 객체를 전송하기위해 객체를 문자열(JSON)화해야 할 때 사용
const user = {
name: "Alice",
age: 25,
isAdmin: true
};
// 객체 → JSON 문자열 (직렬화)
const jsonString = JSON.stringify(user);
console.log(jsonString);
// 출력: {"name":"Alice","age":25,"isAdmin":true}
JSON포맷의 문자열을 객체로 변환하는 기술
백엔드 서버로부터 클라이언트에게 전송된 JSON데이터를 JS에서 객체로 사용하기 위해 사용
const user = {
name: "Alice",
age: 25,
isAdmin: true
};
// JSON 문자열 → 객체 (역직렬화)
const parsedObject = JSON.parse(jsonString);
console.log(parsedObject);
// 출력: { name: 'Alice', age: 25, isAdmin: true }
마크업 형태를 쓰는 데이터 교환형식
주로 sitemap.xml이나 JSON처럼 데이터교환형식으로 쓰임
<XML 예시>

🤔 sitemap.xml이란?
sitemap.xml은 서비스 내의 모든 페이지들을 리스트업한 데이터이다.
검색 엔진 크롤링 로봇에게 웹 사이트에서 크롤링 해야 할 URL 을 전달한다. 각 URL과 추가 정보로서 이 URL 콘텐츠의 최종 업데이트 시점 및 업데이트 빈도, 그리고 다른 URL 대비 상대적인 중요도 정보를 여기에 담을 수 있다. 사이트 맵을 지원하는 검색 엔진은 이 정보를 사용하여 웹 사이트 크롤링을 보다 효율적으로 할 수 있게된다.
~~ 한마디로 SEO(검색엔진) 최적화 ~~
JSON과 비교했을 때 닫힌 태그가 계속해서 들어가기 때문에 JSON과 비교하면 무겁다.
또한 Javascript 객체로 변환하기 위해서 JSON보다 더 많은 노력이 필요하다.
(JSON은 JSON.parse() 면 됌)