๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
๋ฐ˜์‘ํ˜•

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ 

๋‚ด๊ฐ€ ์ตœ๊ทผ์— Vanilla JavaScript๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์•Œ๊ฒŒ ๋œ ๊ฒƒ์ด ๋ฐ”๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ES6 ๋ฌธ๋ฒ•์ธ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(Destructuring)์ด๋‹ค.

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(Destructuring) ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜๋ฉด, ๋ฐฐ์—ด์ด๋‚˜, ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•œ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ„๊ฒฐํ•˜๋ฉด์„œ๋„ ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์–ด์„œ ์œ ์šฉํ•˜๋‹ค.

๊ทธ๋ž˜์„œ, ์ด๋ฒˆ์—๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(Destructuring), ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด๊ฐ€ ๋ฌด์—‡์ด๊ณ , ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค.

1. ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(Destructuring)์ด๋ž€ โ“

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ๊ตฌ๋ฌธ์€ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ•ด์ฒดํ•˜์—ฌ ๊ทธ ๊ฐ’์„ ๊ฐœ๋ณ„ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š”
JavaScript ํ‘œํ˜„์‹์ด๋‹ค. -(MDN)

์ด๋กœ์„œ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด๋ฅผ ๋ณ€์ˆ˜์— ๋‹ด์•„๋‚ผ ๋•Œ ์‰ฝ๊ฒŒ ๋ณ€์ˆ˜์— ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ์–ด๋–ค ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋‚˜ โ“

๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„ ๋ณด๊ฒ ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ๋‹ค.

const user =  {
  name: "yong",
  age: "23",
  job: "๋Œ€ํ•™์ƒ"
}

๊ทธ๋ฆฌ๊ณ , ์ด ๊ฐ์ฒด๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ–ˆ๋‹ค.

function getUserInfo(user) {  
  retrun `์ด๋ฆ„์€ ${user.name}์ด๊ณ  ๋‚˜์ด๋Š” ${user.age}, ์ง์—…์€ ${user.job}์ž…๋‹ˆ๋‹ค.`;
}
console.log(getUserInfo)
//์ด๋ฆ„์€ yong์ด๊ณ  ๋‚˜์ด๋Š” 23, ์ง์—…์€ ๋Œ€ํ•™์ƒ์ž…๋‹ˆ๋‹ค.

์œ„์˜ ํ•จ์ˆ˜๋ฅผ ๋ณด๋ฉด user.name, user.age ... ์ด๋ ‡๊ฒŒ user๊ฐ€ ์„ธ๋ฒˆ์ด ๋ฐ˜๋ณต๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(Destructuring)์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋‹จ์ˆœํžˆ ๋ณด๊ธฐ์— ์ข‹๊ธฐ๋งŒ ์ข‹๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ,

์ฝ”๋”ฉ์„ ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๋”์šฑ ํŽธ๋ฆฌํ•˜๋‹ค.

 

์ด์ œ ์œ„์˜ ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•œ ํ•จ์ˆ˜์—์„œ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(Destructuring)์„ ์ด์šฉํ•˜๊ฒŒ ๋˜๋ฉด

function getUserInfo(user) {
  const { name, age, job } = user;
  retrun `์ด๋ฆ„์€ ${name}์ด๊ณ  ๋‚˜์ด๋Š” ${age}, ์ง์—…์€ ${job}์ž…๋‹ˆ๋‹ค.`;
}
console.log(getUserInfo)
//์ด๋ฆ„์€ yong์ด๊ณ  ๋‚˜์ด๋Š” 23, ์ง์—…์€ ๋Œ€ํ•™์ƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ๊ฐ์ฒด์˜ Property๋ฅผ ์ด์šฉํ•ด์„œ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ ‘๊ทผํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์œ„์ฒ˜๋Ÿผ Property user.name ๊ณผ user.age, user.job์— ์ €์žฅ๋œ ๊ฐ’์ด ์ƒ์‘ํ•˜๋Š” ๋ณ€์ˆ˜์— ํ• ๋‹น๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“• ๋งˆ์น˜๋ฉฐ

๊ฐ„๋‹จํ•˜๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ES6 ๋ฌธ๋ฒ•์ธ ๊ตฌ์กฐ ๋ถ„ํ•  ํ• ๋‹น(Destructuring), ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌ๋ฅผ ํ•ด๋ดค๋‹ค.

์•ž์œผ๋กœ ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์„ ์ด์šฉํ•ด์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

์ •๋ง ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ–ˆ๋Š”๋ฐ ๊ตฌ์กฐ ๋ถ„ํ•  ํ• ๋‹น(Destructuring)์— ๋Œ€ํ•ด์„œ ๋” ์ž์„ธํ•˜๊ณ  ๊นŠ๊ฒŒ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด,

์•„๋ž˜์˜ ๋ฌธ์„œ๋“ค์„ ์ฐธ๊ณ  ํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

ko.javascript.info/destructuring-assignment

 

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น

 

ko.javascript.info

developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

 

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น - JavaScript | MDN

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ๊ตฌ๋ฌธ์€ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ•ด์ฒดํ•˜์—ฌ ๊ทธ ๊ฐ’์„ ๊ฐœ๋ณ„ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” JavaScript ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค. The source for this interactive example is stored in a GitHub repository. If you'd like to cont

developer.mozilla.org

 

๋ฐ˜์‘ํ˜•
profile

๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป

@์šฉ๋‡ฝ

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!