๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฐ 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)์˜ ์ฐจ์ด..