[๊ณผ์ ] ์๊ธฐ์๊ฐ ํ์ด์ง ์ ์
2์ฃผ์ฐจ ๋ง์ง๋ง ๋ ์ ๊ณผ์ ๋ก HTML, CSS, JavaScript๋ฅผ ์ด์ฉํด์ ์๊ธฐ์๊ฐ ํ์ด์ง๋ฅผ ์ ์ํ๋ ๊ณผ์ ๊ฐ ์ฃผ์ด์ก๋ค. ๋ฉ์ฌ์์ ํ๋ํ์ ๋๋ HTML/CSS๋ฅผ ๋ฐฐ์ฐ๊ณ ๊ฐ๋ณ๊ฒ ์๊ธฐ์๊ฐ ํ์ด์ง ์ ์ ๊ณผ์ ๋ฅผ ํ์๋๋ฐ, ํ์คํ ๊ทธ ๋๋ณด๋ค ์ด๋ฐ์ ๋ฐ ์์๋ค์ ์ ๋ฒ ๋ค๋ฃฐ ์ ์๊ฒ ๋ ๊ฒ์ ๋๊ผ๋ค. ๊ทธ ๋ ๊ฐ์ด ํ๋ํ๋ ๋์๋ฆฌ์ ์ค, ์น ํ๋ฉด์ ํ์ด์ง๋ฅผ ๊ฝ ์ฑ์์ ์ฌ๋ฌ ํ์ด์ง๋ค์ ์คํฌ๋กค ํ๋ ๋ฐฉ์์ผ๋ก ์ ์ํ์ ๋ถ์ด ๊ณ์ จ๋๋ฐ, ๋น์ ์น ๊ฐ๋ฐ ํ๋ณ์๋ฆฌ์๋ ๋๋ ๊ทธ๋ฐ ์ ์ธ๊ณ(?) ๋์์ธ์ ์ฒ์ ์ ํด๋ดค์๊ณ ๋ค์์ ํ ๋ฒ ์ ๋ ๊ฒ ๋ง๋ค์ด ๋ณด๊ณ ์ถ๋ค๋ ์๊ฐ์ ํ์๋ค. ๊ทธ ์ธ์๋ ๋ฅ๋ ฅ์ด ๋ถ์กฑํด์ ํด๋ณด๊ณ ๋ ์ถ์ง๋ง ๊ตฌํ์ ๋ชปํ๋ ๊ฒ๋ค์ด ๋ง์์ด์, ์ด๋ฒ ๊ณผ์ ์ ํ์ด์ง ๋์์ธ์ ๋น์๋ฅผ ํ์ํ๋ฉด์ ํ๋ค. ๊ณผ์ ์ ์ฃผ์ ๊ฐ ํ์ ๋ด์ฉ๋ค์ ์ฝ์ ํ..
[CS] DOCTYPE
1. DOCTYPE Document Type์ ์ฝ์๋ก, HTML์ด ์ด๋ค ๋ฒ์ ์ผ๋ก ์์ฑ๋์๋์ง ๋ฏธ๋ฆฌ ์ ์ธํ์ฌ ์น๋ธ๋ผ์ฐ์ ๊ฐ ๋ด์ฉ์ ์ฌ๋ฐ๋ก ํ์ํ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ์ด๋ค. ์ผ๋ก ์ ์ธํ๋๋ฐ, ์ด๊ฑธ ํด์ฃผ์ง ์์ผ๋ฉด ํธํ ๋ชจ๋(quirks mode)๋ก ๋์ํ๋ค. ํธํ ๋ชจ๋์ ๊ฒฝ์ฐ ๊ฐ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ฌธ์๋ฅผ ๋ํ๋ด๋ ๋ฐฉ์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ์ด์๊ฐ ํจ์ฌ ์ฌํด์ง๊ฒ ๋๋ค. DOCTYPE ์ ์ธ X: ์ฟผํฌ ๋ชจ๋๋ก ๋ ๋๋ง → ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฌผ ์ถ๋ ฅ DOCTYPE ์ ์ธ O: ํ์ค ๋ชจ๋๋ก ๋ ๋๋ง → ๋ธ๋ผ์ฐ์ ๋ณ๋ก ๊ฐ์ ๋ ์ด์์ ๊ฒฐ๊ณผ๋ฌผ ์ถ๋ ฅ 2. DTD (Document Type Definition) DTD(Document Type Definition)๋ ๋ฌธ์ ํ์์ ์ ์ํด๋์ ๊ฒ์ผ๋ก DOCTYPE์ ๋ช ์ํ ๋ ์ฌ์ฉ..
[CS] CSS์ JS ์ ๋๋ฉ์ด์ ์ ์ฐจ์ด์
1. CSS ์ ๋๋ฉ์ด์ vs JS ์ ๋๋ฉ์ด์ ์น์ฌ์ดํธ์ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ๋ถ์ฌํ ๋ CSS์ transiton / animation ์์ฑ์ ์ฌ์ฉํ ์ ์๊ณ , JS์ setInterval() / requestAnimationFrame() ์ ์ฌ์ฉํ ์ ์๋ค. ํ์ง๋ง ๊ฐ๊ฐ์ ์ฌ์ฉํ ๋์ ํน์ง์ด ๋ค๋ฅด๊ณ ์ฅ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ์์๋๋ ๊ฒ์ด ์ข๋ค. ๊ธฐ์ ๋ฉด์ ์๋ ๋์จ์ ์ด ์๋ค. 2. CSS ์ ๋๋ฉ์ด์ ์ผ๋ฐ์ ์ผ๋ก, ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ธ์ ๋ ํน์ ๋ฉ๋ด ๋ฒํผ์ ์ ํ๊ณผ ๊ฐ์ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ๋ ์ ๋๋ฉ์ด์ ์ ๊ฒฝ์ฐ CSS๋ก ์ฒ๋ฆฌํ๋ค. ์๋ฅผ ๋ค์ด, 200 ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ์ ์ผ์ชฝ ์์์ ์ค๋ฅธ์ชฝ ์๋๋ก 350px ์์ง์ด๊ฒ ํ๋ ์ ๋๋ฉ์ด์ ์ ๊ตฌํํ๋ค๊ณ ํ๋ฉด, transform์ translate๋ฅผ ์ฌ์ฉํด์ ๊ตฌํํ ์ ์..
[CS] CI์ CD
1. CI (Continuous Integration, ์ง์์ ํตํฉ) CI๋ ๋น๋์ ํ ์คํธ๋ฅผ ์๋ํํด์ ๊ณต์ ์ ์ฅ์์ ๋ณํฉ์ํค๋ ํ๋ก์ธ์ค๋ฅผ ๋ปํ๋ค. git๊ณผ ๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ฌ์ฉํ ๋, ์ฌ๋ฌ๋ช ์ ๊ฐ๋ฐ์๊ฐ ํ๋์ ๊ณต์ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์๋ก์ด ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฅ์์ ํตํฉ๋์ง ์์ ๊ฒฝ์ฐ ์๋ก ์ถฉ๋ํ ์ ์๋ค. ๋ฐ๋ผ์ ๋น๋/ํ ์คํธ ์๋ํ๋ถํฐ ์ฝ๋์ ์ผ๊ด์ฑ(Consistency)์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์ง์์ ์ผ๋ก ํตํฉํ๋ค๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ด๋ค. ์ฆ, ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ๋์ด ๊ณต์ ๋ ํฌ์งํ ๋ฆฌ์ ํตํฉ๋๋ ๊ฒ์ ์๋ฏธํ๋ค. CI์ ํต์ฌ ๋ชฉํ๋ ๋ฒ๊ทธ๋ฅผ ์ ์ํ๊ฒ ์ฐพ์ ํด๊ฒฐํ๊ณ , ์ํํธ์จ์ด์ ํ์ง์ ๊ฐ์ ํ๊ณ , ์๋ก์ด ์ ๋ฐ์ดํธ์ ๊ฒ์ฆ ๋ฐ ๋ฆด๋ฆฌ..
[CS] ๋ชจ๋ ๋ฒ๋ค๋ฌ์ ํธ๋์คํ์ผ๋ฌ
1. ๋ชจ๋ ๋ฒ๋ค๋ฌ(Module bundler) 1-1. ๋ชจ๋(Module) ๋ชจ๋์ ์ฌ๋ฌ ๊ธฐ๋ฅ๋ค์ ๊ดํ ์ฝ๋๋ค์ด ํ๋ฐ ๋ชจ์ฌ์๋ ํ์ผ๋ก์ ๋ค์๊ณผ ๊ฐ์ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค. ์ ์ง๋ณด์์ฑ ๊ธฐ๋ฅ๋ค์ด ๋ชจ๋ํ๊ฐ ์ ๋์ด ์๋ค๋ฉด, ์์กด์ฑ์ ๊ทธ๋งํผ ์ค์ผ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ธฐ๋ฅ์ ๊ฐ์ ํ๋ค๊ฑฐ๋ ์์ ํ ๋ ํธํ๊ฒ ํ ์ ์๋ค. ๋ค์์คํ์ด์คํ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ์ญ๋ณ์๋ ์ ์ญ๊ณต๊ฐ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ฝ๋๊ฐ ๊ธธ์ด์ง๋ค ๋ณด๋ฉด ๋ค์์ด ๊ฒน์น๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค. ์ด ๋ ๋ชจ๋ํ๋ฅผ ํ๋ฉด, ๊ฐ ๋ชจ๋๋ง์ ๋ค์์คํ์ด์ค๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ค๋ณต๋๋ ๋ณ์๋ฅผ ์ค์ผ ์ ์๋ค. ์ฌ์ฌ์ฉ์ฑ ๋๊ฐ์ ์ฝ๋๋ฅผ ๋ฐ๋ณตํ์ฌ ์ฌ์ฉํ์ง ์๊ณ ๋ชจ๋๋ก ๋ถ๋ฆฌ์์ผ์ ์ฌ์ฌ์ฉํ ์ ์๋ค. 1-2. ๋ชจ๋ ๋ฒ๋ค๋ฌ(Module bundler) ํ๋์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ชจ๋๋จ์๋ก ํ์ผ์ ์ฎ์ด์ ๊ฐ๋ฐํ..
[CS] BOM๊ณผ DOM
1. BOM (Browser Object Model) ๋ธ๋ผ์ฐ์ ์ ์ฐฝ์ด๋ ํ๋ ์์ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก ์ ์ดํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ์ฒด๋ชจ๋ธ์ด๋ค. ์ด๋ฅผ ํตํด์ ๋ธ๋ผ์ฐ์ ์ ์ ์ฐฝ์ ์ด๊ฑฐ๋ ๋ค๋ฅธ ๋ฌธ์๋ก ์ด๋ํ๋ ๋ฑ์ ๊ธฐ๋ฅ์ ์คํ์ํฌ ์ ์๋ค. ์ ์ญ๊ฐ์ฒด๋ก window๊ฐ ์์ผ๋ฉฐ, ํ์ ๊ฐ์ฒด๋ค๋ก location, navigator, document, screen, history๊ฐ ํฌํจ๋์ด ์๋ค. 2. DOM (Document Object Model) ์นํ์ด์ง๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก ์ ์ดํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ์ฒด๋ชจ๋ธ์ด๋ค. ์ต์์ ์ธํฐํ์ด์ค๋ก Node๊ฐ ์๊ณ , ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋ํ๋๊ฒ ๋๋ค. ์ด ๋, ๋จ์ํ ์๋ฆฌ๋จผํธ ๋ฟ๋ง ์๋๋ผ ํ ์คํธ๋ ์ฃผ์ ๋ฑ๋ DOM ํธ๋ฆฌ์ ํฌํจ๋๋ ๊ฒ์ ์ ์ ์๋ค. DOM์ ๋ค๋ฃจ๊ธฐ ์ํด์๋ getEl..
[CS] ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ฝ๋๋ฅผ ์คํํ๋ ๊ณผ์
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ํด์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ํ์ํ๊ณ , ์น ๋ธ๋ผ์ฐ์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ด์ฅํ๊ณ ์๋ค. ๋ธ๋ผ์ฐ์ ๋ง๋ค ์์ง์ ์ข ๋ฅ๊ฐ ๋ค๋ฅด์ง๋ง, ์ฝ๋๋ฅผ ์คํํ๋ ๋ฐฉ์์ ๋น์ทํ๋ค. (V8, SpiderMonkey, Javascript core ๋ฑ์ ๊ตฌํ์ด ๊ฐ๊ฐ ๋ค๋ฅด๋ค.) 1. ์์ค์ฝ๋๋ฅผ ๋ง๋๋ฉด ํ์ฑํ์ฌ AST(Abstract Syntax Tree)๋ก ๋ณํํ๋ค. 2. ์ธํฐํ๋ฆฌํฐ(Interpreter)๋ AST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํธ์ฝ๋(Bytecode)๋ฅผ ์์ฑํ๋ค. 3. ์ธํฐํ๋ฆฌํฐ๊ฐ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์คํํ ๋, ์์ฃผ ์ฌ์ฉ๋๋ ํจ์ ๋ฐ ํ์ ์ ๋ณด ๋ฑ์ด ์๋ ํ๋กํ์ผ๋ง ๋ฐ์ดํฐ(Profiling data)์ ๊ฐ์ด ์ต์ ํ ์ปดํ์ผ๋ฌ(Optimizing compiler)์๊ฒ ๋ณด๋ธ๋ค. 4. ์ต์ ํ ์ปดํ์ผ๋ฌ๋ ํ๋กํ์ผ๋ง ๋ฐ์ด..
[CS] ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ์๋ฆฌ
๋ ๋๋ง์ด๋ HTML, CSS, JavaScript ๋ฑ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ๋ฌธ์๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅ๋๋ ๊ณผ์ ์ ๋งํ๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ฉด์ ๋ํ๋๋ ์์๋ฅผ ๋ ๋๋ง ํ ๋, ์นํท(Webkit)์ด๋ ๊ฒ์ฝ(Gecko) ๋ฑ๊ณผ ๊ฐ์ ๋ ๋๋ง ์์ง์ ์ฌ์ฉํ๋ค. ๋ ๋๋ง ์์ง์ด HTML, CSS, JavaScript๋ก ๋ ๋๋งํ ๋ CRP(Critical Rendering Path) ๋ผ๋ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๋ค์ ๋จ๊ณ๋ค๋ก ์ด๋ฃจ์ด์ง๋ค. HTML ํ์ฑ ํ, DOM(Document Object Model) ํธ๋ฆฌ ๊ตฌ์ถ ํ์ฑ(Parsing) : ์๋ฒ๋ก๋ถํฐ ์ ์ก๋ฐ์ ๋ฌธ์์ ๋ฌธ์์ด์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋ ๊ตฌ์กฐ๋ก ๋ณํํ๋ ๊ณผ์ CSS ํ์ฑ ํ, CSSOM(CSS Object Model) ํธ๋ฆฌ ๊ตฌ์ถ JavaScript ์คํ ์ด ๋, HTM..