๐Ÿธ [JavaScript] ์›์‹œ๊ฐ’ vs. ๊ฐ์ฒด

hnyoojinยท2024๋…„ 9์›” 1์ผ

๐Ÿธ JS ๋งˆ์Šคํ„ฐ ๋˜๊ธฐ

๋ชฉ๋ก ๋ณด๊ธฐ
10/19
post-thumbnail

์ด์ „ ๊ธ€์—์„œ ๊ฐ์ฒด๋ž€ ๋ฌด์—‡์ธ์ง€ ์‚ดํŽด๋ณด์•˜๋‹ค.

JavaScript์˜ data type์€, primitive type๊ณผ object type.
์ฆ‰ ์›์‹œ ํƒ€์ž…๊ณผ ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ ๋‚˜๋‰œ๋‹ค๊ณ  ํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์›์‹œ ํƒ€์ž…๊ณผ ๊ฐ์ฒด ํƒ€์ž…, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์›์‹œ๊ฐ’๊ณผ ๊ฐ์ฒด๋ผ๋Š” ๊ฐœ๋… ์‚ฌ์ด์—๋Š” ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ์„๊นŒ?

์ด ๊ธ€์—์„œ๋Š” ๋”ฐ๋กœ ๋ชฉ์ฐจ๋ฅผ ๋‘์ง€ ์•Š๊ณ , ํ๋ฆ„์— ๋”ฐ๋ผ ์›์‹œ๊ฐ’๊ณผ ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ์•Œ์•„๋ณด๊ฒ ๋‹ค.


์›์‹œ๊ฐ’

์šฐ์„ , ์›์‹œ๊ฐ’์€ immutableํ•œ, ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋‹ค.

์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ ์‹ ๋ขฐ์„ฑ์ด ๋ณด์žฅ๋œ๋‹ค.


C, Java์™€๋Š” ๋‹ฌ๋ฆฌ, JavaScript ์—์„œ๋Š” ๋ฌธ์ž์—ด ํƒ€์ž…์„ ์ œ๊ณตํ•œ๋‹ค.

์ด ๋ฌธ์ž์—ด ํƒ€์ž…์€ ์›์‹œ ํƒ€์ž…์ด๊ณ , ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์ด๋‹ค.
(๋ฌธ์ž์—ด์ด ์ƒ์„ฑ๋œ ์ดํ›„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.)


์ด๋ฅผ ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋ฐฐ์—ด๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๊ฐ ๋ฌธ์ž์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

index๋กœ property ๊ฐ’์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ณ , length property๋ฅผ ๊ฐ–๋Š” ๊ฐ์ฒด์ด๋‹ค.

์ด๊ฒƒ์ด JavaScript์˜ ์žฅ์ ์ด๋ผ๊ณ  ํ•œ๋‹ค..!


๊ฐ์ฒด

๊ฐ์ฒด์˜ ๊ฒฝ์šฐ, property๊ฐ€ ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ , ๋˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๋•Œ๋ฌธ์— ํ™•๋ณดํ•ด์•ผํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์‚ฌ์ „์— ์ •ํ•ด๋‘˜ ์ˆ˜๊ฐ€ ์—†๋‹ค.

์›์‹œ๊ฐ’์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ์ด์ „ ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ, ์ƒˆ๋กœ ์ƒ์„ฑํ•œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ, ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ ํฌ๊ธฐ๋„ ํ•˜๊ณ , ํ•ด๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ด ๋งค์šฐ ๋–จ์–ด์ง€๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, JavaScript์—์„œ๋Š” ์–ด๋–ค ์„ ํƒ์„ ํ–ˆ์„๊นŒ?

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‹๋ณ„์ž๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค.

๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํŠน์ • ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด, ์›๋ณธ์˜ ์ฐธ์กฐ๊ฐ’์ด ๋ณต์‚ฌ๋˜๋„๋ก ํ–ˆ๋‹ค.

์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ๋‹ค๋ฅด์ง€๋งŒ, ๋™์ผํ•œ ์ฐธ์กฐ๊ฐ’์„ ๊ฐ–๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณ€๊ฒฝํ•ด๋„, ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค.

์›์‹œํƒ€์ž…๊ณผ ๊ฐ์ฒดํƒ€์ž…์˜ ํ• ๋‹น ๋ฐฉ์‹์„ ๊ฐ๊ฐ pass by value, pass by reference ๋ผ๊ณ  ์„ค๋ช…ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ณต์‚ฌํ•˜๊ณ  ์ „๋‹ฌํ•œ๋‹ค๋Š” ์ ์— ์žˆ์–ด์„œ๋Š” ๊ฐ™๋‹ค.

์ฐจ์ด๋Š” '์‹๋ณ„์ž๊ฐ€ ๊ธฐ์–ตํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ฌด์—‡์ด ๋“ค์–ด์žˆ๋А๋ƒ' ์ด๋‹ค.

์ฆ‰, ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์ด ์›์‹œ๊ฐ’์ด๋ƒ ์ฐธ์กฐ๊ฐ’์ด๋ƒ์˜ ์ฐจ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค.


์‚ฌ์‹ค ์›์‹œํƒ€์ž…๊ณผ ๊ฐ์ฒดํƒ€์ž…์˜ ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ ์„ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ์ด์–ด์„œ, ์–ด๋ ต๊ฑฐ๋‚˜ ๋ณต์žกํ•˜์ง€๋„ ์•Š์•˜๊ณ , ๋งŽ์€ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๋Š” ๊ธ€๋„ ์•„๋‹ˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

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

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