Private
ํ๋ก ํธ์๋ ๋ฉด์ ๋ชจ์๋ณด๊ธฐ1
1. Sync, Async์ ์ฐจ์ด์ (๋๊ธฐ, ๋น๋๊ธฐ์ ์ฐจ์ด์ )์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.Sync๋ ์์ ์์ฒญ์ด ์ด๋ค์ง๊ณ , ์์ฒญ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. Async๋ ํน์ ํ ์์ฒญ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค์ ์์ ์ ์ํํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๊ธ์ค๋ ๋์ด๊ธฐ ๋๋ฌธ์ ์์ฒญ๋ ์์ ์ ํ๋์ฉ ์ํํ์ง๋ง setTimeout์ด๋ fetch๊ณผ ๊ฐ์ Web API๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ๋ฉ๋๋ค. 2. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์๋ฆฌ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง ์์์ ๋์ํ๋๋ฐ์, ๋ํ์ ์ผ๋ก ๊ตฌ๊ธ์ V8์์ง์ด ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ฉ๋ชจ๋ฆฌํ๊ณผ ์ฝ์คํ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ์ ๋ณ์, ํจ์ ๋ฑ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ ๊ณต๊ฐ์ ๋๋ค. ์ฝ์คํ์๋ ์๋ฐ์คํฌ๋ฆฝ..
ํ๋ก ํธ์๋ ๋ฉด์ (๋ฐฐ์ด)
1. ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ์์๊ฐ ์๋ ๋ฆฌ์คํธ ํํ์ ๋ฐฐ์ด์ ๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ฌ ๊ฐ์ ํ๋์ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅํ ์ ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ๋์ ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ง์ ํด ๋์ง ์์๋ ๋๋ฉฐ, ์์๋ฅผ ์์ ๋กญ๊ฒ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์์๋ฅผ ์ถ๊ฐํ ๋๋ง๋ค ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์๋์ผ๋ก ์กฐ์ ๋๋ ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค. ๋ํ ๋ฐฐ์ด์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด์ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌ๋ฉ๋๋ค. ํด์ ํ ์ด๋ธ๊ณผ ๊ฐ์ ํํ๋ก ๊ตฌํ๋์ด ์์ด, ๋ฐฐ์ด ์์๋ค์ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ฐ์์ ์ด์ง ์์๋ ๋๊ณ , ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ง์ ํ์ง ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.๋ง์ง๋ง์ผ๋ก ๋ด์ฅ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์ฝ๊ฒ ์กฐ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด reduce, map ๋ฑ์ ๋ฉ์๋๊ฐ ์กด์ฌํฉ๋๋ค.์ ๋ฆฌํ..
ํ๋ก ํธ์๋ ๋ฉด์ (์์กด์ฑ๋ฐฐ์ด)
1. useEffect ์ฌ์ฉ ์ ์์กด์ฑ ๋ฐฐ์ด์ ๋น ๋ฐฐ์ด์ ๋ฃ๋ ๊ฒ์ ์ง์ํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์?useEffect๋ ์์กด์ฑ ๋ฐฐ์ด๋ก ์ ๋ฌํ ๊ฐ์ ๋ณ๊ฒฝ์ ์ํด ์คํ๋์ผ ํ๋ ํ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์กด์ฑ ๋ฐฐ์ด์ ๊ฐ์ ์ ๋ฌํ์ง ์๊ณ ๋จ์ํ ์ต์ด ๋ ๋๋ง ๋ ํ ๋ฒ ์คํํ๋๋ก ํ๋ค๋ฉด ์ด ์ฝ๋ฐฑ ํจ์๋ก ์ธํด ๋ฐ์ํ๋ ๋ถ์ ํจ๊ณผ๊ฐ ์ค์ ๋ก ๊ด์ฐฐํด์ ์คํ๋ผ์ผ ํ๋ ๊ฐ๊ณผ๋ ๋ณ๊ฐ๋ก ์๋ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฐฐ์ด์ ๋ฃ๋ ๊ฒ์ useEffect ํ ์ ์ทจ์ง์ ๋ง์ง ์์ต๋๋ค.
ํ๋ก ํธ์๋ ๊ธฐ์ ๋ฉด์ (heap, CI/CD)
1. ํ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.ํ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ์ฉ๋๋ฉฐ, ํ๋ก๊ทธ๋จ ์คํ ์ค์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ํ์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ด๋ฆฌํด์ผ ํ๋ฉฐ, ์ฌ์ฉ์ด ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋ช ์์ ์ผ๋ก ํด์ ํด์ผ ํฉ๋๋ค.2. CI/CD์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์."์ง์์ ์ธ ํตํฉ/์ง์์ ์ธ ์๋น์ค ์ ๊ณต ๋๋ ๋ฐฐํฌ CI(Continuous Integration)/CD(Continuous Delivery, Continuous Deployment)"์ ์ฝ์์ ๋๋ค.`์ง์์ ์ธ ํตํฉ(CI)`์ ์ฝ๋ ๋ณ๊ฒฝ์ฌํญ์ ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ๋ฅผ ๊ฑฐ์ณ ๊ณต์ ๋ ํฌ์งํ ๋ฆฌ์ ํตํฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํ์ ์์ ๋ฐ์ํ ์ ์๋ conflict๋ฅผ ์์๋ก ํ์ธํ๊ณ ํด๊ฒฐ์ด ๊ฐ๋ฅํ๋ฉฐ, ์๋ก์ด ์ ๋ฐ์ดํธ์ ํ ์คํธ์ ์ถ์ ์๊ฐ์ ๋จ์ถ์ํฌ ์ ์์ต๋๋ค.`์ง์์ ์ธ ..
ํ๋ก ํธ์๋ ๋ฉด์ (script ์ฝ๋์ ์์น)
1. ์ฝ๋๋ ํ๊ทธ์ ํ๊ทธ ์ค์ ์ด๋์ ๋ค์ด๊ฐ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์์ง ๋ณธ์ธ์ ์๊ฐ์ ๋งํด์ฃผ์ธ์.์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ํฌ๊ธฐ์ ์ฌ์ฉ์ฑ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ง๋ง ํ์ผ์ ํฌ๊ธฐ์ ์ฌ์ฉ์ฑ์ด ๋น์ทํ๋ค๋ฉด ํ๊ทธ ์ ์ผ ํ๋จ์ ๋ค์ด๊ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ ๋๋ง ์์ง์ HTML์ ์ฝ์ด DOM์ ์์ฑํฉ๋๋ค. ์์ฑ์ค script ํ๊ทธ๋ฅผ ๋ง๋๊ฒ ๋๋ฉด ์ฝ๋ ํ์ฑ ์ ์ด๊ถ์ด ๋ ๋๋ง ์์ง์์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ผ๋ก ๋์ด๊ฐ๊ฒ ๋ฉ๋๋ค. (์ด๋ฅผ blocking์ด ์ผ์ด๋ฌ๋ค๊ณ ๋ ํฉ๋๋ค) ์ดํ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ฑ๊ณผ ์คํ์ด ์ข ๋ฃ๋๋ฉด ๋ค์ ๋ ๋๋ง ์์ง์ผ๋ก ์ ์ด๊ถ์ด ๋์ด๊ฐ HTML ํ์ฑ์ด ์ค๋จ๋ ์์ ๋ถํฐ ๋ค์ DOM ์์ฑ์ ์์ํฉ๋๋ค.๊ฒฐ๊ตญ ์ฝ๋๋ฅผ ๋ง๋๊ฒ ๋๋ฉด ์์์ ์๋๋ก ๋๊ธฐ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ํ์ฑ์ด ์ค๋จ๋๋ค๋ ์๋ฏธ์ด๊ณ ๋ธ๋กํน๋๋ ๊ฒ์ DOM ์์ฑ์ ์ง์ฐ์ํฌ ์..
ํ๋ก ํธ์๋ ๋ฉด์ (render, commit๋จ๊ณ)
1. ๋ฆฌ์กํธ์ render phase์ commit phase์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.๋ฆฌ์กํธ์ ๋๋๋ง ๊ณผ์ ์ render phase๊ณผ commit phase๋ก ๋๋ฉ๋๋ค. render phase์์๋ DOM์ ๊ทธ๋ ค์ง ์์๋ค์ ํ์ ํ๋ ๋จ๊ณ์ ๋๋ค. ์ด๋ ์ฌ์กฐ์ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋ฉ๋๋ค. ์ฌ์กฐ์ ๊ณผ์ ์์ ์ด์ ์ ์์ฑํ ๊ฐ์ DOM ํธ๋ฆฌ์ ์๋ก ๋ง๋ ๊ฐ์ DOM ํธ๋ฆฌ๋ฅผ ๋น๊ตํด์ ์ค์ DOM ํธ๋ฆฌ์ ๋ฐ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ ์ ๋ฐ์ดํธ๊ฐ ๋ฐ์ํ ์ปดํฌ๋ํธ๋ฅผ ํธ์ถํด ์๋ก์ด ๊ฐ์ DOMํธ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค.๋ค์์ผ๋ก commit phase์์๋ render phase์์ ์งํํ ๋ ๊ฐ์ DOMํธ๋ฆฌ์ ๋ณํ๋ฅผ ์ค์ DOM์ ์ ์ฉํ๋ ๋จ๊ณ์ ๋๋ค. ์์ฝํด์ render phase๋ ๋ณ๊ฒฝ๋ ์ฌํญ์ ํ์ ํ๋ ๋จ๊ณ์ด๊ณ , com..
ํ๋ก ํธ์๋ ๋ฉด์ (hydrate, render)
1. hydrate๋ ๋ฌด์์ธ์ง์ render์์ ์ฐจ์ด์ ์ ์ค๋ช ํด์ฃผ์ธ์.hydrateํจ์๋ ์์ฑ๋ HTML ์ฝํ ์ธ ์ ์๋ฐ์คํฌ๋ฆฝํธ ํธ๋ค๋ฌ๋ ์ด๋ฒคํธ๋ฅผ ๋ถ์ด๋ ์ญํ ์ ํฉ๋๋ค.render์์ ์ฐจ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.hydrate๋ ์ด๋ฏธ ๋ ๋๋ง๋ HTML์ด ์๋ค๋ ๊ฐ์ ํ์ ์ด ๋ ๋๋ง๋ HTML์ ๊ธฐ์ค์ผ๋ก ์ด๋ฒคํธ๋ฅผ ๋ถ์ด๋ ์์ ๋ง ์ํํฉ๋๋ค. ํ์ง๋ง render๋ ๋น HTML์ ์ ๋ณด๋ฅผ ์์๋ค์ ๋ ๋๋งํ๋ฉฐ ์ฌ๊ธฐ์ ์ด๋ฒคํธ๋ฅผ ๋ถ์ด๋ ์์ ๊น์ง ๋ชจ๋ ํ ๋ฒ์ ์ํํฉ๋๋ค.
ํ๋ก ํธ์๋ ๋ฉด์ (ํด๋์ค)
1. ์๋ฐ์คํฌ๋ฆฝํธ ES6์์ ํด๋์ค๋ ๋ฌด์์ธ๊ฐ์?ํด๋์ค๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ํน์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋ณ์์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ์ผ์ข ์ ํ๋ก, ๊ฐ์ฒด๋ฅผ ์ ์ํ๊ธฐ ์ํ ์ํ(๋ฉค๋ฒ ๋ณ์)์ ๋ฉ์๋(ํจ์)๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ES6์์ ํด๋์ค๋ ํจ์์ ํ ์ข ๋ฅ์ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ํจ์์ ๋์ผํ๊ฒ ํด๋์ค ์ ์ธ(Class declarations)๊ณผ ํด๋์ค ํํ(Class expressions)์ผ๋ก ํด๋์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
ํ๋ก ํธ์๋ ๋ฉด์ (๋ธ๋ผ์ฐ์ ๋ ๋๋ง)
1. ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.- ์๊ณ ์๋ ๋ด์ฉ ๋จผ์ ๋ธ๋ผ์ฐ๋๋ HTML์ ํ์ฑํ์ฌ document object model, ์ฆ DOM์ ์์ฑํฉ๋๋ค. ์ด๋ css ํ์ผ์ ๋ง๋๋ฉด DOM์์ฑ์ ์ ์ ์ค๋จํ๊ณ ํ์ฑํ์ฌ CSSOM์ ์์ฑํ๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ง๋๋ฉด ์ญ์ DOM์์ฑ์ ์ค๋จํ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฑํฉ๋๋ค. ๋ชจ๋ ์ฝ๋๋ฅผ ํ์ฑํ๋ฉด DOM๊ณผ CSSOM์ ํฉ์ณ ๋ ๋ํธ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋ ์ด์์๊ณผ ํ์ธํธ ๊ณผ์ ์ด ์งํ๋๋ฉฐ ์นํ์ด์ง๋ฅผ ๊ทธ๋ฆฌ๋ ์์ผ๋ก ๋ ๋๋ง์ด ์งํ๋ฉ๋๋ค. - ๋งค์ผ๋ฉ์ผ๋ก ๋ณด์ถฉํ ๋ด์ฉ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์นํ์ด์ง๋ฅผ ํ๋ฉด์ ํ์ํ๊ธฐ ์ํด ๊ฑฐ์น๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค. ์ ๋ ์ด ๊ณผ์ ์ 5๋จ๊ณ๋ก ๋๋ ์ค๋ช ํด๋ณด๊ฒ ์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ก DOMํธ๋ฆฌ ์์ฑ ๋จ๊ณ์ ๋๋ค..