"์ปดํฌ๋ํธ"๋ผ๊ณ ๋ถ๋ฅด๋ ๋์จํ๊ฒ ์ฐ๊ฒฐ๋ ์ ๋์ผ๋ก ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค.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(์คํ): ํจ์ ํธ์ถ ์์๋๋ก ํจ์๊ฐ ์ ์ฅ๋๊ณ ์คํ๋๋ ๊ณต๊ฐ = ์คํ ์ปจํ
์ค..