๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•
SMALL

์ „์ฒด ๊ธ€123

[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Async ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ชจ๋“  ๊ฒƒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ํŠนํžˆ, ๋„คํŠธ์›Œํฌ ์š”์ฒญ, ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๋“ฑ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ Async์™€ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.โ‰ฃ ๋ชฉ์ฐจ์†Œ๊ฐœ๐Ÿ“š ๊ธฐ๋ณธ ๊ฐœ๋… ๋ฐ ํ‚ค์›Œ๋“œ๐ŸŒŸ Async/Await ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•๐Ÿ› ๏ธ ์‹ค์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€๐Ÿ“ˆ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•๐Ÿ”ง ์ตœ์ ํ™” ๋ฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ ํŒ๐Ÿš€ 01. ์†Œ๊ฐœ๐Ÿ“š ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œ ์–ธ์–ด๋กœ, ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด๋‚˜ ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ฐ™์€ ์ž‘์—…์€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋Ÿฐ ์ž‘์—…์„ ํ•  ๋•Œ๋Š” ๋‹ค๋ฅธ ์ž‘์—…์„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. As.. 2024. 7. 9.
[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํด๋กœ์ € ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ์ดํ•ด๋ถ€ํ„ฐ ์‹ค์ „ ์˜ˆ์ œ๊นŒ์ง€ ์˜ค๋Š˜์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ค‘์š”ํ•œ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ธ ํด๋กœ์ €์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํด๋กœ์ €๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ํด๋กœ์ €์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ์‹ค์ „ ์˜ˆ์ œ๊นŒ์ง€ ์ž์„ธํžˆ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ˆ, ๋๊นŒ์ง€ ํ•จ๊ป˜ ํ•ด์ฃผ์„ธ์š”!โ‰ฃ ๋ชฉ์ฐจ ํด๋กœ์ €์˜ ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ๐Ÿง  ํด๋กœ์ €์˜ ์ฃผ์š” ํŠน์ง•๊ณผ ์žฅ์ ๐ŸŒŸ ์‹ค์ „ ์˜ˆ์ œ๋กœ ๋ฐฐ์šฐ๋Š” ํด๋กœ์ € ํ™œ์šฉ๋ฒ•๐Ÿ’ป ํด๋กœ์ € ์‚ฌ์šฉ ์‹œ ์ฃผ์˜ํ•  ์ โš ๏ธ 01. ํด๋กœ์ €์˜ ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ๐Ÿง  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šค์ฝ”ํ”„์™€ ํด๋กœ์ €์˜ ๊ด€๊ณ„ํด๋กœ์ €๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ๋จผ์ € ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šค์ฝ”ํ”„(scope) ๊ฐœ๋…์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์Šค์ฝ”ํ”„๋Š” ๋ณ€์ˆ˜์˜ ์œ ํšจ ๋ฒ”์œ„๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„์™€ ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šค์ฝ”ํ”„์— ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”๐Ÿ˜""[Java.. 2024. 7. 8.
[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ๊ฐœ๋…๋ถ€ํ„ฐ ์‹ค์ „๊นŒ์ง€! ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜์˜ ์Šค์ฝ”ํ”„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”์ง€๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ๊ณ ๊ธ‰ ์ฃผ์ œ๊นŒ์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.โ‰ฃ ๋ชฉ์ฐจ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๐Ÿ’ก ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ๊ตฌ์„ฑ ์š”์†Œ๐Ÿ” ์ฝ”๋“œ ์‹คํ–‰ ๊ณผ์ •์—์„œ์˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๐Ÿ”„ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์˜ˆ์ œ ์ฝ”๋“œ๐Ÿ–ฅ๏ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌโš™๏ธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์™€ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๐Ÿšง 01. ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๐Ÿ’ก์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์ •์˜์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” ํŠน์ • ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ํ•ด๋‹น ์ฝ”๋“œ์— ๋Œ€ํ•ด ์ƒ์„ฑํ•˜๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ์ƒ์„ฑ๊ณผ์ •์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ์ด๋Š” ํ˜ธ์ถœ ์Šคํƒ(Call Stack)์— ์Œ“.. 2024. 7. 6.
[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ this ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ๊ฐœ๋…๋ถ€ํ„ฐ ํ™œ์šฉ๊นŒ์ง€! JavaScript๋ฅผ ๋ฐฐ์šฐ๋‹ค ๋ณด๋ฉด this๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ž์ฃผ ์ ‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. this๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŠน๋ณ„ํ•œ ํ‚ค์›Œ๋“œ๋กœ, ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๊ฒฐ์ •๋˜๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์˜๋„์น˜ ์•Š๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ this๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€, ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.โ‰ฃ ๋ชฉ์ฐจthis์˜ ๋™์ž‘ ์›๋ฆฌ์™€ ๊ธฐ๋ณธ ๊ฐœ๋…๐Ÿง ๋ฉ”์„œ๋“œ์—์„œ์˜ this ์‚ฌ์šฉ๋ฒ•๐Ÿ’ผ์ฝœ๋ฐฑ ํ•จ์ˆ˜์™€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ์˜ this๐ŸŽ›๏ธํ™”์‚ดํ‘œ ํ•จ์ˆ˜์—์„œ์˜ this๐Ÿ“this๋ฅผ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ๐Ÿ”ง์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ this๋Š” ํ•จ์ˆ˜ ๋‚ด์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜์™€ ๊ด€๋ จ๋œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”๐Ÿ˜""[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ์ดˆ๋ณด์ž๋ฅผ .. 2024. 7. 5.
[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šค์ฝ”ํ”„ ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ๊ณ ๊ธ‰๊นŒ์ง€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ์žˆ์–ด์„œ '์Šค์ฝ”ํ”„'๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์Šค์ฝ”ํ”„๋ฅผ ์ดํ•ดํ•˜๋ฉด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ , ๋ฒ„๊ทธ๋ฅผ ์ค„์ด๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šค์ฝ”ํ”„์— ๋Œ€ํ•ด ๊ธฐ์ดˆ๋ถ€ํ„ฐ ๊ณ ๊ธ‰๊นŒ์ง€ ์ฒด๊ณ„์ ์œผ๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.โ‰ฃ ๋ชฉ์ฐจ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šค์ฝ”ํ”„๋ž€โ“์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šค์ฝ”ํ”„์˜ ์ข…๋ฅ˜๐Ÿ—‚๏ธ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ์Šค์ฝ”ํ”„๐Ÿ“์Šค์ฝ”ํ”„ ์ฒด์ธ(Scope Chain)๐Ÿ”—ํ˜ธ์ด์ŠคํŒ…(Hoisting)โฌ†๏ธ์Šค์ฝ”ํ”„ ๊ด€๋ จ ์ฃผ์˜์‚ฌํ•ญโš ๏ธ01. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šค์ฝ”ํ”„๋ž€โ“์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์Šค์ฝ”ํ”„(scope)๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์œ ํšจ ๋ฒ”์œ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์™€ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ, ์Šค์ฝ”ํ”„๋ฅผ ์ž˜ ์ดํ•ดํ•ด์•ผ ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋Š” ์ฃผ๋กœ ์ „์—ญ ์Šค์ฝ”ํ”„์™€ ์ง€์—ญ ์Šค์ฝ”ํ”„ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์Šค์ฝ”ํ”„.. 2024. 7. 4.
[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ ์ดํ•ดํ•˜๊ธฐ: ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ๋ฐฉ๋ฒ• ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.โ‰ฃ ๋ชฉ์ฐจํ”„๋กœํ† ํƒ€์ž…์˜ ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ๐Ÿ“šํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์ด๋ž€?๐Ÿ”—ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์˜ ํ™œ์šฉ ๋ฐฉ๋ฒ•๐Ÿ› ๏ธํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์˜ ๋ฌธ์ œ์  ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๐Ÿง์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”๐Ÿ˜""[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ์„ ์–ธ, ์‚ฌ์šฉ๋ฒ•, ๋ณต์‚ฌ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ์ฒด(Object)๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๊ตฌ์กฐ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ๊ณ ๊ธ‰ ํ™œcreativevista.tistory.com01. ํ”„.. 2024. 7. 3.
[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์™€ new ํ‚ค์›Œ๋“œ: ์‹ค์ˆ˜ ๋ฐฉ์ง€ ํŒ๊ณผ ์‚ฌ์šฉ ์˜ˆ์ œ JavaScript์—์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ˆ˜๋กœ new ํ‚ค์›Œ๋“œ๋ฅผ ๋น ๋œจ๋ฆฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ํŒ๊ณผ ํ•จ๊ป˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์™€ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ์ฐจ์ด์ ์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.โ‰ฃ ๋ชฉ์ฐจ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ž€?๐Ÿง‘‍๐Ÿ’ปnew ํ‚ค์›Œ๋“œ์˜ ์—ญํ• ๐Ÿ†•new.target์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ˆ˜ ๋ฐฉ์ง€๐Ÿ›ก๏ธ์˜ˆ์ œ ์ฝ”๋“œ์™€ ์„ค๋ช…๐Ÿ“ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์™€ new ํ‚ค์›Œ๋“œ๐Ÿšซ01. ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ž€?๐Ÿง‘‍์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŠน๋ณ„ํ•œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ์ด๋ฆ„์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ, this ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”๐Ÿ˜""[Javascri.. 2024. 7. 2.
[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Immutable Object ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ์„ฑ๋Šฅ ํ–ฅ์ƒ๊ณผ ๋ถˆ๋ณ€์„ฑ ์œ ์ง€ ๋น„๋ฒ• ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ Immutable Object(๋ถˆ๋ณ€ ๊ฐ์ฒด)๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ๊ณผ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ์ž‘์„ฑ์„ ์œ„ํ•ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด์˜ ์ •์˜์™€ ํ•„์š”์„ฑ, ์ƒ์„ฑ ๋ฐฉ๋ฒ• ๋“ฑ์„ ์ƒ์„ธํžˆ ๋‹ค๋ฃน๋‹ˆ๋‹ค. Object.freeze(), Object.seal(), Object.preventExtensions() ๋“ฑ์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์‹ค์ œ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์•Œ์•„๋ณด์„ธ์š”. ์ด ๊ธ€์„ ํ†ตํ•ด ๋ถˆ๋ณ€ ๊ฐ์ฒด์˜ ์žฅ์ ์„ ์ดํ•ดํ•˜๊ณ , ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.โ‰ฃ ๋ชฉ์ฐจ Immutable Object๋ž€ ๋ฌด์—‡์ธ๊ฐ€?๐Ÿค”์™œ Immutable Object๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€?๐Ÿ’กImmutable Object ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๐Ÿš€๋ถˆ๋ณ€ ๊ฐ์ฒด์™€ ๊ฐ€๋ณ€ ๊ฐ์ฒด์˜ ์ฐจ์ด์ ๐Ÿ”„์‹ค์ œ ์˜ˆ์ œ ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” Immuta.. 2024. 7. 1.
[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Property Attribute ์™„๋ฒฝ ์ •๋ฆฌ: ์ดํ•ด์™€ ํ™œ์šฉ ๋ฐฉ๋ฒ• ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Property Attribute์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์˜ ๋ชฉํ‘œ๋Š” Property Attribute์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ , ๋‹ค์–‘ํ•œ ํ™œ์šฉ ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๊ผญ ์•Œ์•„์•ผ ํ•  ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋‹ˆ, ๋๊นŒ์ง€ ์ฝ์–ด์ฃผ์„ธ์š”!โ‰ฃ ๋ชฉ์ฐจProperty Attribute๋ž€?๐Ÿ“šData Property Attributes๐Ÿ’พAccessor Property Attributes๐Ÿ”„Property Attribute์˜ ํ™œ์šฉ๐Ÿ› ๏ธ์†์„ฑ ๊ธฐ์ˆ ์ž(Property Descriptor) ํ™•์ธํ•˜๊ธฐ๐Ÿ”์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ Property Attribute๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์ „์— ๊ฐ์ฒด์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋จผ์ € ํ™•์ธํ•ด ์ฃผ์„ธ์š”๐Ÿ˜""[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ์„ ์–ธ, ์‚ฌ์šฉ๋ฒ•, ๋ณต์‚ฌ.. 2024. 6. 29.
[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ super์™€ override ์™„๋ฒฝ ์ดํ•ดํ•˜๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)์„ ์ง€์›ํ•˜๋ฉฐ, ์ด๋Š” ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•ต์‹ฌ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ƒ์†(inheritance)์ด๋ฉฐ, ์ด๋•Œ super์™€ override๊ฐ€ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” super์™€ override์˜ ๊ฐœ๋…๊ณผ ์‚ฌ์šฉ๋ฒ•์„ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•œ ๋‹จ๊ณ„ ๋” ๊นŠ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.โ‰ฃ ๋ชฉ์ฐจsuper ํ‚ค์›Œ๋“œ์˜ ๊ฐœ๋…๊ณผ ํ™œ์šฉ๐Ÿ’กoverride(์˜ค๋ฒ„๋ผ์ด๋“œ)์˜ ๊ฐœ๋…๊ณผ ํ™œ์šฉ๐Ÿ”„super์™€ override๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ๐ŸŽฏ๊ฒฐ๋ก  ๋ฐ ์š”์•ฝ๐Ÿ“š์ƒ์†์— ๊ด€ํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”๐Ÿ˜""[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ]javascript ์ƒ์† ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ์‹ค์ „ .. 2024. 6. 28.
728x90
๋ฐ˜์‘ํ˜•