Front-End
HTML Inline ์์์ Block ์์์ ์ฐจ์ด์ ?
- Inline ์์ : ๋ธ๋ผ์ฐ์ ์์ ์ค๋ฐ๊ฟ ์์ด ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ฆฌ๋จผํธ (
<td>
,<b>
,<a>
...) - Block ์์ : ๋ธ๋ผ์ฐ์ ์์ ์ค๋ฐ๋ ์์๊ฐ ์ ์ฉ๋ ์๋ฆฌ๋จผํธ (
<h>
,<p>
,<ul>
,<li>
...)
์๋งจํฑ / ๊ตฌ์กฐ์ ๋งํฌ์
- ๊ฒ์์์ง์ ํตํ์ฌ ๊ฒ์์ด ๋ฌธ์๊ฒ์ ํน์ ํฌ๋กค๋ง์ด ๊ฐ๋ฅํ๊ฒ ์ ๊ทผ์ฑ์ ๋์ธ ๋งํฌ์
body > div
์ body div
์ ์ฐจ์ด์ ?
CSS Selector ์์ - body > div : ์์ ๋ ธ๋๊ฐ body ํ๊ทธ๋ฅผ ๊ฐ์ง๋ div ํ๊ทธ
- body div : ์์ ๋ ธ๋๋ค ์ค์ body ํ๊ทธ๋ฅผ ๊ฐ์ง๋ div ํ๊ทธ
static
, relative
, absolute
, fixed
์ ์ฐจ์ด์
CSS Position ์ค์ - static : ํฌ์ง์ ์ค์ ์ ํ์ง ์์์ ๋ static
- relative : ์๋์ ์ธ ์์น์ ๋ณด๋ฅผ ์ง์ ํ ๋ ์ฌ์ฉ
- absolute : ์ ๋์ ์ธ ์์น์ ๋ณด๋ฅผ ์ง์ ํ ๋ ์ฌ์ฉ
- fixed : ๊ณ ์ ๋ ์์น์ ๋ณด๋ฅผ ์ง์ ํ ๋ ์ฌ์ฉ
Reset CSS ๋ ?
- ๋ธ๋ผ์ฐ์ ์ ์๊ด ์์ด ๊ฐ์ ๋ชจ์์ ๋ํ๋ด๋๋ก CSS ๋ฅผ ์ด๊ธฐํ ํ๋๊ฒ์ ๋งํจ
- normalize css ๋ผ๋ ๊ฒ๊ณผ ์ ์ฌํ์ง๋ง ๊ฐ์ ๋ก ์ด๊ธฐํ ์ํค๋ reset css ์๋ ๋ค๋ฅด๊ฒ ๋ธ๋ผ์ฐ์ ๋ณ ์ฐจ์ด๋ฅผ ๋ณด์ด๋ ๋ถ๋ถ๋ง ํน์ ๋์์ธ์ ์ธ ์์๋ฅผ ๊ฐ๋ฏธํด์ reset ๋ฅผ ํด์ค๋ค๋ ์ฐจ์ด์ ์ด ์๋ค.
CSS BOX MODEL ์ ๋ํด ์ค๋ช
- Margin, Border, Padding, Width & Height ๋ฑ์ ๊ทธ๋ฆผ์ ๊ทธ๋ ค์ ์ค๋ช
IR ๊ธฐ๋ฒ์ด๋ ?
- ์ด๋ฏธ์ง๋ฅผ ๋์ฒดํ ์๋ฆฌ๋จผํธ๋ฅผ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ก ์ค์ ํ๊ณ
<span>
ํ๊ทธ์ ๊ฐ์๊ฒ์ผ๋ก ๊ฐ์ธ๋ฉด์ ์๋ณด์ด๊ฒ ์ฒ๋ฆฌ
์๋ฐ์คํฌ๋ฆฝํธ์์ null ๊ณผ undefined ์ฐจ์ด์ ์ ?
- null ์ ๊ฐ์ด
null
์ด ํ ๋น๋ ๊ฒ - undefined ๋ ์๋ฌด๋ฐ ๊ฐ์ด ํ ๋น๋์ง ์๋๊ฒ
typeof
๋ก ํ์ธํด๋ณด๋ฉดnull
์object
๋ก ํ์ธ๋๋ฉฐundefined
๋undefined
๋ก ํ์ธ ๊ฐ๋ฅ
==
์ ===
์ ์ฐจ์ด์ ์ ?
- ๊ฐ๋ง ๊ฐ๋ค ํน์ ํ์ ๊น์ง ๊ฐ๋ค์ ์ฐจ์ด์ ์ด๋ค.
==
์ธ ๊ฒฝ์ฐ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ํ์ ์ด ๊ฐ๋๋ก ํ๋ณํ ๊ณผ์ ์ ๊ฑฐ์นํ ๊ฐ์ ๋น๊ตํ๋ค.- ์๋ฐ์คํฌ๋ฆฝํธ๋ type safe ํ ์ธ์ด๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ฐจ์ด์ ์ด ์๋ค. (java ๋ type safe ํ ์ธ์ด์)
Hoisting ์ด๋ ?
- ํจ์์ ์ ์ธ๊ณผ ๋ณ์์ ์ ์ธ์ด ํด๋น ์ ํจ๋ฒ์ ์์๋ก ์ฎ๊ฒจ์ง๋ฉฐ ๋ณ์๋
undefined
๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๊ฐ๋ ํ์ - ํจ์์ ํํ์์ ํด๋น๋์ง ์์ผ๋ฉฐ ๊ฐ์ ๋ณ์๋ช ๊ณผ ํจ์๋ช ์ด ์์๊ฒฝ์ฐ ๋ณ์๋ช ์ด ์ฐ์ ์์๊ฐ ๋์์ง
- ES6 ์์๋ ํธ์ด์คํ ์ด ์ง์์๋๋๊ฒ์ด ์ ์ค์ด์ง๋ง TDZ ๊ด์ ์์ ์๋ค๊ณ ๋ด๋ ๋ฌด๊ดํ๊ธฐ ๋๋ฌธ์ด๋ค.
์์์ ์ฌ๊ฐ์ง๋ (TDZ : Temporal Dead Zone)
์ด๊ธฐํ (์ ์ธ) ๊ฐ ๋์ง ์๋ ๊ฐ์ฒด๋ค์ ์ฐธ์กฐ ํ ์ ์๋ค.
ํธ์ด์คํ
์ด ๋์ง ์๋๊ฒ์ ์๋ - ES5 ์ฒ๋ผ undefined
๋ก ์ ํ ๋น์ด ์๋จ
DOM Event Model ์์ Bubbling ๊ณผ Capturing ์ ์ฐจ์ด์ ์ ?
- Bubbling : ์์๋ ธ๋ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋ฌ์ ๊ฒฝ์ฐ ๋ถ๋ชจ๊น์ง ์ด๋ฒคํธ๊ฐ ์ ํ๋๋ ํ์
- Capturing : ๋ถ๋ชจ์์ ์์์ผ๋ก ์ด๋ฒคํธ๊ฐ ์ ๋ฌ๋๋ ํ์
- DOM Delegation ์ผ๋ก ์ด์ด์ ์ค๋ช ํด์ผ ํจ
DOM Delegation ์ด๋ ?
- Event Bubbling ์ด๋ Capturing ์ด ์ผ์ด๋ ๋ ์ฑ๋ฅ์ ์ธ ์ด์๊ฐ ์ผ์ด๋๊ฑฐ๋ ํน์ ์๋ก ์ถ๊ฐ๋๋ ์์ผ์ ์ด๋ฒคํธ ๋ฐ์ธ๋ฉ์ด ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ์ด๋ฒคํธ ์์ ๋ฐฉ๋ฒ์ด๋ค.
- ์ด๋ฒคํธ ํ๊ฒ์ ๋ถ๋ชจ์ ์ด๋ฒคํธ๋ฅผ ๊ฑธ์ด์ค ๋ค ๋ฐ์๋๋ ์ด๋ฒคํธ ํ์ ๊ณผ ์ ๋ ํฐ๋ฅผ ์ฒดํฌํ์ฌ ์ ์ดํ๋ ์์ด๋ค.
์น ์ฑ๋ฅ ํ๋์ ์ฌ์ฉํ๋ ๋๊ตฌ๋ ?
- ๋ธ๋ผ์ฐ์ ์ ๋๋ฒ๊น ๋๊ตฌ, Google Pagespeed Insight, webpagetest.org dynatrace, showslow ๋ฑ๋ฑ์ ํ์ฉ
Ajax ์ฌ์ฉ์ ํ๊ฒ์ URL ๋๋ฉ์ธ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ ?
- JSONP, CORS ๋ฑ์ ์ด์ฉํ์ฌ ํด๊ฒฐ
- JSONP : DOM ํธ๋ฆฌ์ ์ถ๊ฐ๋๋ฉด ์ธ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ ์ ์๋๊ฒ์์ ์ฐฉ์ํ์ฌ ์ฌ์ฉ
- ๋์ผ ์ถ์ฒ ์ ์ฑ (SOP : Same Origin Policy) ์ ํฌํจ๋์ง ์์
์ต๊ทผ FrontEnd ๋ํฅ / ๋ผ์ด๋ธ๋ฌ๋ฆฌ / ํ๋ ์์ํฌ / ์คํฉ / ๊ธฐ๋ฅ ๋ค์ ๊ด์ฌ์๋ ๋ถ์ผ?
- vue > React > ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ฆ (์ ์ธ๋) ์ด๋ผ๊ณ ๋ณด๊ณ ์๋ค (19/02)
- ๋ฐ๋๋ผ JS ๋ฅผ ์ข์ํ๊ธฐ ๋๋ฌธ์ ...
๋ค์ ์ํฉ์ ๊ตฌํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์์ ํ์์
์จ๋ผ์ธ ์ด๋ฉ์ผ ์น์๋น์ค๋ฅผ ๊ตฌํํ๋ค๊ณ ๊ฐ์ ํ์. ์ด ํ์ด์ง์๋ ๋ฆฌํ๋ ์ ๋ฒํผ์ด ํ๋ ์๋๋ฐ, ์ด ๋ฒํผ์ ๋๋ฅด๋ฉด ํ์ด์ง๋ฅผ ๋ค์ ๋ก๋ฉํ์ง ์๊ณ ์๋ก ๋์ฐฉํ ๋ฉ์ผ์ ๊ฐ์ ธ์ ํ๋ฉด์ ํ์ํด์ฃผ๋ ๊ธฐ๋ฅ์ ์ํํ์ฌ์ผ ํ๋ค. ์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํด์ผํ๋์ง ์ต๋ํ ์์ธํ ์ค๋ช
ํ์์ค. ์๋ฒ์ธก ๊ตฌํ์ ์ด๋ฏธ ๋ค ๋์ด์๋ค๊ณ ๊ฐ์ ํ๋ค.
- DOM Event ์ฒ๋ฆฌ ๋์, DOM ์กฐ์, XHR ๋๋ JSONP / CORS ๋ฑ๋ฑ๊ณผ ๊ฐ์ ๋ด์ฉ๋ค์ ๋ง๋ถ์ฌ ์ค๋ช ํ๋ค.
์น ์ ๊ทผ์ฑ์ด๋ ?
- ๊ธฐ๋ณธ์ ์ธ ์น ํ์ค ์ค์ ๋ฐ ์ ๊ทผ์ฑ์ ๋ํ ๋ด์ฉ์ ์ค๋ช
- ์๊ฐ ์ฅ์ ์ธ๋ค์ ์ํ TTS ๋ ์ฝ์, ์์ฝ, ์ง์ฒด ์ฅ์ ์ธ๋ค์ ๋ํ ๋์
- ๋ฐ๋ก๊ฐ๊ธฐ๋งํฌ
- ๋ช ๋๋๋น ์ค์
- ๊น๋นก์ ๋น๋
- ํด๋ฆญ์์ญ์ ํฌ๊ธฐ
alt
๋์ฒด ํ ์คํธ์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ธ ๊ฒ๋ค์ ํฌํจ
JSON ๊ณผ JSONP ์ ์ฐจ์ด์ ?
- JSON ์ Java String Object Notation ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ํํํ๊ธฐ ์ํ ๊ฐ์ฒด์ด๋ฉฐ
- JSONP ๋ Ajax ์์ CORS ์ด์ ๋ฐ์์ ์ฐํ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ๋ ํต์ ๋ฐฉ์์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ Scope Chain ์ ๋ํด์ ์ค๋ช
- ๋ณ์๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ์ ํจ๋ฒ์๋ฅผ ๋งํ๋ค.
- ํจ์๋จ์๋ก ์ ํจ๋ฒ์๊ฐ ๋ณํ๋ฉฐ ๋ด๋ถ ํจ์๋ก ์ง์ ์ ์๋ก์ด ์ค์ฝํ๊ฐ Stack ํํ๋ก ๊ตฌ์ฑ๋๋ค.
- Scope Chain ์ ํ์์์ ์์๋ก ๋ฑ๋ก๋ ๋ณ์๊ฐ ์๋์ง ํ์ธํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ํด๋ก์ ธ๋ ?
- ์ ํจ๋ฒ์๋ฅผ ๊ฐ์ง๋ ์ฝ๋ ๋ธ๋ญ
- ์์์ ์ค์ฝํ๋ก ๋ณ์์ฐธ์กฐ๊ฐ ์ผ์ด๋๋๊ฒ์ ๋งํ๋ค.
๋ชจ๋ ํจํด์ ๋ํด์ ์ค๋ช
- ์ฝ๋๋ฅผ ๋ชจ๋ํ ์์ผ ๋ณ์์ ๋ฒ์๋ฅผ ์ ํํ๋ ํจํด
public
๊ณผprivate
ํ ์ ํจ๋ฒ์๋ฅผ ๊ฐ์ง ์ ์๋ค.
๋ธ๋ผ์ฐ์ ๋๋๋ง ๊ณผ์ ์ ์ค๋ช
- HTTP Request > (์๋ฒ) > HTTP Response > HTML ํ์ฑ > CSS / JS Request > ํ์ฑ > DOM ํธ๋ฆฌ > ๋ ๋ํธ๋ฆฌ > ํ์ธํธ
๋ค์ ์ํฉ์ ๋ํด ์ค๋ช ํ์์ค
์๋ฒ๋ ์๋ต์ ๋น ๋ฅด๊ฒ ์ถ๋ ฅํ๊ณ ์์ง๋ง ์น ํ์ด์ง๊ฐ ๋ฆ๊ฒ ๋จ๊ณ ์๋ค.
์น ์ฌ์ดํธ๋ฅผ ์ต์ ํ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ?
- ์๋ฒ Request ํ์
- CSS / JS ๋ฅผ minify ํ์ฌ ์ฌ์ฉ
- gzip ์ ์ก
- ์ด๋ฏธ์ง ์ต์ ํ ๋ฐ Lazy ๋ก๋ฉ ์ฌ์ฉ
- CDN ์ฌ์ฉ
- JS ํ์ผ์ async / defer ์ฌ์ฉ
- ๋๋๋ง ์ต์ ํ
- ๋งํฌ์ ๋ณต์ก๋๋ฅผ ๋จ์ํ
- reflow ํน์ repaint ์ต์ํ
๋ค์ํ ํฌ๊ธฐ์ ํ๋ฉด ๋์ ๋ฐ ๋ฉํฐ ํ๋ ํผ์ ๋ํ ๋์ ๋ฐฉ์ ?
- ๊ฐ ๋๋ฐ์ด์ค๋ณ ์ต์ ํ๋ฅผ ์ํ ๋ฐฉ๋ฒ๋ค
- ๋ฐ์ํ ๋์์ธ์ ์ํ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉ
ES5 / ES6 ์ ์ฐจ์ด์ ์ ?
- const, let
- promise
- spread operator
- rest parameter
screenX, pageX, clientX, offsetX, layerX ์ ์ฐจ์ด์ ์ ?
- screenX : ๋ชจ๋ํฐ ๊ธฐ์ค
- pageX : document ๊ธฐ์ค
- clientX & offsetX : ๋ธ๋ผ์ฐ์ ๊ธฐ์ค
- offsetX : ํ๊ฒ ๊ธฐ์ค
์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์๋ต์ ์ ๋ฐ์ ์ํ์ง๋ง ์น ํ์ด์ง๊ฐ ๋น์ ์ ์ ์ผ๋ก ๋ ๋๋ง ๋์ด ์๋ค๊ณ ๊ฐ์ ํ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ์์๊น ?
- JS ์ค๋ฅ
- ๋ฌดํ๋ฃจํ
- ๋ฌธ๋ฒ
- ๋น ์ ์ ์ ๊ทผ
- ์๋ฒ ์๋ต ์ค๋ฅ
- DOM ํ์ฑ ์ค๋ฅ
- ๋ซ๋ ํ๊ทธ์ ์ค๋ฅ
- ๋ฌธ์๋ชจ๋ ๋ฐ ๋ฉํํ๊ทธ ์ ๋ณด ์ค๋ฅ
- ํ์ด์ง ์ธ์ฝ๋ฉ
querySelector ์ jQuery Selector ์ ์ฐจ์ด์ ?
- querySelector : ๋ฐํ์ด 1๊ฐ
- jQuery Selector : ๋ฐํ๊ฐ์ด ์ฌ๋ฌ๊ฐ ๋ณต์ (querySelectorAll ๊ณผ ๊ฐ์)
- querySelector ์์๋
class
๋ก ๋ง์ด ์ฌ์ฉ์ ์ํ๊ณattribute
๋ก๋ง ์ฌ์ฉ (์ฑ๋ฅ์ ์ธ ์ธก๋ฉด ๋๋ฌธ์ / data ์์ฑ์ด ์ ์ผ ๋น ๋ฆ)
์๋ฐ์คํฌ๋ฆฝํธ์์ Iteration Method ์ ๋ํด์ ์ค๋ช
Symbol.Iterator
์์ฑ์ ๊ฐ๋ ๊ฐ์ฒด๋ฅผ Iterable ํ ๊ฐ์ฒด๋ผ๊ณ ํ๋ค.- Array.Prototype.forEach : ๋ชจ๋ ์๋ฆฌ๋จผํธ๋ฅผ callback ์ ๋๊ฒจ ์คํ
- Array.Prototype.map : ์ธ์๋ก ๋๊ฒจ์ง ์๋ฆฌ๋จผํธ๋ฅผ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฆฌํด
- Array.Prototype.filter : ์กฐ๊ฑด์ ๋ง๋ ๊ฐ๋ค๋ก ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฆฌํด
์๋ฐ์คํฌ๋ฆฝํธ์์ var ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฐ์๋๋ ํ์ ?
- ์ ์ญ ํ๋กํผํฐ๋ก ๋ฑ๋ก ๋๋ค.
use strict
(์๊ฒฉ๋ชจ๋) ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐฉ์ง ๊ฐ๋ฅํ๋ฉฐ eslint ๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ผํ ํจ๊ณผ- ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค๋ ์
RESTful ๊ฐ๋ฐ์ HTTP Method ๋ฅผ ์ค๋ช
- POST : ๋ฆฌ์์ค๋ฅผ ์์ฑ
- GET : ๋ฆฌ์์ค๋ฅผ ์์ฒญ
- PUT & PATCH : ๋ฆฌ์์ค๋ฅผ ๋ณ๊ฒฝ
- DELETE : ๋ฆฌ์์ค๋ฅผ ์ญ์
๊ทธ๋ํฝ ์ฒ๋ฆฌ์์ ๋ฐฑํฐ์ ๋นํธ๋งต์ ์ฐจ์ด์
- Vector : ๋ฐฉํฅ๊ธฐ๋ฐ (SVG)
- Bitmap : ํ์๊ธฐ๋ฐ (Canvas)
SPA ์์์ ๋ค๋ก๊ฐ๊ธฐ
- ์ต์ปค๋ ํด์๋ฑ (#!) ๋ฅผ ํตํ ํ์คํ ๋ฆฌ ์กฐ์
pushState
๋ฅผ ์ด์ฉํ ํ์คํ ๋ฆฌ ์กฐ์ ๋ฐฉ๋ฒ
Promise ๋ ?
- ๋น๋๊ธฐ๋ก ์์ ์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํ ํจํด
then
then
๊ตฌ๋ฌธ์ผ๋ก ์ฌ์ฉ