Bibi's DevLog ๐Ÿค“๐ŸŽ

[์ธํ”„๋Ÿฐ] Javascript์ž…๋ฌธ - ๊ฐ์ฒด 1 ๋ณธ๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Javascript ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

[์ธํ”„๋Ÿฐ] Javascript์ž…๋ฌธ - ๊ฐ์ฒด 1

๋น„๋น„ bibi 2020. 10. 13. 15:30
* ์ด ๊ธ€์€ ์ธํ”„๋Ÿฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ˜ธ๋ˆ…์Šค๋‹˜์˜ ์œ ๋ฃŒ ๊ฐ•์˜ '์‰ฝ๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐฐ์›Œ๋ณด๋Š” Javascript ์ž…๋ฌธ - ์ฝ”๋“œ์Šค์ฟผ๋“œ ๋งˆ์Šคํ„ฐ์ฆˆ ์ฝ”์Šค ๋ ˆ๋ฒจ1'๋ฅผ ๋“ฃ๊ณ  ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜ ๋‚ด์šฉ์— ๋”ํ•ด, ์ œ๊ฐ€ ํ•„๊ธฐํ•˜๊ณ  ๊ตฌ๊ธ€๋งํ•œ ๋‚ด์šฉ์ด ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ณด์ธ ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋Œ€๋กœ ์ •๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ถ€์ •ํ™•ํ•œ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ๊ฐ์•ˆํ•ด ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ธํ”„๋Ÿฐ ์ธก ๋‹ต๋ณ€์„ ๋ฐ›์€ ์ ์ด ์žˆ์œผ๋‚˜(https://bibi6666667.tistory.com/37), ์ €์ž‘๊ถŒ์ƒ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค๋ฉด ๋ณดํ˜ธ ๋ชจ๋“œ(๋น„๊ณต๊ฐœ)๋กœ ์ „ํ™˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๊ฐ์ฒดobject์˜ ๊ธฐ์ดˆ

 

๊ฐ์ฒดobject ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

  • ํ˜„์‹ค์˜ ๋ฌผ์ฒดobject์™€ ๋Œ€์‘๋˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. 
  • ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    (= ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š”, ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธ์žˆ๋Š” ๋‹จ์œ„๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค.)
  • ๊ฐ์ฒดobject ๋Š” ์†์„ฑproperty๊ณผ ๋ฉ”์†Œ๋“œmethod๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

 

๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ

๋น„์–ด ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ์ค‘๊ด„ํ˜ธ{} ์Œ์„ ์‚ฌ์šฉํ•œ๋‹ค.
(โ€ป๋ฐฐ์—ด์€ ๋Œ€๊ด„ํ˜ธ[]๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค)

var p1 = {};
typeof p1; // 'object' (๊ฐ์ฒด)

 

์†์„ฑ property

๊ฐ์ฒด์˜ ๋ณ€์ˆ˜, ์ฆ‰ ๊ฐ์ฒด์— ์†ํ•œ ๋ณ€์ˆ˜ ๋ฅผ ์†์„ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค.

.
์ . ์†์„ฑ ๋ฐ ๋ฉ”์†Œ๋“œ์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‘œ๊ธฐ๋ฒ•.
p1.name = "crong"; // p1์ด๋ผ๋Š” ๊ฐ์ฒด์˜ name์„ "crong"์ด๋ผ๊ณ  ํ•œ๋‹ค.
console.log(p1.name); // "crong"
p1; // {name: "crong"} ๊ฐ์ฒด p1์˜ ๋ชจ์Šต.

p1.name = "honux"; // ๋‚ด์šฉ์„ ๋ฐ”๊ฟ€ ์ˆ˜๋„ ์žˆ๋‹ค.
console.log(p1.name); // "honux"

 

๋ฉ”์†Œ๋“œ method

๊ฐ์ฒด์˜ ํ•จ์ˆ˜, ์ฆ‰ ๊ฐ์ฒด์— ์†ํ•œ ํ•จ์ˆ˜ ๋ฅผ ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ•œ๋‹ค.

// ๊ฐ์ฒด p1์— name์ด๋ผ๋Š” ์†์„ฑ์„ ๋„ฃ์Œ.
p1.name = "honux"

// ๊ฐ์ฒด p1์— eat์ด๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•ด ๋ณด์ž.
// ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜์™€ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ๊ฑฐ์˜ ๊ฐ™๋‹ค.
p1.eat = function(food) {
	console.log( food + "๋ฅผ ๋จน์Šต๋‹ˆ๋‹ค." ); 
}; 

p1.eat("Beef"); // Beef๋ฅผ ๋จน์Šต๋‹ˆ๋‹ค.

p1; // {name: "honux", eat: f}  ***f๋Š” function์ด๋ผ๋Š” ๋œป.
// ์ฆ‰ ๊ฐ์ฒด p1์€ name์ด๋ผ๋Š” ์†์„ฑ๊ณผ eat์ด๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ๋‹ค.

 


 

๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ ๋Œ€์‹ ์— ์ผ๋ฐ˜ ํ•จ์ˆ˜๋ฅผ ์ผ๋‹ค๋ฉด?

// eat์ด ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜์˜€๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ–ˆ์„ ๊ฒƒ.
eat(p1, "์‚ฌ์ด๋‹ค"); // p1์ด ์‚ฌ์ด๋‹ค๋ฅผ ๋จน๋Š”๋‹ค.

๋ฉ”์„œ๋“œ ๋Œ€์‹  ์ผ๋ฐ˜ ํ•จ์ˆ˜๋ฅผ ์ผ๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜์—ˆ์„ ๊ฒƒ์ด๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด๋ ‡๊ฒŒ ์ฝ”๋”ฉํ–ˆ์„ ๋•Œ๋Š” ์˜๋ฏธ๊ฐ€ ๋ฐ”๋กœ ์™€๋‹ฟ์ง€ ์•Š๋Š”๋‹ค.
(eat๋Š” p1๊ณผ "Beef"๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ–๋Š” ํ•จ์ˆ˜์ด๊ตฐ. ์ •๋„)

 

p1.eat("์‚ฌ์ด๋‹ค");

๋ฐ˜๋ฉด ์ด์ฒ˜๋Ÿผ p1์„ ๊ฐ์ฒด๋กœ ์‚ฌ์šฉํ•˜๋ฉด, eat๋Š” p1์˜ ํ•จ์ˆ˜ ์ฆ‰ ๋ฉ”์„œ๋“œ์ด๊ณ  
p1์ด ์‚ฌ์ด๋‹ค๋ฅผ eatํ–ˆ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌ๋œ๋‹ค.

์ฆ‰..

ํ•จ์ˆ˜ ๋Œ€์‹  ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ?
-> ํ•จ์ˆ˜๋ฅผ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•ด ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ณ , ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด.

 

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ OOP

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ Object-Oriented Programing, OOP ์ด๋ž€? 
-> ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด, ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๋ฌถ์–ด์„œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ.
(์ฐธ๊ณ  : velog.io/@hkoo9329/OOPObject-Oriented-Programming-%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%9D%B4%EB%9E%80)

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์žฅ์ 

  • ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค.
  • ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง„๋‹ค.
  • ๋Œ€ํ˜• ํ”„๋กœ๊ทธ๋žจ์„ ์งœ๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.

-> ์ด๋Ÿฐ ์žฅ์ ๋“ค ๋•Œ๋ฌธ์—, '๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ'์€ ํ˜„ ์‹œ๋Œ€์— ์ค‘์š”ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ปจ์…‰์œผ๋กœ ์ž๋ฆฌ์žก์•˜๋‹ค.

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ๋ฒ•

-> ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์งค ๋•Œ, ๊ฐ์ฒด ์ค‘์‹ฌ์œผ๋กœ logic์„ ์งœ๊ณ  ์ฝ”๋”ฉ์„ ํ•œ๋‹ค.

์šฐ์„  ํ•„์š”ํ•œ ๊ฐ์ฒด๋“ค์„ ์ƒ๊ฐํ•˜๊ณ , ๊ฐ ๊ฐ์ฒด๋“ค์ด ์–ด๋–ค ์ผ์„ ํ•˜๋Š”์ง€, ์–ด๋–ค ๊ฐ์ฒด๋“ค์ด ํ˜‘๋ ฅํ•˜๋Š”์ง€, .. ๋ฅผ ๊ณ ๋ คํ•ด ์„ค๊ณ„ํ•œ๋‹ค.

  • ๊ฐ์ฒด์™€ ๊ฐ์ฒด๊ฐ€ ํ˜‘๋ ฅํ•ด์„œ ์ผ์„ ํ•œ๋‹ค.
  • ๊ฐ์ฒด๋Š” ์ผ์— ์ฑ…์ž„์„ ์ง„๋‹ค.
  • ๊ฐ์ฒด๋Š” ๊ฐ์ฒด์— ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.
  • ๊ฐ์ฒด๋Š” ์ž์œจ์ ์œผ๋กœ ์ผ์„ ํ•œ๋‹ค.

โ€ป ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด์„œ๋Š” ์ฐธ๊ณ ๋„์„œ๋ฅผ ๋ณด๋ฉด ์ข‹๋‹ค. "(ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด) + ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ".
ex. Javascript ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ง€๊ธˆ์€ ์™•์ดˆ๋ณด๋ ˆ๋ฒจ1์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๋ฅผ ์™„์ „ํžˆ ์ดํ•ดํ•˜๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ์–ด๋ ต๋‹ค.
์šฐ์„  '๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค' ์ •๋„๋งŒ ์ดํ•ดํ•˜์ž.


this ํ‚ค์›Œ๋“œ

this๋Š” (๊ฐ์ฒด์˜) ๋ฉ”์†Œ๋“œ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์ด๋‹ค.
(๋ฐ˜๋ณต๋ฌธ์—์„œ break๋ฅผ, ํ•จ์ˆ˜์—์„œ return์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ)

this
:
(๋ฉ”์†Œ๋“œ ์•ˆ์—์„œ ์‚ฌ์šฉ์‹œ) ํ•จ์ˆ˜๋ฅผ ์†Œ์œ ํ•œ ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์ฆ‰ ๊ฐ์ฒด ๋ฉ”์„œ๋“œ์˜ ํ•จ์ˆ˜ ๊ตฌ๋ฌธ ๋‚ด์—์„œ, ๊ฐ์ฒด ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ง์ด๋‹ค.

 

** this๋ฅผ ์™œ ์“ฐ๋Š”๊ฐ€?
Q. ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ๋„ this.name ๋Œ€์‹  p2.name์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€ ์•Š๋Š”๊ฐ€?
A. ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ๋Š” ๋ฉ”์„œ๋“œ ๋ฐ”๊นฅ์ชฝ์— ์žˆ๋Š” ๊ฐ์ฒด p2๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์—†๋‹ค.
๋”ฐ๋ผ์„œ p2.name์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— this๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ.

** Q. ์™œ ์–ด๋–จ ๋•Œ๋Š” this๊ฐ€ ์•„๋‹ˆ๋ผ p2.name์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•ด๋„ ๋™์ž‘ํ•˜๋Š”๊ฐ€?
๋ฌธ๋ฒ•์ƒ ํ‹€๋ ธ์ง€๋งŒ, javascript์—์„œ ์•Œ์•„์„œ ๋™์ž‘ํ•ด ์ฃผ๋Š” ๊ฒƒ.
์ง€๊ธˆ ๋‹จ๊ณ„์—์„œ ์•Œ์•„์•ผ ํ•˜๋Š” ๋‚ด์šฉ์€ ์•„๋‹ˆ์ง€๋งŒ.. ๋” ๊ณต๋ถ€ํ•˜๋ ค๋ฉด https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/this๋ฅผ ์ฐธ๊ณ ํ•ด๋ผ.

var p2 = {}; // p2๋ผ๋Š” ๊ฐ์ฒด ์ƒ์„ฑ.

p2.name = "crong"; // ๊ฐ์ฒด p2์˜ ์†์„ฑ name์€ 'crong'
p2.weight = 100;  // ๊ฐ์ฒด p2์˜ ์†์„ฑ weight๋Š” 100

p2.eat = function(food) {
  console.log(this.name + "์ด " + food + "๋ฅผ ๋จน์—ˆ์Šต๋‹ˆ๋‹ค."); 
  this.weight += 1;
  console.log(this.name + "์˜ ํ˜„์žฌ ๋ชธ๋ฌด๊ฒŒ๋Š” " + this.weight + "์ž…๋‹ˆ๋‹ค.");
}; // ๊ฐ์ฒด p2์˜ ๋ฉ”์†Œ๋“œ eat์„ ๋งŒ๋“ฆ.

 

๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ2

๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ, ๋น„์–ด ์žˆ๋Š” ๊ฐ์ฒด์—์„œ ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ
์ฒ˜์Œ๋ถ€ํ„ฐ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•ด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค.

-> JSON ํ‘œ๊ธฐ๋ฒ•์„ ์ด์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค.

JSON
: JavaScript Object Notation. ์ฆ‰ '์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ์ฒด๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•' ์ด๋ผ๋Š” ๋œป์ด๋‹ค.

JSONํ˜•์‹์€ ์•„๋ž˜์™€ ๊ฐ™์€ ํ‘œ๊ธฐ๋ฐฉ์‹์ด๋‹ค.

var ๊ฐ์ฒด๋ช… = {
  "์†์„ฑ๋ช…" : ๊ฐ’,
  "์†์„ฑ๋ช…" : ๊ฐ’,
  ..
  "๋ฉ”์†Œ๋“œ๋ช…" : function(๋งค๊ฐœ๋ณ€์ˆ˜) {
	//ํ•จ์ˆ˜๋‚ด์šฉ
    },
  "๋ฉ”์†Œ๋“œ๋ช…" : function(๋งค๊ฐœ๋ณ€์ˆ˜) {
	//ํ•จ์ˆ˜๋‚ด์šฉ
    },
  ..
};

 

์˜ˆ์ œ

var m1 = {
  "name": "Honux",
  "hp": 100, 
  "power": 20, 
  "attack": function(target) { 
  	target.hp -= this.power;
  } 
}; 
// JSONํ‘œ๊ธฐ๋ฒ•์„ ์ด์šฉํ•ด, ์ฒ˜์Œ๋ถ€ํ„ฐ m1์ด๋ผ๋Š” ๊ฐ์ฒด์— 
//์„ธ ๊ฐ€์ง€ ์†์„ฑ(name, hp, power)๊ณผ ํ•œ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ(attack)๋ฅผ ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค.
// ๋ฉ”์†Œ๋“œ attack : target์˜ hp๋ฅผ this(=m1)์˜ power๋งŒํผ ๋นผ๋Š” ํ•จ์ˆ˜.

m1.attack(m1); // ์ž๊ธฐ ์ž์‹ ์„ ๊ณต๊ฒฉํ•˜๋ฉด..
m1; // {name: "honux", hp: 80, power: 20, attack: f} hp๊ฐ€ m1์˜ power์ธ 20๋งŒํผ ๊นŽ์˜€๋‹ค.

+์‘์šฉ

//m1์˜ ์ƒˆ๋กœ์šด ๋ฉ”์„œ๋“œ eat๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž.
m1.eat = function(c1) {
    this.hp += c1.energy;
}; // m1์ด c1์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ eatํ•˜๋ฉด m1์˜ hp๊ฐ€ c1์˜ energy๋งŒํผ ๋”ํ•ด์ง„๋‹ค.

// ๋จน์„ ๊ฐœ์ฒด c1์„ ๋งŒ๋“ค์ž.
var c1 = {
  type: "Coffee",
  energy: 10
};

m1.eat(c1);
m1; 
// {name: "Honux", hp: 90, power: 20, attack: f, eat: f} f๋Š” ํ•จ์ˆ˜๋ผ๋Š” ๋œป.

*์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ ๋‹ค์Œ์— ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.
(๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•
-๋น„์–ด์žˆ๋Š” ๊ฐ์ฒด {} ๋งŒ๋“ค๊ณ  ์†์„ฑ,๋ฉ”์„œ๋“œ ๋„ฃ๊ธฐ 
-JSONํ‘œ๊ธฐ๋ฒ• ์ด์šฉํ•˜๊ธฐ
-์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์ด์šฉํ•˜๊ธฐ)

 

โ€ป ์˜ค๋Š˜ ๊ฐ•์˜์˜ ์ฒดํฌํฌ์ธํŠธ

-๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๋Š”๊ฐ€?
-this๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?