JavaScript에서 디스트럭처링

발행: (2026년 4월 4일 PM 02:46 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

🧠 What Is Destructuring?

배열이나 객체에서 별개의 변수로 값을 한 번에 꺼내는 것.

🔹 Destructuring Arrays

Before

const numbers = [10, 20, 30];
const first = numbers[0];
const second = numbers[1];

After

const [first, second, third] = [10, 20, 30];
console.log(first);  // 10
console.log(second); // 20
console.log(third);  // 30

✅ Notes

  • 배열에서는 순서가 중요합니다.
  • 쉼표를 사용해 항목을 건너뛸 수 있습니다:
const [, , third] = [10, 20, 30];
console.log(third); // 30

🔹 Destructuring Objects

Before

const person = { name: "Rahul", age: 22, city: "Delhi" };
const name = person.name;
const age = person.age;

After

const { name, age } = { name: "Rahul", age: 22, city: "Delhi" };
console.log(name); // Rahul
console.log(age);  // 22
  • 순서는 중요하지 않습니다.
  • 변수 이름은 속성 이름과 일치해야 하며(또는 이름을 바꿀 수 있습니다).
// Renaming
const { name: userName } = { name: "Rahul" };
console.log(userName); // Rahul

🔹 Default Values

속성이 없을 수도 있을 때 기본값을 제공할 수 있습니다:

const { name, city = "Unknown" } = { name: "Rahul" };
console.log(city); // Unknown

Nested Destructuring

const user = { name: "Rahul", address: { city: "Delhi" } };
const { name, address: { city } } = user;
console.log(name); // Rahul
console.log(city); // Delhi

⚡ Benefits of Destructuring

  • 중복 코드를 줄여줍니다
  • 코드가 더 깔끔하고 가독성이 높아집니다
  • 중첩된 데이터를 쉽게 추출할 수 있습니다
  • 함수 매개변수와 잘 어울립니다

🔹 Destructuring in Function Parameters

function greet({ name, city = "Unknown" }) {
  console.log(`Hello ${name} from ${city}`);
}

greet({ name: "Rahul" });
// Hello Rahul from Unknown

Before

function greet(person) {
  const name = person.name;
  const city = person.city || "Unknown";
  console.log(`Hello ${name} from ${city}`);
}

After

function greet({ name, city = "Unknown" }) {
  console.log(`Hello ${name} from ${city}`);
}

✅ 더 깔끔하고 짧으며 읽기 쉽습니다.


  • 디스트럭처링은 배열이나 객체에서 값을 추출합니다.
  • 배열 → 순서가 중요합니다.
  • 객체 → 변수 이름은 키와 일치해야 하며(또는 이름을 바꿀 수 있습니다).
  • 기본값과 중첩 구조를 지원합니다.
  • 코드를 더 깔끔하게 만들고 함수 매개변수에 이상적입니다.
0 조회
Back to Blog

관련 글

더 보기 »

동기 vs 비동기 JavaScript

JavaScript는 single‑threaded이지만, synchronous와 asynchronous 동작을 사용하여 여러 작업을 효율적으로 처리할 수 있습니다. What Is Synchronous Code? Synchronous…

TypeScript 타입 가드

결제 시스템을 구축할 때, “대충 맞다”는 충분하지 않습니다. 하나의 undefined 값이나 일치하지 않는 object property가 차이를 만들 수 있습니다…