๐Ÿ’ปDEV-STUDY

"์ปดํฌ๋„ŒํŠธ"๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๋Š์Šจํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋œ ์œ ๋‹›์œผ๋กœ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.const element = Hello, world!;"์œ„์— ํฌํ•œํ•œ ํƒœ๊ทธ ๋ฌธ๋ฒ•์€ ๋ฌธ์ž์—ด๋„, HTML๋„ ์•„๋‹™๋‹ˆ๋‹ค." React๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ง€๋งŒ, ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ ์ค‘์—์„œ๋„ JSX ๋ฌธ๋ฒ•, ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ, Virtual DOM(VDOM), ๋ Œ๋” ์‚ฌ์ดํด์ด React์˜ ์ฃผ์š” ํŠน์ง•์ด๋‹ค. JSX ๋ฌธ๋ฒ•JSX๋Š” JavaScript XML ๋˜๋Š” JavaScript Syntax Extension์œผ๋กœ ๋ถˆ๋ฆฐ๋‹ค. JSX๋Š” JavaScript์™€ XML(๋˜๋Š” HTML)์š”์†Œ๋ฅผ ๊ฒฐํ•ฉํ•œ ๋ฌธ๋ฒ•์œผ๋กœ, React์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ JavaScript ์ฝ”๋“œ ๋‚ด์—์„œ HTML ์š”์†Œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งˆํฌ์—…๊ณผ..
์›น ํ”„๋ก ํŠธ์—”๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋ ˆ์ž„์›Œํฌ, React์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณต์žกํ•œ ์ƒํƒœ๊ณ„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ทธ ์ž์ฒด๋กœ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹Œ ์–ธ์–ด์— ๋ถˆ๊ณผํ•˜๋‹ค. ์›น ๊ฐœ๋ฐœ์˜ ๋ชฉ์ ์— ๋”ฐ๋ผ ์ˆ˜๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์„œ๋กœ ์ตœ๊ณ ๋ผ๊ณ  ์ฃผ์žฅํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๋“ค์ด ๋งค๋ฒˆ ์ƒˆ๋กญ๊ฒŒ ์ถœํ˜„ํ•˜๊ณ ์žˆ๋‹ค.React.js๋„ ์ด๋Ÿฌํ•œ ๋ฐฐ๊ฒฝ์—์„œ ๋“ฑ์žฅํ•œ ์›น ํ”„๋ก ํŠธ์—”๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ํŠนํžˆ, React๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์œ„์น˜๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ, ์‚ฌ์‹ค์ƒ Java์ฒ˜๋Ÿผ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์— ํ‘œ์ค€์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ์‹œ์ž‘์— ์•ž์„œ ์ด์ „์— ํฌ์ŠคํŒ…ํ•œ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์ž. (์˜ˆ์ „ ์ž‘์„ฑ ๊ธ€์ด๋ผ ๊ฐ€๋…์„ฑ์ด ๋ณ„๋กœ ์•ˆ์ข‹์•„์„œ ์ด ๊ธ€์—์„œ ๋‹ค์‹œ ์ •๋ฆฌ)https://1000sang-dev.tistory.com/13 ํ”„๋ก ํŠธ ์›น ๊ฐœ๋ฐœ์˜ ํ•„์ˆ˜ ๊ฐœ๋…: ์ž๋ฐ”์Šคํฌ๋ฆฝ..
"ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ๊ฐ€ ๋‹ค์ˆ˜์˜ DOM ๋ณ€๊ฒฝ" ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ Rerendering์›น ํŽ˜์ด์ง€์˜ ๋ Œ๋”๋ง์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ํ™”๋ฉด์„ ๋ฐ”๊พธ๋Š” ์ž‘์—…์ด๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•  ๋•Œ, ์›น ํŽ˜์ด์ง€์˜ ํ™”๋ฉด์ด ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝ๋ ๊นŒ ? 1. Javascript๋ฅผ ํ†ตํ•œ HTML(DOM) ์ง์ ‘ ์กฐ์ž‘์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด HTML์˜ DOM์„ ์ง์ ‘ ์กฐ์ž‘ํ•˜์—ฌ ํŽ˜์ด์ง€์˜ ๋‹ค์–‘ํ•œ ์š”์†Œ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.์ด๋ฅผ ํ†ตํ•ด ํ™”๋ฉด์— ๋‹ค์–‘ํ•œ ๋ณ€ํ™”๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” DOM์„ ์กฐ์ž‘ํ•˜์—ฌ ํ™”๋ฉด์„ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. ํ™”๋ฉด์˜ ํŠน์ • ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜์—ฌ ํŽ˜์ด์ง€์˜ ์š”์†Œ๋“ค์„ ์ง์ ‘ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ Javascript๋ฅผ ํ†ตํ•ด ์ง์ ‘ DOM์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋‹จ์ ๋“ค์ด ์žˆ๋‹ค.HTML(DOM) ์š”์†Œ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ์ง์ ‘ ์กฐ์ž‘์„ ๊ฐ€ํ•ด์•ผํ•œ๋‹ค..
JavaScript ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด๋กœ, ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ํ†ตํ•ด ๋ณ‘๋ ฌ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ด ๋ณด์ด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ I/O ์ž‘์—…(๋„คํŠธ์›Œํฌ ์š”์ฒญ, ํŒŒ์ผ ์ฝ๊ธฐ ๋“ฑ)์ด๋‚˜ ํƒ€์ด๋จธ์™€ ๊ฐ™์€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.  ๋™๊ธฐ์ (Synchronous) ์ฒ˜๋ฆฌ : ํ•˜๋‚˜์˜ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹. ์ฆ‰ ์ž‘์—…์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. console.log("Start");for (let i = 0; i ์œ„ ์ฝ”๋“œ๋Š” `for`๋ฃจํ”„๊ฐ€ ๋๋‚  ๋•Œ ๊นŒ์ง€ ๋‹ค๋ฅธ ์ž‘์—…์ด ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ์ฆ‰, "End"๊ฐ€ ์ถœ๋ ฅ๋˜๊ธฐ ์ „๊นŒ์ง€ ๋ชจ๋“  ์ž‘์—…์ด ๋ฉˆ์ถ˜ ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•˜๊ฒŒ ๋œ๋‹ค. CPU๋ฅผ ๋…์ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ธด ์ž‘..
ํ•„๋“œ + ๋ฉ”์„œ๋“œ๊ฐ์ฒด = ํ•„๋“œ + ๋ฉ”์„œ๋“œ (ํ”„๋กœํผํ‹ฐ ์ง‘ํ•ฉ)์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ์ฒด๋Š” ํ•„๋“œ(๋ฐ์ดํ„ฐ)์™€ ๋ฉ”์„œ๋“œ(๋™์ž‘)๋ฅผ ํฌํ•จํ•œ ํ”„๋กœํผํ‹ฐ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ •์˜๋œ๋‹ค.HTML (DOM) ๊ฐ์ฒด: ์š”์†Œ(Element = ๊ฐ์ฒด) = ์†์„ฑ(Attribute = ํ”„๋กœํผํ‹ฐ) + Content์š”์†Œ: ``์†์„ฑ: ``๋ฉ”์„œ๋“œ ํ‘œํ˜„๋ฒ•: Default & Shorten์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 1.  Default(๊ธฐ๋ณธ) ํ‘œํ˜„๋ฒ•var person = { name: "CheonSang", sayName: function() } console.log(this.name); }};`sayName` ๋ฉ”์„œ๋“œ๋Š” `function` ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋œ๋‹ค.2. Shorten(๊ฐ„๋žต) ํ‘œํ˜„๋ฒ• (ES..
๋ฉด์ ‘ ๋‹จ๊ณจ ์งˆ๋ฌธ"this"๋ฉด์ ‘ ๋‹จ๊ณจ ์งˆ๋ฌธ ์ค‘ ํ•˜๋‚˜์ธ "ํ•จ์ˆ˜ ๋‚ด `this`์™€ ๋ฉ”์„œ๋“œ ๋‚ด `this`์˜ ์ฐจ์ด"์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋ฉด์„œ JS์—์„œ `this` ๋ฐ”์ธ๋”ฉ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ๊นŠ์ด ์‚ดํŽด๋ณด๊ฒ ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋Š” ํฌ๊ฒŒ ์ผ๋ฐ˜ ํ•จ์ˆ˜์™€ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๋‘˜์€ `this` ๋ฐ”์ธ๋”ฉ ๋ฐฉ์‹์—์„œ ํฐ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.์ผ๋ฐ˜ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜๋กœ๋„ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ณ , ๋ฉ”์„œ๋“œ๋กœ๋„ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.์ผ๋ฐ˜ ํ•จ์ˆ˜ ํ‘œํ˜„์‹ ๋‚ด `this`: ๋™์  ๋ฐ”์ธ๋”ฉ (Dynamic  Scope)์ผ๋ฐ˜ ํ•จ์ˆ˜์˜ `this`๋Š” ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ์˜ ์ปจํ…์ŠคํŠธ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค.์ฆ‰, ๋™์  ๋ฐ”์ธ๋”ฉ์ด ์ด๋ฃจ์–ด์ง€๋ฉฐ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ ๊ฐ์ฒด์— ๋”ฐ๋ผ `this`๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. ํ•จ์ˆ˜: ์ „์—ญ์—์„œ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜ ๋‚ด `this` → ๋ฌด์ง€์„ฑ window(global)function ..
function func() { }const func =  () => { };์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ์ž‘์„ฑ ๋ฐฉ๋ฒ•ํ•จ์ˆ˜ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ด 3๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ–ˆ๋‹ค. 1. ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ (Function Declaration)2. ํ•จ์ˆ˜ ํ‘œํ˜„์‹ (Function Expression)3. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ (Arrow Function) ๊ทธ ๋ฐ–์— ์ถ”๊ฐ€์ ์ธ ๋‚ด์šฉ์€ ํฌ์ŠคํŒ…์— ๋‹ด๋„๋ก ํ•  ์˜ˆ์ •์ด๋‹ค. ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ(Function Declaration)๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜ ์ž‘์„ฑ ๋ฐฉ๋ฒ•์œผ๋กœ, `function ํ•จ์ˆ˜๋ช…() { }`์„ ์‚ฌ์šฉํ•˜๋ฉฐ ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์„ ํ†ตํ•ด ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์–ด๋””์„œ๋“  ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•˜๋‹ค.ํ•จ์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์ด ์ผ์–ด๋‚œ๋‹ค. →ํ•จ์ˆ˜ ์„ ์–ธ ์ „์— ํ˜ธ์ถœ ๊ฐ€๋Šฅ.example() // ํ•จ์ˆ˜ ํ˜ธ์ด์ŠคํŒ… function example() { console.log('..
Execution Context์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด์•„๋‹ˆ๋ผ, ์‚ฌ์‹ค์ƒ ํ•จ์ˆ˜์˜ ์‹คํ–‰ ๋ฐฉ์‹๊ณผ ๋น„์Šทํ•œ ์›๋ฆฌ๋กœ ์ž‘๋™ํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๊ตฌ๋™ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ๋‹ค.Creation (Pre-parsing) Phase: ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ๋ถ„์„ํ•˜๊ณ  ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์˜ˆ์•ฝํ•œ๋‹ค.Execution Phase: ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ  ํ•จ์ˆ˜๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰๋œ๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ๊ตฌ์„ฑ: Stack + Heap์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ Stack + Heap ๋‘๊ฐœ๋งŒ ๊ธฐ์–ตํ•˜๋ฉด ๋œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ๋™์ž‘์›๋ฆฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‘๊ฐœ๋งŒ ๊ธฐ์–ตํ•˜์ž.Stack(์Šคํƒ): ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ˆœ์„œ๋Œ€๋กœ ํ•จ์ˆ˜๊ฐ€ ์ €์žฅ๋˜๊ณ  ์‹คํ–‰๋˜๋Š” ๊ณต๊ฐ„ = ์‹คํ–‰ ์ปจํ…์Šค..
1000_sang
'๐Ÿ’ปDEV-STUDY' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (6 Page)