ํ์คํ ๊ฐ๋ฐ์ ํ์ํ์ ๋๋ค.
์ ํ๋ธ: https://www.youtube.com/@hoony_han
Courses
Reviews
- Frontend Masterclass
- Frontend Masterclass
- Frontend Masterclass
- Frontend Masterclass
- Frontend Masterclass
Posts
Q&A
๋ฐฐํฌ ๊ด๋ จ ๋ด์ฉ ์ถ๊ฐ๋ ์์ ์ด ์์๊น์?
์๋ ํ์ธ์ Eun๋ ์์ ๋ ๊ฐ์ ์ถ๊ฐ๋ ์์ต๋๋ค. ๋ฐฐํฌ๋ ๋ฐ์ค์ต์ค ์์ญ์ด๋ผ๊ณ ๋ณด๊ณ ํ๋ก ํธ์์ ๊ตณ์ด ๋ค๋ฃจ์ง ์์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 27
Q&A
ํ์ต์๋ฃ๋ ๋ฐ๋ก ๊ณต์ ๊ฐ ์๋๋๊ฑด๊ฐ์?
์๋ ํ์ธ์ ์๋ฏผ๋, ๊ฐ์ ์ค๋ช ๋์ ๋ณด์๋ฉด ๋์ค๋๋ฐ 1๊ฐ์ ๊ฐ์ ์๋ฃ ๋งํฌ ์์ต๋๋ค!
- 0
- 2
- 32
Q&A
์ด๋ฒคํธ ๋ฃจํ ์คํ ๊ด๋ จ
์๋ ํ์ธ์ ๋๊ตฐ๋. ๋จ์ํ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋์ด ์ค์ ์์คํ ์์ ์ฌ๋ ๊น์ ์ดํด๋ฅผ ์ํด ๊ณ ๋ฏผ์ ๋ง์ด ํด๋ณด์ ๊ฑฐ ๊ฐ๋ค์. ์ ๋ง ํ๋ฅญํ ์์ธ๋ผ ์๊ฐํฉ๋๋ค. ์ง๋ฌธ์ ๋ํด ๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด macroTask()๋ randeringPipelineTask()๊ฐ ์์ฒญํ ๋ธ๋ผ์ฐ์ ์ ํ์ธํธ(Paint) ์์ ์ด ์์ ํ ์๋ฃ๋ ํ์ ์คํ๋ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ต๋๋ค. ์ด์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ด๋ฒคํธ ๋ฃจํ์ ๋ช ํํ ์๋ ์์ ๋๋ถ์ ๋๋ค.์ง๋ฌธํ์ mySchedule ๋ฉ์๋ ์๋๋ฆฌ์ค๋ฅผ ์ด๋ฒคํธ ๋ฃจํ ์ฃผ๊ธฐ ๊ด์ ์์ ๋ถ์ํด ๋ณด๊ฒ ์ต๋๋ค.const mySchedule = async () => { await randeringPipelineTask(); // โ ๋๋๋งํ์ดํ๋ผ์ธ (โ ํ ํ๋ ์์ ์์ ) await macroTask(); // โก ๋งคํฌ๋ก ํ์คํฌ }randeringPipelineTask()๊ฐ ์๋ฃ๋๊ณ Promise๊ฐ resolve๋ ๋๊น์ง JS ์์ง์ ๋๊ธฐํฉ๋๋ค.์ด ๋๊ธฐ ์๊ฐ ์ฌ์ด์ ๋ธ๋ผ์ฐ์ ๋ ๋ ๋๋ง ์ ๋ฐ์ดํธ๋ฅผ ์ํํฉ๋๋ค.randeringPipelineTask()๊ฐ resolve๋๊ณ , ๊ทธ ์ฝ๋ฐฑ(macroTask()๋ก ์ด๋ํ๋ ๋ก์ง)์ด Microtask Queue๋ก ๋ค์ด๊ฐ๋๋ค.์ด Microtask Queue๊ฐ ๋น์์ง ํ, ๋ธ๋ผ์ฐ์ ๋ ๋ ๋๋ง ํ์ดํ๋ผ์ธ(Layout, Paint)์ ์ํํฉ๋๋ค.๋ ๋๋ง์ด ์๋ฃ๋ ํ, ์ด๋ฒคํธ ๋ฃจํ๋ ๋ค์ Macrotask๋ฅผ ํ์์ ๊บผ๋ด ์ฝ์คํ์ผ๋ก ๋ฃ์ต๋๋ค.ํต์ฌ์ ์ด๋ฒคํธ ๋ฃจํ๋ ๋งค ์ฃผ๊ธฐ๋ง๋ค ๋ฐ๋์ ๋ ๋๋ง์ ์ฒ๋ฆฌํ ํ์ ๋ค์ ๋งคํฌ๋กํ์คํฌ๋ฅผ ์ฒ๋ฆฌํ๋ค๋ ์ ์ ๋๋ค. ๋ฐ๋ผ์ macroTask()๊ฐ ๋ค์ ์ฃผ๊ธฐ(cycle)์ Macrotask๋ก ์คํ๋๋ค๋ฉด, ๊ทธ ์ ์ ๋ฐ์ํด์ผ ํ ๋ ๋๋ง ์์ ์ ๋ชจ๋ ์๋ฃ๋ฉ๋๋ค. ์๊ฐ์๋์ ํผ๋์ "JS ์์ง์ ๋ถํ๊น์ง๋ง ํ๊ณ ๋ค์์ ์คํํ ๊น?"๋ผ๋ ๋ถ๋ถ์์ ๊ธฐ์ธํฉ๋๋ค. ์ผ๋ฐ์ ์ธ DOM ์กฐ์์ '๋ถํ๊น์ง๋ง' ํ๋ ๊ฒ์ด ๋ง์ต๋๋ค. ์๋ฅผ ๋ค์ด, element.remove()๋ฅผ ์๋ฐฑ ๋ฒ ํธ์ถํด๋, ์ค์ ๋ ์ด์์ ๊ณ์ฐ๊ณผ ํ์ธํธ๋ ์ฝ์คํ์ด ์์ ํ ๋น์์ง ํ(ํน์ requestAnimationFrame ๊ฐ์ ํน์ ์ง์ )์ ๋จ ํ ๋ฒ์ ๋ ๋๋ง ์คํ ์์ ๋ฐฐ์น(Batch)๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ์ด๋ฒคํธ ๋ฃจํ์ ํ์ค ์ฃผ๊ธฐ๋ฅผ ์ดํด๋ณด๋ฉดJS ์์ง: ํ์ฌ MacroTask ์คํJS ์์ง: MicroTask Queue ๋น์ฐ๊ธฐ๋ธ๋ผ์ฐ์ : Update the rendering ๊ณผ์ ์ผ๋ก Layout, Paint, Composite ์คํ์ด๋ฒคํธ ๋ฃจํ: ๋ค์ MacroTask ์ ํ๋ ๋๋ง์ ๋ง์ดํฌ๋กํ์คํฌ๊ฐ ๋น์์ง ํ์ ์ด๋ค์ง๊ธฐ ๋๋ฌธ์ ๊ตฌ์ฒด์ ์ธ ํจ์์ ๋ํด ์ฝ๋๊ฐ ์์ง๋ ์์ง๋ง randeringPipelineTask ํจ์๋ฅผ ์ถ์ ํด๋ณธ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ง์ฝ randeringPipelineTask()๊ฐ ๋ค์ ๋ ๋๋ง ์๋ฃ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ญํ ์ ํ๋ ค๋ฉด, ๊ฐ์ฅ ํ์ค์ ์ด๊ณ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ requestAnimationFrame (RAF)๊ณผ Promise๋ฅผ ์กฐํฉํ๋ ๊ฒ์ ๋๋ค.randeringPipelineTask() ๋ด๋ถ์์ DOM์ ๋ณ๊ฒฝํ๊ณ , RAF๋ฅผ ์์ฒญํฉ๋๋ค.RAF ์ฝ๋ฐฑ์ ๋ ๋๋ง ๋ฐ๋ก ์ง์ ์ ์คํ๋ฉ๋๋ค.RAF ์ฝ๋ฐฑ ๋ด์์ setTimeout(0)์ด๋ ๋ค๋ฅธ Macrotask๋ฅผ ์ด์ฉํ๊ฑฐ๋, ํน์ Microtask๋ฅผ ํ ๋ฒ ๋ ์ฌ์ฉํ์ฌ Promise๋ฅผ resolve ์์ผ ๋ค์ ํ๋ ์ ๊ฒฝ๊ณ๋ฅผ ๋๊ธฐ๋ ๋ฐฉ์์ผ๋ก ํ์ธํธ ์๋ฃ ํ์์ผ ๋น๋ก์ randeringPipelineTask()์ await๊ฐ ํด์ ๋๋๋ก ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.๊ฒฐ๋ก ์ ์ผ๋ก, await๊ฐ ๊ฑธ๋ ค์๋ค๋ ๊ฒ์ ๋ธ๋ผ์ฐ์ ์ ํ ํ๋ ์(์ฃผ๊ธฐ) ๊ฒฝ๊ณ๋ฅผ ๋๊ธฐ๋๋ก ์ค๊ณ๋ ๋น๋๊ธฐ ๋ก์ง์ ์ฌ์ฉํ๋ค๋ ์๋ฏธ์ด๋ฉฐ, ์ด๋ฒคํธ ๋ฃจํ์ ์ค๊ณ์ ์ด ๊ฒฝ๊ณ๋ฅผ ๋์ผ๋ฉด ๋ ๋๋ง์ ์ด๋ฏธ ์๋ฃ๋ ์ํ์ ๋๋ค. ์ด๋ฌํ ์ด์ ๋ก DOM ์กฐ์์ ๋น๋ฒํ๊ฒ ํด์ผํ๋ ๊ฒฝ์ฐ๋ผ๋ฉด, ๋งค์ฐ ํน์ํ ๊ฒฝ์ฐ๊ฐ ๋๊ฒ ์ง๋ง! requestAnimationFrame(RAF)MutationObserver: ๊ฐ์์์๋ ์ค๋ช ํ์ง ์์setTimeout(0)๋ฑ์ ํตํด ๋ ๋๋ง ์๋ฃ๋ฅผ ๋ช ํํ ํ์ธํ์ค ์ ์์ ๊ฒ๋๋ค. ๋ต๋ณ์ด ๋์ จ๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 50
Q&A
์ด๋ฒคํธ๋ฃจํ ์ค๋ช ์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์. ๋ต๋ณํด๋๋ฆฌ๋ ค๊ณ ํ๋๋ฐ ai ์ธํด์ ๋ต๋ณ์ด ์๊ฐ๋ณด๋ค ์ ํํ๊ฒ ๋ต๋ณ์ด ๋๋ค์.๊ฐ์ ์๋ฃ์์ ์ค๋ช ๋ ๋ด์ฉ์ ์ ์ฒด์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์์ฑ ๋ชจ๋ธ์ ์ค๋ช ํ๊ธฐ ์ํ ๊ฐ๋ ์ ์ค๋ช ์ ๋๋ค. ์ฒจ๋ถํ์ ๋งํฌ์์ ์ค๋ช ํ๋๋ก ์ ํํ ๊ตฌ์ฑ ๋ฐ ์์ ์์น๋ ์์ง๊ณผ ๋ธ๋ผ์ฐ์ ์ ๋๋ค. ๊ฐ ๊ตฌ์ฑ์์์ ์์น๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.์๋ฐ์คํฌ๋ฆฝํธ ์์ง (์: V8 ์์ง)์ฝ์คํํ ๋ธ๋ผ์ฐ์ /๋ฐํ์ ํ๊ฒฝWeb APIํ์คํฌ ํ๋ง์ดํฌ๋ก ํ์คํฌ ํ์ด๋ฒคํธ๋ฃจํ ์ด๋ฅผ ํ ๋ฌธ์ฅ์ผ๋ก ์์ฝํด์ ์ค๋ช ํ์๋ฉด ์ฝ์คํ๊ณผ ํ์ V8 ์์ง์ ๊ตฌ์ฑ ์์์ด๊ณ , ์ด๋ฒคํธ ๋ฃจํ๋ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ์ด ์์ง์ ๊ฐ์ํ๊ณ ๋น๋๊ธฐ ์์ ์ ์กฐ์จํ๋ ๋ณ๋์ ๋ฉ์ปค๋์ฆ ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ์ฌ๋ ๊น์ ๊ณ ๋ฏผ ์์๋๋ฆฝ๋๋ค! ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 30
Q&A
Map ๊ฐ์ ๋๋ฝ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ ํ์ธ์ ๋ชจ๋๋, ์๋ ค์ฃผ์ ๋ถ๋ถ์ ๋ผ์ด๋ธ ๊ฐ์ ๋ถ๋ถ์์ ํธ์ง ๊ณผ์ ์์ ๋นผ๋๊ฒ ์ข์๊ฑฐ ๊ฐ์ ๋ถ๋๋ฝ์ง ์๊ฒ ๋ณด์ด๋ ๊ฒ์ผ ๋ฟ ์ ๋ก๋๋ ์์ ๋ด์ฉ์ด ๋ง์ต๋๋ค. ํฐ ์ฐจ์ด๋ ์์ผ๋ ์ด์ด์ ์์ฒญํด๋ณด์ ๋ ๋ ๊ฑฐ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 49
Q&A
Variable Object ์ง๋ฌธ
์๋ ํ์ธ์, ์ข์ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.๋ง์ํด์ฃผ์ ๋๋ก Variable Object(VO) ์ Variable Environment(VE) ๋ ๊ฐ์ ์คํ ์ปจํ ์คํธ์ ๋์์ ์ค๋ช ํ๋ ๊ฐ๋ ์ด์ง๋ง, ๋ช ์ธ๊ฐ ๋ฐ์ ํ๋ฉด์ ์ฉ์ด์ ๊ตฌ์กฐ๊ฐ ๋ฌ๋ผ์ง ๊ฒ์ ๋๋ค. Variable Object (VO) โ (ES3, ๊ตฌ๊ฐ๋ )์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ๋ ๋ ํจ๊ป ๋ง๋ค์ด์ง๋ ๋ด๋ถ ๊ฐ์ฒด๋ก,var ์ ์ธํจ์ ์ ์ธํจ์ ๋งค๊ฐ๋ณ์๋ค์ด VO์ ๋ฑ๋ก๋ฉ๋๋ค.์คํ ์ปจํ ์คํธ์ ์์ฑ ๋จ๊ณ์์ ์ด ๊ฐ๋ค์ด VO์ ์ฑ์์ง๊ณ ,์คํ ๋จ๊ณ์์๋ ์ด VO๋ฅผ ์ฐธ์กฐํ์ฌ ์๋ณ์๋ฅผ ์กฐํํฉ๋๋ค.์ฆ, ๋น์ ๋ช ์ธ์์๋ ์ค์ฝํ๋ฅผ ๋จ์ผ ๊ฐ์ฒด(VO)๋ก ํํํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. Variable Environment (VE) โ (ES5 ์ดํ, ํ๋ ๊ฐ๋ )VO ๋์ Lexical Environment๋ผ๋ ๋ ์ ๊ตํ ๊ตฌ์กฐ๊ฐ ๋์ ๋์์ต๋๋ค.Lexical Environment๋ ๋ ๊ฐ์ง๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค:Environment Record โ ์ค์ ๋ณ์, ํจ์, ๋งค๊ฐ๋ณ์๊ฐ ์ ์ฅ๋๋ ๊ณณOuter Lexical Environment Reference โ ๋ถ๋ชจ ์ค์ฝํ๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ (์ค์ฝํ ์ฒด์ธ)์ด ์ค Variable Environment๋ ํน๋ณํ var, ํจ์ ์ ์ธ, ํจ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ด๋ Environment Record๋ฅผ ์๋ฏธํฉ๋๋ค.let, const ๊ฐ์ ๋ธ๋ก ์ค์ฝํ ๋ณ์๋ ๋ณ๋์ Declarative Environment Record์ ๊ด๋ฆฌ๋ฉ๋๋ค.ํต์ฌ ์ฐจ์ด๋ช ์ธ์ ์งํVO๋ ES3 ์๋ ๊ฐ๋ VE๋ ES5 ์ดํ ๋์ ๋ Lexical Environment ์ฒด๊ณ์ ์ผ๋ถ์ค์ฝํ ๊ด๋ฆฌ ๋ฐฉ์VO๋ ๋จ์ผ ๊ฐ์ฒด๋ก ์ค์ฝํ ๊ด๋ฆฌVE๋ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ ์ค์ฝํ ์ฒด์ธ์ ํตํด ๊ด๋ฆฌlet/const ์ฒ๋ฆฌVO๋ let/const ๊ฐ๋ ์ด ๋ฐ์๋์ง ์์VE/Lexical Environment๋ ์ด๋ฅผ ์ํ ๋ณ๋์ ๊ตฌ์กฐ๋ฅผ ์ ๊ณต๊ฐ์์์ VO๋ฅผ ์ฌ์ฉํ ์ด์ ๊ฐ์์์๋ ๊ต์ก์ ๋จ์ํ๋ฅผ ์ํด Variable Object ๊ฐ๋ ์ ๋จผ์ ์ฌ์ฉํ์ต๋๋ค.VO๋ โ์คํ ์ปจํ ์คํธ๊ฐ ๋ณ์๋ฅผ ๋ชจ์๋๋ ์ ์ฅ์โ๋ผ๋ ๊ฐ๊ฐ์ ์ง๊ด์ ์ผ๋ก ์ก๋ ๋ฐ ์ ๋ฆฌํฉ๋๋ค.์ดํ ES2015+ ๋ช ์ธ์ ๋์ค๋ Lexical Environment / Variable Environment ๊ฐ๋ ์ ํ์ตํ๋ฉด, VO๋ก ๋ฐฐ์ด ์ง๊ด์ ๊ทธ๋๋ก ํ์ฅํ ์ ์์ต๋๋ค.์ ๋ฆฌํ๋ฉด, VO๋ ์ดํด๋ฅผ ๋๊ธฐ ์ํ ๊ตฌ๊ฐ๋ , VE๋ ํ๋ ๋ช ์ธ์ ์ ์ ๊ตฌ์กฐ์ด๊ณ ,ํ์ต ์์๋ VO โ VE/Lexical Environment๋ก ๊ฐ๋ ๊ฒ์ด ๊ฐ์ฅ ํจ๊ณผ์ ์ ๋๋ค.
- 0
- 1
- 83
Q&A
๋ฉ๋ชจ์ด์ ์ด์ ๋ท๋ถ๋ถ ์งค๋ฆฐ๊ฑด๊ฐ์?
์๋ ํ์ธ์ ๋ฉ๋จธ๋, ํ์ธํด๋ณด๋ 6๋ถ์ ๋ ํ๋ฆฌ๋ฉํ์ด ์ต์ ํ ๋ถ๋ถ์ด ํธ์ง ๊ณผ์ ์์ ๋๋ฝ๋์ด ์ถ๊ฐํ์ต๋๋ค. ๊ธฐ์กด์ 8๋ถ์ด์๋๋ฐ 14๋ถ์ผ๋ก ๋ฐ๋์์ต๋๋ค. ์๋ ค์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ps. ์ถ๊ฐ๋ก ์๋ ค์ฃผ์ Props Collections & Getters, Slot ๋ถ๋ถ๋ ํ์ธํด์ ๋ฐ์ํด๋๊ฒ ์ต๋๋ค.
- 0
- 2
- 122
Q&A
๋ค๋ฅธ ๋ชฉ์ฐจ ๊ฐ์๊ฐ ๋์ต๋๋ค
์๋ ํ์ธ์! ํ์ธํด๋ณด๋ ํผ์ฌ๋๊ฐ ์๋ ์ธํฐํ๋ฆฌํฐ ์์์ด ์ฐ๊ฒฐ๋์ด ์์๋ค์.์ง๊ธ์ ์์ ํด์ ์ ๋ก๋ํด๋์ต๋๋ค. ์๋ ค์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
- 0
- 1
- 96