직렬화란, 데이터 구조나 객체의 상태를 일정한 형식(예: 문자열, 이진 데이터 등)으로 변환하는 과정을 의미합니다. 이를 통해 데이터를 파일이나 메모리 버퍼 등에 저장하거나 네트워크를 통해 전송할 수 있으며, 나중에 원래 상태로 복원(역직렬화)할 수 있습니다.
저장 및 전송:
역직렬화:
예시 (JavaScript):
const obj = { name: "Alice", age: 30 };
const jsonString = JSON.stringify(obj); // 직렬화: 객체를 문자열로 변환
console.log(jsonString); // 출력: '{"name":"Alice","age":30}'
const parsedObj = JSON.parse(jsonString); // 역직렬화: 문자열을 객체로 복원
console.log(parsedObj); // 출력: { name: "Alice", age: 30 }
구조 분해 할당은 배열이나 객체의 값을 개별 변수에 쉽게 할당할 수 있도록 하는 문법입니다. 이를 통해 코드가 더 간결해지고, 복잡한 데이터 구조에서 필요한 부분만 쉽게 추출할 수 있습니다.
배열 구조 분해:
배열의 각 요소를 순서대로 변수에 할당할 수 있습니다.
예시:
const numbers = [1, 2, 3];
const [first, second, third] = numbers;
console.log(first, second, third); // 출력: 1 2 3
객체 구조 분해:
객체의 프로퍼티 값을 변수에 할당할 때, 키와 변수 이름을 일치시켜 사용합니다.
예시:
const person = { name: "Bob", age: 25 };
const { name, age } = person;
console.log(name, age); // 출력: Bob 25
변수 이름을 다르게 지정하고 싶다면, 콜론(:)을 사용해 별칭(alias)를 지정할 수 있습니다.
const { name: personName, age: personAge } = person;
console.log(personName, personAge); // 출력: Bob 25
직렬화(Serializable):
데이터를 저장하거나 전송하기 위해, 객체나 데이터 구조를 일정한 형식(예: JSON 문자열)으로 변환하는 과정입니다. 이 과정을 통해 데이터를 파일에 저장하거나 네트워크로 보내고, 필요 시 다시 원래 상태로 복원할 수 있습니다.
구조 분해 할당(Destructuring Assignment):
배열이나 객체에서 원하는 값을 개별 변수에 쉽게 할당할 수 있는 문법입니다. 이를 통해 복잡한 데이터 구조에서 필요한 정보를 간편하게 추출하고, 코드를 보다 간결하게 작성할 수 있습니다.