
์บ๋ฒ์ค์ ์ฌ์ด์ฆ๋ฅผ ํ์ฌ ๋ณด๊ณ ์๋ ์ฐฝ ์ฌ์ด์ฆ์ ๋ฑ ๋ง๊ฒ ์กฐ์ ํ์๊ณ ์กฐ์ ๋ ์บ๋ฒ์ค ๊ธฐ์ค์ผ๋ก ์คํฌ๋กค ๊ฐ์ด ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๋ง๋ฟ์์ ๋ ์ค์ ํด ๋ ์บ๋ฒ์ค ์ ๋๋ฉ์ด์ ์ด ๋ฐ์ํ ์ ์๋๋ก ๋ธ๋ผ์ฐ์ ์ฐฝ๊ณผ ์บ๋ฒ์ค ์ด๋ฏธ์ง ๊ฐ์ height ๊ฐ์ getBoundingClientRect().top์ ํตํด ๊ณ์ฐํ์๋ค. ๊ด๋ จ ์์ ํ์ง๋ง ์๋ ์๋ํ๋ ๋ฐ์๋ ๋ฌ๋ฆฌ ์บ๋ฒ์ค ์ ๋๋ฉ์ด์ ์ด ์ ๋๋ก ๋์ํ์ง ์์๋ค. ์ด๋ getBoundingClientRect().top ๊ฐ์ด ์ผ์ ํ๊ฒ ๋์ค๋ ๊ฒ์ด ์๋๋ผ ์๋ ์ฝ์์ ์ถ๋ ฅํด ๋ณธ ๋ฐ์ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ์คํฌ๋กคํ๋ ์๋์ ๋ฐ๋ผ ๊ฐ์ด top์ ๊ฐ์ด ์์ ๋ณํํ๊ธฐ ๋๋ฌธ์ด์๋ค. ์ด๋ฅผ ์ํด ์์์ offsetTop์ ์ด์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ์ฐฝ๊ณผ ์บ๋ฒ์ค ์ด๋ฏธ์ง ๊ฐ์ height ๊ฐ์ ์ป๊ณ ์ ํ๋ค. offs..

๋ค์๊ณผ ๊ฐ์ด ๊ฐ์ ์ฌ๊ท ํธ์ถ ๊ธฐ๋ฅ์ ์ํํ๋ ๋ ์ฝ๋๊ฐ ์๋ค. ํ์ง๋ง ์ ๋ ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ ๋ค๋ฅด๋ค. setTimeout()์ผ๋ก ์ฌ๊ท ํธ์ถํ ๊ฒฐ๊ณผ css์ ์ ์ฉ ํ button:hover์ ์์๊ฐ์ด ๋ง์ฐ์ค ์ปค์๋ฅผ ๋์ ๋ ์ ํด์ ๋๋ ๋ฐ๋ฉด์ Promise then์ผ๋ก ์ฌ๊ท ํธ์ถํ ๊ฒฐ๊ณผ๋ ๋ง์ฐ์ค ์ปค์๋ฅผ ๋์์๋ button:hover์ ์์ ๊ฐ์ด ๊ทธ๋๋ก ๋จ์ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ด๋ ๋ ๋น๋๊ธฐ ํจ์์ ์ฝ๋ฐฑ ํจ์๊ฐ ๊ฐ๊ธฐ ๋ค๋ฅธ ํ์ ์ ์ฌ๋๊ธฐ ๋๋ฌธ์ด๋ค. setTimeout()๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ ํ ์คํฌ ํ์ ์ ์ฌ๋๋ ๋ฐ๋ฉด Promise then๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ Microtask ํ์ ์ ์ฌ๋๋ค. ์ด ๋ ๋ชจ๋ ์ฝ ์คํ์ด ๋น์ด์์ ๋ ์ด๋ฒคํธ ๋ฃจํ์ ์ํด ์ฝ ์คํ์ ์ ์ฌ๋๋ค๋ ์ ์ ๋๊ฐ์ผ๋ ๋ค์ ์ฐจ์ด๊ฐ ์กด์ฌํ๋ค...

๋ค์๊ณผ ๊ฐ์ด Game ํด๋์ค ์ธ์คํด์ค๋ฅผ ์ด๊ธฐํํด์ฃผ๊ธฐ ์ํด ์์ฑ์์ ์ ๋ฌ ํ ์ธ์๋ค์ ๋ฃ์ด์ฃผ์๋ค. ๊ธฐ๋ฅ ์์๋ ๋ฌธ์ ๋ ์์ง๋ง ๋ค์๊ณผ ๊ฐ์ด ์ธ์คํด์ค์ ์ด๊ธฐํ๊ฐ ๋ชจ๋ ์์ฑ์ ๋ด์์ ์ด๋ฃจ์ด์ง๊ฒ ๋๋ค๋ฉด ๋๊ธฐ๋ ์ธ์์ ์๊ฐ ๋ง์ผ๋ฉด ๋ณต์กํด์ง๊ณ ์ด ์ธ์๋ค์ด ๋ฌด์์ ์ง์นญํ๋์ง ์ ์๊ฐ ์๋ค. ์ด๋ก ์ธํด ์ฝ๋ ์ ์ ์ฐํ์ง ๋ชปํ๊ณ ์ข ์์ ์ด๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋น๋ ํจํด(Bulider Pattern)์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ ํ์๋ค. Game ํด๋์ค๋ฅผ ํตํด ๋ฐ๋ก ์ธ์คํด์ค๋ฅผ ์์ฑํด ์ฃผ๋ ๊ฒ์ด ์๋ ์ด์ ์ ์์์ GameBuilder ๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด ํด๋์ค ๋ด์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ฒ ๋๋ฉด ์ด๊ธฐ๊ฐ์ ์ค์ ํด์ฃผ๊ณ ํด๋์ค ์์ฒด๋ฅผ ๋ฐํํด์ฃผ์๊ณ ์ดํ ํด๋์ค๋ฅผ ์์ฑํจ๊ณผ ๋์์ ๋ฉ์๋ ์ฒด์ด๋์ ํตํด ์ธ์คํด์ค ์ด๊ธฐํ ๋ฐ Game ํด๋์ค ์ธ์คํด..

๋ค์๊ณผ ๊ฐ์ด ์์ฑ์ ํจ์ ๋ด์์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํด์ฃผ๊ณ ์ฝ๋ฐฑ ํจ์๋ก ํด๋์ค ๋ด์ ๋ฉ์๋๋ฅผ ์ธ์๋ก ๋๊ฒจ์ฃผ์๋ค. ํ์ง๋ง OnClick ๋ฉ์๋ ๋ด์์์ this๋ Field ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ์ง ๋ชปํ๊ณ undefined๋ฅผ ๋ฐ์ธ๋ฉ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค. (2021.3.17) onClick์ ์ฝ๋ฐฑํจ์์ด๊ธฐ ๋๋ฌธ์ ๊ณ ์ฐจ ํจ์ ๋ด์์ ์ผ๋ฐ ํจ์๋ก ํธ์ถ์ด ๋๋ค. ์ผ๋ฐ ํจ์์ this๋ ์ ์ญ ๊ฐ์ฒด๊ฐ ๋ฐ์ธ๋ฉ๋์ง๋ง class ๋ด์ ๋ชจ๋ ์์ค ์ฝ๋์์ ๊ธฐ๋ณธ์ ์ผ๋ก 'strict mode'๊ฐ ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ undefined ๊ฐ ๋ฐ์ธ๋ฉ๋๋ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฒ์ด๋ค. (2021.7.25)์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํตํด ํธ์ถ๋๋ ์ฝ๋ฐฑ ํจ์์ this๋ currentTarget, ์ฆ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ธ๋ฉํ DOM ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ..

๋ชจ๋ํ๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ด button ํ๊ทธ์ ํด๋์ค ์ดํธ๋ฆฌ๋ทฐํธ์ธ btn์ ๋ ธ๋ ์์ฑ๊ณผ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ฑ๋ก์ Button ํด๋์ค ๋ด์ ์์ฑ์์ ์ ์ธํ์ฌ ์ฃผ์๋ค. btn ์์์ ์ง์ ์ ์ผ๋ก addEventListener์ ๋ฑ๋กํ์ง ์์์์๋ ์ฝ์์ Hello๊ฐ ์ถ๋ ฅ๋๋ค. ์์ ๋์ ๋ฐฉ์์ ์ดํดํ๊ธฐ ์ํด์๋ ํฌ๊ฒ ๊ฐ์ง๊ฐ ํ์ํ๋ค. 1. this ๋ฐ์ธ๋ฉ this๋ ์๊ธฐ ์ฐธ์กฐ ๋ณ์๋ก์, ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ฌ๊ธฐ์ ์์ฑํ ์ธ์คํด์ค๋ btn์ ๊ฐ๋ฆฌํค๋ฉฐ ํจ์ ํ๊ฐ ๊ณผ์ ์ด ๋๋๊ณ ์ค์ ์ฝ๋๊ฐ ์คํ๋ ๋ ๋ฐ์ธ๋ฉ๋๋ค. 2. constructor ์์ฑ์ ํจ์ constructor ์์ฑ์ ํจ์๋ ํจ์ ๋ด์ ์ฝ๋์๋ค์ ์ด๊ธฐํ ํด์ฃผ๊ณ ์๋ฌต์ ์ผ๋ก this, ์ฆ ์ธ์คํด์ค๋ฅผ ๋ฐํํ๋ค. 3. ๊ฐ๋น์ง ์ปฌ๋ ์ ..

์ค๋ธ์ ํธ๋ฅผ ๋ง์ฐ์ค ์ปค์์ ๋ฐ๋ผ ์์ง์ด๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์๋ค. top๊ณผ left ์์ฑ์ด ์๋ translate ์์ฑ์ ์ด์ฉํ์ฌ ์ด๋ฅผ ๊ตฌํํ์๋๋ฐ, ์ด๋ ๋๋๋ง ์ฑ๋ฅ์์ ์ฐจ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋๋๋ง์ด ์งํ๋๋ ๊ณผ์ ์ ํฌ๊ฒ ๋ถ๋ฅํ์๋ฉด, Construction( DOM CSSOM RenderTree ) Operation( layout paint composition) ์ผ๋ก ๋๋ ์ ์๋ค. ์ด๋ ์ค์ ์์๋ค์ ํ๋ฉด์ ๋ณด์ด๊ฒ๋ ํ๋ Operation ๊ณผ์ ์ค paint์์๋ DOM์ด๋ CSSOM์์ ๊ตฌ์ฑ ํ ๋ด์ฉ์ ๋ฐ๋ก ์ถ๋ ฅํ๋ ๊ฒ์ด ์๋๋ผ ๊ฐ๊ฐ์ ์์๋ค์ ์๊ฒ ๋๋ ์ ์ด๋ฏธ์ง(๋นํธ๋งต ํ์)๋ฅผ layer๋ณ๋ก ์ค๋นํ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค. ์ด๋ ํ ์์ ์ ์งํํ ๊ฒฝ์ฐ ๊ฐ layer๊ฐ ์๋ ์ ์ฒด๋ฅผ ์์ ํด์ผ ํ..

moudle.exports === exports === {๊ฐ์ฒด} moudle.exports์๋ ์ด๋ค ๊ฐ์ด๋ ๋์ ํด๋ ๋์ง๋ง, exports์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๊ฐ์ฒด๋ฅผ ์ง์ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ๊ฐ์ฒด์ฒ๋ผ ์์ฑ๋ช ๊ณผ ์์ฑ๊ฐ์ ๋์ ํด์ผ ํ๋ค. ๋ฐ๋ผ์ ์์ ๊ฐ์ด ํจ์๋ฅผ ๋์ ํ๋ ๊ฒฝ์ฐ์๋ module.exports๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ๋ํ exports์ module.exports์๋ ์ฐธ์กฐ ๊ด๊ณ๊ฐ ์์ผ๋ฏ๋ก ํ ๋ชจ๋์ ๋์์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค.

Window load ํฌ๊ฒ ๋ค ๊ฐ์ง์ API๊ฐ ์๋ค. 1. DOMContentLoaded: HTML ํ์ฑ๋ง ์๋ฃ๋๋ฉด ์ฝ๋ฐฑ ํจ์๋ฅผ ํธ์ถ ๋ฐ ์คํ ๊ฐ๋ฅํ๋ค. 2. load: css ๋ฐ image ๋ฑ๊ณผ ๊ฐ์ ๋ฆฌ์์ค ํ์ผ๋ค์ด ๋ชจ๋ ์๋ฃ๋ ๋ค์ ํธ์ถ ๋ฐ ์คํ ๊ฐ๋ฅํ๋ค. 3. beforeunload: ํ์ฑ์ด ๋ชจ๋ ์๋ฃ๋๊ธฐ ์ ์ ์๊ธฐ์น ๋ชปํ ๋ณ์(์นํ์ด์ง์ ์ด๊ธฐํ ๋ฑ)๊ฐ ์๊ธธ ๋ ํธ์ถ ๋ฐ ์คํ ๊ฐ๋ฅํ๋ค. 4. unload: css ๋ฐ image ๋ฑ๊ณผ ๋ฆฌ์์ค ํ์ผ๋ค์ ๋ถ๋ฌ์ค๋๋ฐ์ ์คํจํ์์๋ ํธ์ถ ๋ฐ ์คํ ๊ฐ๋ฅํ๋ค. ๋ ๋๋ง์์ง๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ๋ ฌ์ ์ผ๋ก ํ์ฑ์ ์คํํ์ง ์๊ณ ์ง๋ ฌ์ ์ผ๋ก ์ํํ๋ ๋๊ธฐ์ ์ธ(synchronous) ์ฑํฅ์ ์ง๋๋ค. ์ฆ, script ํ๊ทธ ์์น์ ์ํด ๋ธ๋กํน์ด ๋ฐ์ํ ์ ์๋ค(์ข ์์ ์ด๋ค)..