안녕하세요, 독자 여러분! 개발자의 삶입니다. 😊
33일차 포스팅에서는 대량의 데이터를 효율적으로 가공하는 map과 filter 메서드에 대해 알아보았습니다. 서버에서 받아온 복잡한 배열 데이터도 이제는 두렵지 않으실 겁니다.
그런데 데이터를 다루다 보면 객체나 배열 안에 든 값을 꺼내기 위해 반복적으로 변수를 선언하거나 점(.)을 찍어 접근하는 과정이 꽤 번거롭게 느껴질 때가 있습니다. 오늘은 코드를 마법처럼 짧고 깔끔하게 만들어주는 최신 문법, 구조 분해 할당에 대해 알아보겠습니다.
1. 도입
우리가 이사를 와서 짐을 풀 때를 생각해 보세요. 커다란 상자 안에 든 물건들을 하나씩 꺼내서 각자의 자리에 배치합니다. 자바스크립트에서도 객체나 배열이라는 상자 안에 든 여러 개의 데이터를 꺼내서 각각의 변수에 담아야 할 때가 아주 많습니다.
예전에는 상자에서 물건을 하나 꺼내고 이름을 붙이고, 또 하나 꺼내고 이름을 붙이는 식이었다면, 구조 분해 할당은 상자를 열자마자 필요한 물건들을 한 번에 쏙쏙 뽑아 제자리에 두는 기술입니다.
2. 개념 설명: 상자 한꺼번에 열기
구조 분해 할당은 객체나 배열의 구조를 유지한 상태에서 필요한 값만 추출하여 변수에 바로 할당하는 문법입니다.
A. 객체 구조 분해 (Object Destructuring)
- 핵심: 키(Key) 이름을 기준으로 값을 찾아옵니다.
- 특징: 순서는 중요하지 않습니다. 이름표만 맞으면 됩니다.
- 비유: 이름표가 붙은 사물함에서 필요한 물건만 이름대로 꺼내는 것과 같습니다.
B. 배열 구조 분해 (Array Destructuring)
- 핵심: 인덱스(순서)를 기준으로 값을 가져옵니다.
- 특징: 변수의 이름을 내 마음대로 정할 수 있지만, 위치가 중요합니다.
- 비유: 기차 칸 순서대로 승객을 내리게 하는 것과 같습니다.
3. 예시 코드: 구조 분해 할당 사용하기
기존 방식과 구조 분해 할당 방식이 얼마나 다른지 비교해 보겠습니다.
// 1. 객체 구조 분해 할당
const user = {
name: "이영희",
age: 22,
job: "개발자"
};
// [기존 방식] 하나씩 변수에 담기
// const name = user.name;
// const age = user.age;
// const job = user.job;
// [구조 분해 할당] 한 줄로 끝내기
const { name, age, job } = user;
console.log("객체 분해 결과:");
console.log(name, age, job); // 출력: 이영희 22 개발자
// 2. 배열 구조 분해 할당
const colors = ["red", "blue", "green"];
// [기존 방식] 인덱스로 접근
// const first = colors[0];
// const second = colors[1];
// [구조 분해 할당] 순서대로 변수 이름 정하기
const [first, second, third] = colors;
console.log("배열 분해 결과:");
console.log(first, second, third); // 출력: red blue green
4. 코드 설명: 위치와 이름의 차이
객체 분해: const { name, age } = user;
- user 객체 안에서 name이라는 키를 찾아 그 값을 왼쪽의 name 변수에 넣습니다.
- 만약 객체에 없는 키를 적으면 undefined가 할당됩니다.
- 변수 이름을 바꾸고 싶다면 { name: userName } 처럼 별명을 붙일 수도 있습니다.
배열 분해: const [first, second] = colors;
- colors 배열의 0번 인덱스 값을 first 변수에, 1번 인덱스 값을 second 변수에 순서대로 넣습니다.
- 객체와 달리 변수 이름은 자유롭게 정할 수 있습니다. (예: [a, b, c])
- 중간에 필요 없는 값은 빈칸으로 비워두고 넘길 수도 있습니다. (예: [first, , third])
5. 마무리
오늘은 34일차 포스팅으로, 코드를 더 간결하고 가독성 좋게 만들어주는 구조 분해 할당 문법을 배웠습니다. 처음에는 문법이 낯설 수 있지만, 익숙해지면 객체나 배열을 다룰 때 이보다 편한 방법이 없다는 것을 느끼게 될 것입니다.
구조 분해 할당은 특히 함수의 매개변수에서 객체를 받을 때 진가를 발휘합니다. 코드가 훨씬 전문적으로 보이기 시작하는 단계이기도 하죠.
다음 35일차 포스팅에서는 여러 개의 데이터를 하나로 묶거나, 배열을 펼쳐서 다른 배열에 넣는 유용한 마법 기호, 전개 연산자(Spread Operator)와 나머지 매개변수(Rest Parameters)에 대해 알아보겠습니다. 드디어 자바스크립트의 현대적인 문법 시리즈가 완성되어 가고 있습니다!
오늘도 한 단계 성장하신 여러분을 응원합니다. 다음 시간에 만나요! 👋
'IT > Javascript' 카테고리의 다른 글
| JavaScript: 복잡한 코드 정리의 마법! 모듈(Import / Export) 기초 알아보기 📁 (0) | 2026.04.25 |
|---|---|
| JavaScript: 점 세 개의 마법! 전개 연산자(Spread)와 나머지 매개변수(Rest) (0) | 2026.04.21 |
| JavaScript: 대량의 데이터 요리하기! 배열 메서드 map과 filter 기초부터 알아보기 🍳 (0) | 2026.04.13 |
| JavaScript: 외부 서버와 통신하기! Fetch API 기초 (날씨 데이터 가져오기) 🌤️ (0) | 2026.03.19 |
| JavaScript: 사용자 위치 정보 가져오기 (Geolocation API) 기초부터 알아보기 🌍 (0) | 2026.03.14 |