๐Ÿ“–6. ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ์™€ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ

Lee Jinoยท2022๋…„ 9์›” 23์ผ
0

๐Ÿ“– ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ์™€ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ

  • ์•ž์œผ๋กœ ๋‚˜์˜ฌ ๊ทธ๋ฆผ๋“ค์€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์—†๊ธฐ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ถ”์ƒํ™”ํ•œ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค.

  • ๋ณ€์ˆ˜๋ช…๊ณผ ์ฃผ์†Œ๋กœ ๋œ ํ‘œ๊ฐ€ ์žˆ๊ณ  ์ฃผ์†Œ์™€ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ ํ‘œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ๋‘๊ฐœ๋Š” ๋ณ„๊ฐœ์˜ ์ €์žฅ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŽธ์˜์ƒ ํ๋ฆ„๋„ ํŒŒ์•…์„ ์œ„ํ•ด ํ‘œ๊ธฐํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๐Ÿš€ 1. ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ(Primitive Type)์˜ ์ •์˜

  • ๊ธฐ๋ณธํ˜•์—๋Š” ๋ฐ”๋กœ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ํ• ๋‹นํ•œ๋‹ค.

  • ๊ธฐ๋ณธ(์›์‹œ)ํ˜•์—๋Š” Number, String, Boolean, null, undefined ๊ฐ€ ์žˆ์œผ๋ฉฐ ES6 ์—์„œ๋Š” Symbol ๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


โ–ถ๏ธ var a;

  • ๋ณ€์ˆ˜ a ๋ฅผ ์„ ์–ธํ•˜๋ฉด ์ปดํ“จํ„ฐ๋Š” ์šฐ์„  ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ๊ณต๊ฐ„์„ ๋ฏธ๋ฆฌ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.

  • ๊ทธ๋ฆผ์—์„œ๋Š” ์ž„์˜๋กœ ์•„๋ž˜ ํ‘œ์˜ ์ฃผ์†Œ 313๋ฒˆ ๊ณต๊ฐ„์„ ํ™•๋ณดํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ทธ ๋‹ค์Œ์œผ๋กœ ํ™•๋ณดํ•œ ์ฃผ์†Œ๊ฐ’์„ ๋ณ€์ˆ˜๋ช… a ์™€ ๋งค์นญ์‹œํ‚ต๋‹ˆ๋‹ค.

โ–ถ๏ธ a = 10;

  • ์ดํ›„ ์ฝ”๋“œ ์ง„ํ–‰์ค‘์— a ์— 10์„ ํ• ๋‹นํ•˜๋ผ๋Š” ๋ช…๋ น์„ ๋งŒ๋‚˜๋ฉด ์ปดํ“จํ„ฐ๋Š” ๋ณ€์ˆ˜ a๋ฅผ ์ฐพ์•„์„œ ๋ณ€์ˆ˜ a์™€ ๋งค์นญ๋˜์–ด ์žˆ๋Š” ์ฃผ์†Œ๊ฐ’์ธ @313๋ฒˆ์„ ์ฝ๊ณ  ๊ทธ ์ฃผ์†Œ๋กœ ์ด๋™ํ•ด์„œ
    ๊ทธ ๊ณต๊ฐ„์— 10์„ ์ง‘์–ด ๋„ฃ์Šต๋‹ˆ๋‹ค.

โ–ถ๏ธ var b = 'abc';

  • ์ด๋ฒˆ์—๋Š” ๋ณ€์ˆ˜ b ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๋ฌธ์ž์—ด abc ๋ฅผ ํ• ๋‹นํ•˜๋ผ๋Š” ๋ช…๋ น์–ด(var b = 'abc')๋ฅผ ๋‚ด๋ ค๋ด…๋‹ˆ๋‹ค.
    ์šฐ์„  ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธธ 314๋ฒˆ์˜ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ํ™•๋ณด๋œ ๊ณต๊ฐ„์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๋ณ€์ˆ˜๋ช… b ์™€ ์ฃผ์†Œ @314์— ๋งค์นญ์‹œํ‚ต๋‹ˆ๋‹ค.

  • ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ๋งค์นญ๋œ ์ฃผ์†Œ์˜ 314๋ฒˆ์œผ๋กœ ์ด๋™ํ•ด์„œ ๋ฌธ์ž์—ด 'abc'๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    ์ฆ‰, var b = 'abc' ๋ผ๋Š” ๋ฌธ์žฅ์€ ์•ž์„œ ์‹คํ–‰ํ–ˆ๋˜ var a; a = 10; ๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ๋†“์€ ๋ฌธ์žฅ์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค.

  • ์ด๋Ÿฌํ•œ ๊ฒƒ์„ ์„ ์–ธ๊ณผ ํ• ๋‹น์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”Ž ์„ ์–ธ๊ณผ ํ• ๋‹น ?

  • ์„ ์–ธ ๊ณผ์ • : ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ๋ณ€์ˆ˜๋ช…๊ณผ ์ฃผ์†Œ๋ฅผ ๋งค์นญ์‹œํ‚ค๋Š” ๊ณผ์ •
  • ํ• ๋‹น ๊ณผ์ • : ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ์˜ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณผ์ •

โ–ถ๏ธ b = false;

  • ๊ทธ ๋‹ค์Œ ๋ฌธ์žฅ์—์„œ ๋‹ค์‹œ b์— false ๋ฅผ ํ• ๋‹น(b = false)ํ•˜๋ผ๊ณ  ๋ช…๋ นํ•˜๋ฉด false ๋ฅผ ๋“ค๊ณ ์žˆ๋Š” ์ฑ„(var ๋ผ๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—)๋กœ ํ˜„์žฌ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜๋ช…๋“ค ์ค‘์— b ๊ฐ€ ์žˆ๋Š” ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋งŒ์•ฝ b ๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด ์•ž์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ ์–ธ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • b ๋Š” ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— b ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ(@314)๊ฐ’์„ ์ฝ์–ด์„œ ํ•ด๋‹น ์ฃผ์†Œ์œ„์น˜๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ๊ทธ ์ž๋ฆฌ์— false ๋ฅผ ๋ฎ์–ด์“ฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

โ–ถ๏ธ var c = b;

  • ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๋ฌธ์žฅ์— var c = b; ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋จผ์ € var ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ์œผ๋‹ˆ ์„ ์–ธ๊ณผ์ •๋ถ€ํ„ฐ ๊ฑฐ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ๋นˆ ๊ณต๊ฐ„์ธ 315๋ฒˆ์„ ํ™•๋ณดํ•˜๊ณ  ๊ทธ ์ฃผ์†Œ๋ฅผ ๋ณ€์ˆ˜ c ์™€ ๋งค์นญ์‹œํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  314๋ฒˆ์œผ๋กœ ์ด๋™ํ•˜์—ฌ b๊ฐ’์ธ
    false ๊ฐ’์„ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ฝ์–ด๋“ค์ธ ๊ฐ’ false ๋ฅผ ๊ฐ€์ง€๊ณ  c ๋ฅผ ์ฐพ์•„์„œ c๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” 315๋ฒˆ ๊ณต๊ฐ„์— false ๋ฅผ ๋„ฃ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

  • ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ด๋ ‡๊ฒŒ ์ €์žฅ๋œ ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ๋“ค์€ ๊ทธ ์ž์ฒด๋กœ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • b ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ƒ์— ์ €์žฅ๋œ false ์™€ c ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ƒ์— ์ €์žฅ๋œ false ๋Š” ์™„์ „ํžˆ ๊ฐ™์€ ๊ฐ’์ž…๋‹ˆ๋‹ค.

  • false ๋ผ๋Š” ๋ช…์นญ ์ž์ฒด๋Š” ์„ธ์ƒ์— ๋‹จ ํ•˜๋‚˜๋ฟ์ธ ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ํ•˜๋‚˜๋ฟ์ธ ๋‹จ์–ด๋ฅผ ์ด๊ณณ์ €๊ณณ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ํ•˜๋‚˜๋ฟ์ธ ๋‹จ์–ด๋ฅผ ์„œ๋กœ ๋น„๊ตํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ๊นŒ ๋‹น์—ฐํžˆ ์™„์ „ํžˆ ๊ฐ™๋‹ค(b === c)๊ณ  ๋ณผ ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.

โ–ถ๏ธ c = 20;

  • ๋‹ค์‹œ c ์— 20์„ ํ• ๋‹นํ•˜๋ผ(c = 20)๊ณ  ํ•˜๋ฉด 20์„ ๊ฐ€์ง€๊ณ  c ๊ฐ€ ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐพ์•„์„œ ์›๋ž˜์žˆ๋˜ false ๋Œ€์‹  20์„ ๋„ฃ์Šต๋‹ˆ๋‹ค.

  • ๊ทธ๋Ÿฐ๋ฐ ์ด ๋™์ž‘์€ false ๋ž€ ๊ฐ’์ด 20 ์œผ๋กœ ๋ณ€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์žˆ๋˜ false ๋Œ€์‹  20์ด๋ž€ ๊ฐ’์„ ๋ฎ์–ด์”Œ์›Œ ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ด์ œ b ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ณณ์˜ ๊ฐ’์ธ false ์™€ c ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ณต๊ฐ„์˜ ๊ฐ’์ธ 20 ์€ ์„œ๋กœ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ฐ’์ด ๋˜์—ˆ์œผ๋ฏ€๋กœ b ์™€ c ๋Š” ๊ฐ™์ง€์•Š๋‹ค(b !== c)๋ผ๋Š” ์กฐ๊ฑด์ด ์„ฑ๋ฆฝํ•ฉ๋‹ˆ๋‹ค.


๐Ÿš€ 2. ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ์˜ ์ •์˜

  • ์ฐธ์กฐํ˜•์—๋Š” ๊ฐ’์ด ์ €์žฅ๋œ ์ฃผ์†Œ๊ฐ’์„ ํ• ๋‹น(์ฐธ์กฐ)ํ•œ๋‹ค.

  • ์ฐธ์กฐํ˜•์€ ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ฐ์ฒด(Object)๊ฐ€ ์žˆ๊ณ  ๊ทธ ํ•˜์œ„์— ๋ฐฐ์—ด(Array), ํ•จ์ˆ˜(Function), ์ •๊ทœํ‘œํ˜„์‹(RegExp) ๋“ฑ์ด ์žˆ์œผ๋ฉฐ, ES6์—์„œ๋Š” Map, Set, WeakMap, WeakSet ๋“ฑ๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


  • ๊ธฐ๋ณธํ˜• ํƒ€์ž…๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ์ฃผ์†Œ๋ฅผ ๋ณ€์ˆ˜๋ช…๊ณผ ๋งค์นญ์‹œํ‚ค๋Š” ๊ณผ์ •์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์Œ์œผ๋กœ ํ• ๋‹น๊ณผ์ •์„ ํ•  ์ฐจ๋ก€์ธ๋ฐ ํ• ๋‹น์„ ํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ ๊ทธ ๊ฐ’์ด ๊ธฐ๋ณธํ˜•์ด ์•„๋‹ˆ๊ณ  ์ฐธ์กฐํ˜•์ž…๋‹ˆ๋‹ค.

  • ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ๋“ค์€ ํ”„๋กœํผํ‹ฐ(property)์™€ ๋ฐ์ดํ„ฐ(data), ์ฆ‰ key : value๋กœ ๋ฌถ์ธ ์Œ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœํผํ‹ฐ๋ช…์€ ๋ณ€์ˆ˜์™€ ๋น„์Šทํ•œ ์„ฑ์งˆ์„ ์ง€๋‹ˆ๊ณ  ์žˆ๊ณ  ๋ณ€์ˆ˜๋ช…๊ณผ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” ์ฃผ์†Œ๊ฐ’์„ ํ†ตํ•˜์—ฌ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”๋ฐ ํ”„๋กœํผํ‹ฐ์™€ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์—์„œ๋„ ๊ฐ™์€ ๋™์ž‘์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ์šฐ์„  ๊ฐ ํ”„๋กœํผํ‹ฐ๋ช…๊ณผ value ๊ฐ€ ๋‹ด๊ธธ ์ฃผ์†Œ๋ฅผ ๋งค์นญํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ณต๊ฐ„์„ ์ƒˆ๋กœ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.
    ์—ฌ๊ธฐ์„  ์ƒˆ๋กœ ์ž„์˜๋กœ 1011๋ฒˆ์— ๊ณต๊ฐ„์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค

  • ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ 1012๋ฒˆ์— a ํ”„๋กœํผํ‹ฐ์˜ value ๊ฐ€ ๋‹ด๊ธธ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ํ™•๋ณด๋œ ์ฃผ์†Œ๋ฅผ a ํ”„๋กœํผํ‹ฐ์™€ ๋งค์นญ์‹œํ‚ต๋‹ˆ๋‹ค.

  • ๊ทธ๋ฆฌ๊ณ  1013๋ฒˆ์— b ํ”„๋กœํผํ‹ฐ์˜ value ๊ฐ€ ๋‹ด๊ธธ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ๊ทธ ํ• ๋‹น๋œ ์ฃผ์†Œ์˜ 1013๋ฒˆ์„ b ํ”„๋กœํผํ‹ฐ์™€ ๋งค์นญ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ์ด์ œ ๋‹ค์‹œ ๊ฐ๊ฐ์˜ ์ฃผ์†Œ๊ฐ’๋งˆ๋‹ค ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ๊ฐ’์„ ํ• ๋‹นํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • 1012๋ฒˆ์—๋Š” 1 ์„ 1013๋ฒˆ์—๋Š” 'b' ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

  • ์ด์ œ ์•ž์„œ ์–ด๋”˜๊ฐ€์— ์ €์žฅ๋˜์–ด ์žˆ์„ ๊ฐ์ œ ์ €์žฅ ์ •๋ณด์˜ ์ฃผ์†Œ ์ฆ‰, ์—ฌ๊ธฐ์„œ๋Š” 1011๋ฒˆ์„ 413๋ฒˆ์— ๋งค์นญ์‹œํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋ฐ์ดํ„ฐ ๊ณต๊ฐ„์˜ ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธธ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ์ฆ‰, ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ๋Š” ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ–ถ๏ธ var obj2 = obj;

  • ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ์ƒํƒœ์—์„œ obj2 ์— obj ๋ฅผ ํ• ๋‹นํ•˜๋ผ๊ณ  ํ•˜๋ฉด ์–ด๋– ํ•œ ์ผ์ด ๋ฒŒ์–ด์งˆ๊นŒ์š”?

  • 414๋ฒˆ์— ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  obj2 ์™€ ๋งค์นญ์‹œํ‚จ ๋‹ค์Œ obj ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ์ธ 1011๋ฒˆ์ด๋ผ๊ณ  ํ•˜๋Š” ์ฃผ์†Œ๋ฅผ obj2 ์— ํ• ๋‹นํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์ฐธ์กฐ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค.

  • ๊ฐ์ฒด๋Š” ์–ด๋”˜๊ฐ€์— ๋”ฐ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š”๋ฐ ๊ทธ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๋งŒ์„ ๋ณต์‚ฌํ•ด ์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ–ถ๏ธ obj2.a = 10;

  • ๊ทธ๋ž˜์„œ obj2 ์˜ a ํ”„๋กœํผํ‹ฐ(obj.a)์— 10์„ ํ• ๋‹น(obj2.a = 10;)ํ•˜๋ผ๊ณ  ํ•˜๋ฉด obj2 ์— ๋งค์นญ๋œ 414๋ฒˆ ์ฃผ์†Œ๋กœ ๊ฐ€์„œ
  • ๋‹ค์‹œ 1011๋ฒˆ์œผ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ 1011๋ฒˆ ์•ˆ์—์„œ a ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐพ๊ณ  a ์™€ ๋งค์นญ๋˜์–ด ์žˆ๋Š” 1012๋ฒˆ ์ฃผ์†Œ๋กœ ์ด๋™ํ•˜์—ฌ 1 ๋Œ€์‹ ์— 10 ์„ ๋„ฃ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ๋‹น์—ฐํ•˜๊ฒŒ๋„ obj2.a ๊ฐ’์€ 10์ด ๋‚˜์˜ค๋Š”๋ฐ ์›๋ณธ์ธ obj.a ๊ฐ’๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 10 ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

  • obj2 ๊ฐ์ฒด๊ฐ€ obj ๊ฐ์ฒด์™€ ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“  ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ณธ๋ž˜ obj ๊ฐ€ ๋ฐ”๋ผ๋ณด๋˜ ๊ฐ์ฒด๋ฅผ ํ•จ๊ป˜ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ์ฆ‰, obj === obj2 ๋Š” ์™„๋ฒฝํžˆ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

  • ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๊ฐ™์€ ๊ณณ์„ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜์—ฌ ํฌ์ธํ„ฐ(pointer)๊ฐ€ ๊ฐ™๋‹ค ํ˜น์€ ๊ฐ™์€ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ”๋ผ๋ณธ๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ง€๊ธˆ๊นŒ์ง€์˜ ๊ณผ์ •์ด ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ์™€ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์ด๊ณ 

  • ์ด ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•ด์•ผ๋งŒ ์ดํ›„์— ์ ‘ํ• ๊ฒŒ ๋  ์–•์€ ๋ณต์‚ฌ, ๊นŠ์€ ๋ณต์‚ฌ ๊ฐœ๋…๋“ค์ด ๋“ฑ์žฅํ•˜๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์‹ค ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


๐Ÿš€ 3. ์ค‘์ฒฉ๋œ ๊ฐ์ฒดํƒ€์ž…

  • ์ด๋ฒˆ์—๋Š” ์ค‘์ฒฉ๋œ(nested) ๊ฐ์ฒด๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ์ฐธ๊ณ ๋กœ ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์ค‘์ฒฉ๋œ ๊ฐ์ฒด๋Š” ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ์•ˆ์— ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋“ค์„ nested, ์ฆ‰ ์ค‘์ฒฉ๋˜์–ด ์žˆ๋‹ค๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.


  • ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ์„ ์–ธ๊ณผ์ •์€ ์œ„์—์„œ ์‚ดํŽด๋ณธ ๊ฒƒ๊ณผ ๊ฐ™์ด ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

  • ํ•ด๋‹น ํ‘œ์—์„œ๋Š” 1184๋ฒˆ์„ ํ™•๋ณดํ•˜๊ณ  ํ™•๋ณด๋œ ํ•ด๋‹น ๊ณต๊ฐ„์— ํ”„๋กœํผํ‹ฐ๋ณ„๋กœ ์ €์žฅ๋  ๊ณต๊ฐ„์„ ๋‹ค์‹œ ํ™•๋ณดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ์ œ ์ฝ”๋“œ์—์„œ๋Š” a ํ”„๋กœํผํ‹ฐ ํ•˜๋‚˜๋ฟ์ด๋ฏ€๋กœ 1185๋ฒˆ์„ a ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ €์žฅ๋  ๊ณต๊ฐ„์œผ๋กœ ์‚ผ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์ด์ œ 1185๋ฒˆ์— a ํ”„๋กœํผํ‹ฐ์˜ value ๋ฅผ ํ• ๋‹นํ•ด์•ผ ํ•˜๋Š”๋ฐ ํ• ๋‹นํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ ๊ทธ ๊ฐ’์ด ์ธ๋ฑ์Šค๋กœ ์ด๋ฃจ์–ด์ง„ value ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ 1326 ~ 1328๋ฒˆ๊นŒ์ง€ ๊ณต๊ฐ„์„ ๋‹ค์‹œ ํ™•๋ณดํ•˜๊ณ  1185๋ฒˆ์—๋Š” ํ™•๋ณด๋œ ๊ณต๊ฐ„์˜ ์ฃผ์†Œ๊ฐ’๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ด ๋„ฃ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์นœ ํ›„์— ๊ฐ ์ฃผ์†Œ๋งˆ๋‹ค value ๋“ค์„ ๋Œ€์ž…ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฒˆ์—๋Š” ์š”์†Œ๋“ค์ด ๋ชจ๋‘ ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋”์ด์ƒ์˜ ๊ณต๊ฐ„ ํ™•๋ณด ์ž‘์—…์„ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ–ถ๏ธ obj.a = 'new';

  • ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ์ด ์ƒํ™ฉ์—์„œ 'new' ๋ผ๊ณ  ํ•˜๋Š” ๋ฌธ์ž์—ด์ธ ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ๋ฅผ obj3.a ์— ํ• ๋‹นํ•˜๋ผ๊ณ  ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

  • ๋ฐฐ์—ด ์ •๋ณด์— ์žˆ๋˜ ์ž๋ฆฌ์— ์ˆœ์ˆ˜ ๋ฐ์ดํ„ฐ์ธ new ๋ฌธ์žฅ์—ด์ด ๋“ค์–ด์˜ด์œผ๋กœ์จ 1326 ~ 1328๋ฒˆ๊นŒ์ง€ ์ €์žฅ๋˜์–ด ์žˆ๋˜ ๋ฐ์ดํ„ฐ๋“ค์€ ๋งํฌ๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ๋ง™๋‹ˆ๋‹ค.

  • ์ฆ‰, ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๊ณณ์ด ์–ด๋””์—๋„ ์—†๊ฒŒ ๋˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ด๋“ค์€ ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํ„ฐ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฒญ์†Œ๊ธฐ์ธ ์ฒญ์†Œ ๋Œ€์ƒ์—์„œ ์–ธ์  ๊ฐ€ ์ฅ๋„์ƒˆ๋„ ๋ชจ๋ฅด๊ฒŒ ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


profile
์•ˆ๋…•ํ•˜์„ธ์š”

0๊ฐœ์˜ ๋Œ“๊ธ€