๐ฐ CS ์ค๋น (8) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ์ผ๋ฐ์ ์ธ ์ง๋ฌธ ์ด์ /์ด๋ฒ ์ฃผ์ ๋ฌด์์ ๊ณต๋ถํ์ จ๋์? ์ฝ๋ฉ์ ํ ๋ ๋น์ ์ ๋ค๋จ๊ฒ ํ๊ฑฐ๋ ํฅ๋ฏธ๋ฅผ ๋๋ ๊ฒ๋ค์ ๋ฌด์์ ๊ฐ์? ์ต๊ทผ์ ๋น์ ์ด ๊ฒฝํํ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๋ ๋ฌด์์ด๊ณ ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์? ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ์ฌ์ดํธ๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํด์ผ ํ UI, Security, Performance, SEO, Maintainability์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์. ์ ํธํ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ํด ์์ ๋กญ๊ฒ ์ด์ผ๊ธฐํด ์ฃผ์ธ์. ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ด๋ค ๊ฒ๋ค์ ์ฌ์ฉํด๋ณด์ จ์ต๋๊น? ๋น์ ์ด ์น ํ์ด์ง๋ฅผ ๋ง๋ค ๋์ ๊ณผ์ ์ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์? ๋น์ ์๊ฒ 5๊ฐ์ง ๋ค๋ฅธ stylesheet๊ฐ ์์ต๋๋ค. ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ดํธ์ ์ ๊ณตํ๋ ๊ฒ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๊น์? ์ ์ง์ ํฅ์๋ฒ(progressive enhancement)๊ณผ ์ฐ์ํ ์ฑ๋ฅ์ ํ๋ฒ(graceful d.. ์ฑ๋ฅ ๊ด๋ จ ์ง๋ฌธ ์ฑ๋ฅ๊ด๋ จ ์ด์๋ค์ ๋ฐ๊ฒฌํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ๊ฐ์? ์น์ฌ์ดํธ scrolling ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํ ๋ช๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด๋ณด์ธ์. ๋ธ๋ผ์ฐ์ ์ layout, painting, compositing์ ๋ํด ์ค๋ช ํด๋ณด์ธ์. ํ ์คํธ ๊ด๋ จ ์ง๋ฌธ test code๋ฅผ ์์ฑํ๋ฉด์ ๊ฐ๋ฐํ๋ ๋ฐฉ์์ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. test code๋ฅผ ํ ์คํธํ๋ ํด์ ์ฌ์ฉํด๋ณด์ ๊ฒฝํ์ด ์๋์? ์ ๋ ํ ์คํธ์ ํจ์ํ ์คํธ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์? code style linting tool์ ์ฌ์ฉํ์๋ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์? ๋คํธ์ํฌ ์ ํต์ ์ผ๋ก, ์น์ฌ์ดํธ์ assets์ ์ฌ๋ฌ ๋๋ฉ์ธ์ผ๋ก ์๋นํ์ ๋ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์? URL๋ก ์ ์ํ์ ๋ ์ด๋ค ํ๋ก์ฐ๋ก ํ๋ฉด์ ์น์ฌ์ดํธ๊ฐ ๊ทธ๋ ค์ง๋์ง ๋คํธ์ํฌ ๊ด์ ์์ ์ค๋ช ํด์ฃผ์ธ์. Long-Polling๊ณผ Websocket, Server-Sent Event์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๋ค์ request header๋ค์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. Diff. between Expires, Date, Age and If-Modified-… Do Not Track Cache-Control Transfer-Encoding ETag X-Frame-Options HTTP์ HTTPS์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. HTTP Method๋ค์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. OOP (๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ) OOP(Object Oriented Programming, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ), ํน์ง ๋ถํ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ์ด๊ฒ๋ค์ ํ๋์ฉ ์กฐ๋ฆฝํด์ ์์ฑ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๊ธฐ๋ฒ์ ๋๋ค. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ฌ์ฌ์ฉ์ฑ๊ณผ ๋ณํ๊ฐ๋ฅ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. 1. ์์ : ํด๋์ค๊ฐ๋ ์์ ์์ ํด๋์ค(๋ถ๋ชจ)๋ก ๋ถํฐ ํ์ ํด๋์ค(์์)์ด ์ ์ฐ์ ๋ฌผ๋ ค๋ฐ๋๊ฒ๊ณผ ๊ฐ์ด, ๋ถ๋ชจ์ ๋ฉ์๋๋ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ๋งํจ. 2. ๋คํ์ฑ : ๊ฐ์ ํจ์๊ฐ ์๋ค๊ณ ์น ๋ ๊ทธ ํจ์๊ฐ ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ ๋ค๋ฅธ ์ญํ ์ ํ ์ ์๋ค. 3. ์บก์ํ : ๋ณดํต ๋ฐ์ดํฐ๋ฅผ ์๋์ํจ๋ค๊ณ ํํํ๋๋ฐ, ์ธ๋ถ์์ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ ์ ์๊ฒ ๋ง๋ค๊ธฐ๋ํ๊ณ , ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๋ค์ ํ๋ฐ๋ค ๋ฌถ๋๊ฒ. 4. ์ถ์ํ : ๊ณตํต์ ์ธ ์์ฑ์ด๋ ๊ธฐ๋ฅ์ ๋ฌถ์ด์.. javascript event delegation์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์. this๋ JavaScript์์ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ค๋ช ํด์ฃผ์ธ์. prototype ๊ธฐ๋ฐ ์์์ ์ด๋ป๊ฒ ํ๋์ง ์ค๋ช ํด์ฃผ์ธ์. AMD์ CommonJS๋ ๋ฌด์์ด๊ณ , ์ด๊ฒ๋ค์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์๋์? ๋ค์ ์ฝ๋๊ฐ ์ฆ์ ํธ์ถ ํจ์ ํํ์(IIFE)๋ก ๋์ํ์ง ์๋ ์ด์ ์ ๊ดํด์ ์ค๋ช ํด๋ณด์ธ์: function foo(){ }();. IIFE๋ก ๋ง๋ค๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผ ํ๋์? null๊ณผ unedefined ๊ทธ๋ฆฌ๊ณ undeclared์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์? ๋๊ฐ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํ๋ฉด ๋ ๊น์? ํด๋ก์ ธ(Closure)๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ/์ ์ฌ์ฉํ๋์ง ์ค๋ช ํด์ฃผ์ธ์. ํด๋ก์ ธ๋ฅผ ๋ง๋ค ๋ ์ ํธํ๋ ํจํด์ ๋ฌด์์ธ๊ฐ์? argyle (IIFEs์๋ง ์ ์ฉํ ์.. CSS class์ id์ ์ฐจ์ด์ ์ ๊ดํด์ ์ค๋ช ํด์ฃผ์ธ์. “reset” CSS๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ์ ์ฉํ์ง ์ค๋ช ํด์ฃผ์ธ์. Floats๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ค๋ช ํด์ฃผ์ธ์. z-index์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์. BFC(Block Formatting Context)์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์ ํด๋ฆฌ์ด๋ง(Clearing) ๊ธฐ์ ์๋ ์ด๋ค ๊ฒ๋ค์ด ์์ผ๋ฉฐ, ์ด๋จ ๋ ์ด๋ป๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ ํ์ง ์ค๋ช ํ์ธ์. CSS ์คํ๋ผ์ดํธ(CSS Sprites)๋ฅผ ์ค๋ช ํ๊ณ , ํ์ด์ง๋ ์ฌ์ดํธ๋ฅผ ์ด๋ป๊ฒ ํฅ์ํ๋์ง ์ค๋ช ํ์ธ์. Image Replacement๋ฅผ ์ฌ์ฉํด์ผ ํ ๋, ์ ํธํ๋ ๊ธฐ์ ๊ณผ ์ธ์ ์ฌ์ฉํ๋์ง๋ฅผ ์ค๋ช ํด์ฃผ์ธ์. ๋ธ๋ผ์ฐ์ ์คํ ์ฐจ์ด์ ๋ฐ๋ฅธ ์คํ์ผ๋ง ์ด์๋ฅผ ์์ ํ๊ธฐ ์ํด์ ์ด๋ป๊ฒ ์ ๊ทผํ๋์? ๊ธฐ๋ฅ์ด ์ ์ฝ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํด์ ์ด๋ค ๋ฐฉ์์ผ๋ก ํ์ด์ง.. HTML doctype์ด ๋ฌด์์ ํ๋ ๊ฒ์ธ๊ฐ์? ํ์ค๋ชจ๋(standards mode)์ ์ฟฝ์ค๋ชจ๋(quirks mode)์ ๋ค๋ฅธ ์ ์ ๋ฌด์์ธ๊ฐ์? XML๊ณผ XHTML์ ๋ค๋ฅธ ์ ์ ๋ฌด์์ธ๊ฐ์ XHTML์ ์ด์ฉํ ํ์ด์ง์ ํ๊ณ์ ์ ๋ฌด์์ด ์๋์? application/xhtml+xml์ผ๋ก ์ง์ ํ ํ์ด์ง์ ์ด๋ ํ ๋ฌธ์ ๊ฐ ์๋์? ๋ค๊ตญ์ด๊ฐ ํฌํจ๋ ํ์ด์ง๋ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ณตํ๋์? ๋ค๊ตญ์ด ํ์ด์ง๋ฅผ ์ ๊ณตํ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์. data-์์ฑ์ ๋ฌด์์ ํ๋ ๊ฒ์ธ๊ฐ์? ์ฌ์ฉํ์ ๋ ์ด์ ์ ๋ฌด์์ธ๊ฐ์? HTML5๋ฅผ ์คํ ์น ํ๋ซํผ(open web platform)์ผ๋ก ์๊ฐํด๋ณธ๋ค๋ฉด, ์ด๋ค ๊ฒ๋ค๋ก ๊ตฌ์ฑ๋ผ ์์๊น์? ์ฟ ํค(Cookies)์ ์ธ์ ์ ์ฅ์(sessionStorage)์ ๋ก์ปฌ์ ์ฅ์(localStorage)์ ์ฐจ์ด.. ์ด์ 1 ๋ค์