๐์น์ ๊ธฐ๋ณธ ๊ฐ๋
1. ์ธํฐ๋ท๊ณผ ์น์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ธํฐ๋ท์ด ๊ณ ์๋๋ก๋ผ๋ฉด ์น์ ์๋์ฐจ? ใ
ใ
...
2. HTTP์ HTTPS์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
HTTPS๋ HTTP์ ๋ณด์์ฑ์ด ์ถ๊ฐ๋ ๊ฐ๋
์
๋๋ค. HTTP์ SSL/TLS ์ํธํ๋ฅผ ์ถ๊ฐํ ํ๋กํ ์ฝ์ผ๋ก ๋ฐ์ดํฐ ์ ์ก ์ค์ ๋ณด์์ ๋ณด์ฅํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ๊ฐ ํต์ ์ด ์ํธํ๋๋ฏ๋ก ๋์ฒญ์ด๋ ๋ฐ์ดํฐ ๋ณ์กฐ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
3. HTTP์ ์ฃผ์ ๋ฉ์๋(GET, POST, PUT, DELETE ๋ฑ)์ ๋ํด ์ค๋ช
ํ์ธ์.
- GET: ๋ฐ์ดํฐ๋ฅผ ์กฐํ
- POST: ๋ฐ์ดํฐ๋ฅผ ๋ฑ๋ก
- PUT: ๋ฐ์ดํฐ ๋์ฒด
- PATCH: ๋ฐ์ดํฐ๋ฅผ ์ผ๋ถ ์์
- DELETE: ๋ฐ์ดํฐ ์ญ์
*๋ฉฑ๋ฑ์ฑ
๋ฉฑ๋ฑ์ฑ์ด๋ ๋์ผํ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํด๋ ๊ฒฐ๊ณผ๊ฐ ๋์ผํ๊ฒ ์ ์ง๋๋ ์ฑ์ง์ ์๋ฏธํฉ๋๋ค.
- ๋ฉฑ๋ฑ์ฑO: GET, PUT, DELETE
- ๋ฉฑ๋ฑ์ฑX: POST
- ๋ฉฑ๋ฑ์ฑOX: PATCH
4. HTTP ์ํ ์ฝ๋(200, 301, 404, 500 ๋ฑ)์ ๋ํด ์ค๋ช
ํ์ธ์.
- 1XX(์ ๋ณด ์๋ต): ์์ฒญ์ด ์์ ๋์๊ณ ์ฒ๋ฆฌ๊ฐ ์งํ ์ค์์ ๋ํ๋ธ๋ค
- 2XX(์ฑ๊ณต): ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋์์์ ๋ํ๋ธ๋ค.
- 3XX(๋ฆฌ๋ค์ด๋ ์ ): ์์ฒญํ ๋ฆฌ์์ค๊ฐ ๋ค๋ฅธ ์์น๋ก ์ด๋ํ์์ ๋ํ๋ธ๋ค.
- 4XX(ํด๋ผ์ด์ธํธ ์๋ฌ): ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฌธ์ ๊ฐ ์์์ ๋ํ๋ธ๋ค.
- 5XX(์๋ฒ ์๋ฌ): ์๋ฒ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ ๋ํ๋ธ๋ค.
5. ์ฟ ํค์ ์ธ์
์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ฟ ํค๋ ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋์ด ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํด๋ผ์ด์ธํธ์์ ๊ด๋ฆฌํฉ๋๋ค. ์ฃผ๋ก ๊ฐ๋จํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ธ์
์ ์๋ฒ์ ์ ์ฅ๋์ด ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํ๋ฉฐ, ์ธ์ฆ์ด๋ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ์ ํฉํฉ๋๋ค.
6. ์ฟ ํค, ๋ก์ปฌ ์คํ ๋ฆฌ์ง, ์ธ์
์คํ ๋ฆฌ์ง์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ฟ ํค๋ HttpOnly, Secure, SameSite ์์ฑ์ ํตํ์ฌ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ๋นํด XSS, CSRF ๊ณต๊ฒฉ์ ์ ๋์ํ ์ ์๋ค.
- HttpOnly: HttpOnly ์์ฑ์ ํตํด์ JS๋ก ์ ๊ทผํ ์ ์๋๋ก ํ ์ ์๋ค.
- Secure: Secure ์์ฑ์ ํตํด์ HTTPS ์ฐ๊ฒฐ์์๋ง ์ ์ก๋๋๋ก ์ ํํ ์ ์๋ค.
- SameSite: SameSite ์์ฑ์ ํตํด์ ๋์ผํ ์ถ์ฒ๋ผ๋ฆฌ๋ง ์ ์ก๋๋๋ก ์ ํํ ์ ์๋ค.
7. CORS(Cross-Origin Resource Sharing)๋ ๋ฌด์์ธ๊ฐ์?
๋ธ๋ผ์ฐ์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก Same Origin Policy๋ฅผ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ๋์ผํ ์ถ์ฒ๋ผ๋ฆฌ๋ง ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ ์ ์๋ค. CORS(Cross- Origin Resource Sharing)๋ ๋์ผํ ์ถ์ฒ๊ฐ ์๋ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋๋ก ํ์ฉํ๊ฑฐ๋ ์ ํํ๋ ๋ณด์ ๋งค์ปค๋์ฆ์ ๋๋ค.
8. CDN(Content Delivery Network)์ด๋ ๋ฌด์์ด๋ฉฐ, ์ ์ฌ์ฉํ๋์ง ์ค๋ช
ํ์ธ์.
9. REST์ RESTful API์ ๋ํด ์ค๋ช
ํ์ธ์.
REST๋ url๋ก ์์์ ๊ตฌ๋ถํ๊ณ , HTTP ๋ฉ์๋(GET, POST, PATCH, PUT, DELETE)๋ฅผ ์ฌ์ฉํด ํด๋น ์์์ ๋ํ ์์
์ ์ํํ๋ ์ํคํ
์ฒ ์คํ์ผ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ RESTful API๋ REST ์ํคํ
์ฒ๋ฅผ ๋ฐ๋ฅด๋ API๋ฅผ ์๋ฏธํฉ๋๋ค. RESTful API๋ฅผ ํตํด ์์์ ๊ด๋ฆฌํ ๋ ์ง๊ด์ ์ด๊ณ ์ผ๊ด์ฑ ์๊ฒ ์ค๊ณํ ์ ์์ต๋๋ค.
10. GraphQL๊ณผ REST API์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
๐๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง
1. ๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ๊ตฌ์ฑ ์์๋ ๋ฌด์์ธ๊ฐ์?
2. ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ์ ๋ํด ์ค๋ช
ํ์ธ์.
HTML์ ํ์ฑํ์ฌ DOM ํธ๋ฆฌ๋ฅผ ์์ฑํ๊ณ , CSS๋ฅผ ํ์ฑํ์ฌ CSSOM ํธ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. ๋ ํธ๋ฆฌ๋ฅผ ํฉ์ณ ๋ ๋ ํธ๋ฆฌ๋ฅผ ์์ฑํ๊ณ Layout>Paint>Composite ๊ณผ์ ์ ๊ฑฐ์ณ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง์ด ์ด๋ฃจ์ด์ง๊ฒ ๋ฉ๋๋ค.
- Layout: ๊ฐ ์์์ ํฌ๊ธฐ์ ์์น๋ฅผ ๊ณ์ฐ
- Paint: ๊ฐ ์์๋ฅผ ํ๋ฉด์ ๊ทธ๋ฆฐ๋ค.
- Composite: ์์๋ฅผ ํฉ์ณ ํ๋ฉด์ ์ต์ข ์ ์ผ๋ก ํ์ํ๋ค.
3. DOM๊ณผ CSSOM์ด๋ ๋ฌด์์ธ๊ฐ์?
DOM(Document Object Model) ํธ๋ฆฌ๋ HTML ๋ฌธ์๋ฅผ ํ์ฑํ ๊ฒ์ผ๋ก, HTML ๊ตฌ์กฐ๋ฅผ ํํํ์ฌ ๊ฐ HTML ํ๊ทธ๊ฐ ๋
ธ๋๋ก ๋ณํ๋ฉ๋๋ค.
CSSOM(CSS Object Model) ํธ๋ฆฌ๋ ์คํ์ผ ์ ๋ณด๋ฅผ ๊ตฌ์กฐํํ ๊ฒ์ผ๋ก, DOM ํธ๋ฆฌ์ ๊ฒฐํฉํด ๋ ๋๋ง ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
4. Reflow์ Repaint์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
Reflow๋ ์์์ ๋ ์ด์์์ด๋ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋ ๋ ๋ฐ์ํ๋ฉฐ, DOM ๋ ์ด์์์ ๋ค์ ๊ณ์ฐํ๊ณ ์์๋ฅผ ์๋กญ๊ฒ ๋ฐฐ์นํฉ๋๋ค. Repaint๋ ์๊ฐ์ ์คํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ ๋ฐ์ํฉ๋๋ค. (์: CSS ์์ฑ ์ค์ color, background-color, visibility, box-shadow ๋ฑ) Repaint๊ฐ Reflow์ ๋นํด ๊ณ์ฐ ๋น์ฉ์ด ์ ์ต๋๋ค.
5. ๋ธ๋ผ์ฐ์ ์ ์ด๋ฒคํธ ๋ฃจํ(Event Loop)๋ ๋ฌด์์ธ๊ฐ์?
์ด๋ฒคํธ ๋ฃจํ๋ JavaScript์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋งค์ปค๋์ฆ์ผ๋ก, ์ด๋ฒคํธ ๋ฃจํ๊ฐ ๋๋ฉด์ ์ฝ์คํ์ด ๋น์ด์๋ค๋ฉด ์ฝ๋ฐฑ ํ์ ๋ค์ด ์๋ ํจ์๋ฅผ ์ฝ์คํ์ผ๋ก ์ฎ๊ฒจ ํจ์๊ฐ ์คํ๋๋๋ก ํ๋ค.
6. ์ค๋กํ๋ง(throttling)๊ณผ ๋๋ฐ์ด์ฑ(debouncing)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ค๋กํ๋ง(throttling)์ ์ผ์ ํ ์๊ฐ ๊ฐ๊ฒฉ ๋์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํ ๋ฒ๋ง ์คํํ๋๋ก ํ๋ ๊ฒ์ด๊ณ , ๋๋ฐ์ด์ฑ(debouncing)์ ์ด๋ฒคํธ๊ฐ ์ฐ์์ ์ผ๋ก ๋ฐ์ํ ๋ ๋ง์ง๋ง ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ํ ์ผ์ ์๊ฐ ๋์ ์ถ๊ฐ ์ด๋ฒคํธ๊ฐ ์์ ๋๋ง ์คํํ๋ค.
7. ์ฑ๊ธ ์ฐ๋ ๋ ํ๊ฒฝ์์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ํํ๋์ง ์ค๋ช
ํ์ธ์.
์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋ฐ๋ณต์ ์ธ ์์
๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์๋ ๋ธ๋ผ์ฐ์ ์ ๋ฉํฐ์ค๋ ๋์ธ WebAPIs์์ ์ฒ๋ฆฌ๋๋ค. ์ด๋ฒคํธ ๋ฃจํ๊ฐ ๋๋ฉด์ ์ฝ๋ฐฑ ํ๊ฐ ๋น์ด ์๋ค๋ฉด ์ฝ์คํ์ ๋ค์ด ์๋ ํจ์๋ฅผ ์ฝ์คํ์ผ๋ก ์ฎ๊ฒจ ์คํํ๋ค.
8. ์๋น์ค ์์ปค(Service Worker)์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
9. ์น ์์ปค(Web Worker)๋ ๋ฌด์์ด๋ฉฐ, ์ ์ฌ์ฉํ๋๊ฐ์?
10. ์น ์ ๊ทผ์ฑ(Web Accessibility)์ด๋ ๋ฌด์์ธ๊ฐ์?
๐HTML
1. HTML5์ ์๋ก์ด ๊ธฐ๋ฅ์๋ ๋ฌด์์ด ์๋์?
1) ์๋ก์ด ์๋งจํฑ ํ๊ทธ(์๋ฏธ๋ฅผ ๋ช
ํํ ์ ๋ฌํ๋ ๊ตฌ์กฐ์ ํ๊ทธ): <header>, <footer>, <section>, <article>, <nav>, <aside>
2) ๋ฉํฐ๋ฏธ๋์ด ์ง์(์ค๋์ค์ ๋น๋์ค ํ๊ทธ): <audio>์ <video> ํ๊ทธ๋ฅผ ์ฌ์ฉํด ํ๋ฌ๊ทธ์ธ ์์ด ๋ฉํฐ๋ฏธ๋์ด ์ฝํ
์ธ ์ฝ์
๊ฐ๋ฅ
3) ๊ทธ๋ํฝ๊ณผ ์ ๋๋ฉ์ด์
: <canvas>ํ๊ทธ, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํด 2D ๊ทธ๋ํฝ๊ณผ ์ ๋๋ฉ์ด์
์ ์์ฑ
4) ์คํ ๋ฆฌ์ง ๊ธฐ๋ฅ: ๋ก์ปฌ ์คํ ๋ฆฌ์ง, ์ธ์
์คํ ๋ฆฌ์ง
5) ์๋ก์ด API: Geolocation API, WebSocket API ๋ฑ
์๋ฉํฑ ํ๊ทธ(semantic tag)๋ ๋ฌด์์ธ๊ฐ์?
HTML5์ <canvas>์ <svg>์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
data-* ์์ฑ์ด๋ ๋ฌด์์ด๋ฉฐ, ์ธ์ ์ฌ์ฉํ๋๊ฐ์?
<meta> ํ๊ทธ์ ์ญํ ์ ๋ํด ์ค๋ช
ํ์ธ์.
HTML5์ ์๋ก์ด ์
๋ ฅ ์ ํ(input types)์ ๋ํด ์ค๋ช
ํ์ธ์.
<link>์ <script> ํ๊ทธ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
<iframe>์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
HTML ๋ฌธ์์์ ์์์ ์ฐ์ ์์๋ ์ด๋ป๊ฒ ๊ฒฐ์ ๋๋์?
HTML๊ณผ XHTML์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
๐CSS
- CSS์ ์์๊ณผ ์ฐ์ ์์์ ๋ํด ์ค๋ช ํ์ธ์.
- CSS ๋ฐ์ค ๋ชจ๋ธ(Box Model)์ด๋ ๋ฌด์์ธ๊ฐ์?
- CSS Flexbox์ Grid์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- CSS์์ position ์์ฑ์ ๊ฐ๋ค(static, relative, absolute, fixed, sticky)์ ์ค๋ช ํ์ธ์.
- CSS display ์์ฑ์ ์ฃผ์ ๊ฐ๋ค(block, inline, inline-block, none)์ ๋ํด ์ค๋ช ํ์ธ์.
- CSS z-index๋ ์ด๋ป๊ฒ ์๋ํ๋์?
- CSS @media ์ฟผ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ์?
- CSS ์ ์ฒ๋ฆฌ๊ธฐ(SCSS, LESS ๋ฑ)์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?
- CSS ๋ณ์(var())์ ์ฌ์ฉ๋ฒ๊ณผ ์ฅ์ ์ ๋ํด ์ค๋ช ํ์ธ์.
- CSS ์ ๋๋ฉ์ด์ ๊ณผ ํธ๋์ง์ (Transition)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
๐์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ ๊ฐ๋
1. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐ์ดํฐ ํ์
์๋ ๋ฌด์์ด ์๋์?
2. ์๋ฐ์คํฌ๋ฆฝํธ์์ ==์ ===์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
3. ํด๋ก์ (Closure)๋ ๋ฌด์์ธ๊ฐ์?
์๋ฐ์คํฌ๋ฆฝํธ์ ํด๋ก์ ๋ ๋ด๋ถ ํจ์๊ฐ ์ธ๋ถ ํจ์์ ๋ณ์๋ ์ํ์ ์ ๊ทผํ ์ ์๋ ๊ธฐ๋ฅ์ ๋งํ๋ฉฐ, ํด๋ก์ ๋ฅผ ํตํด ์ธ๋ถํจ์์ ์คํ์ด ๋๋ ํ์๋ ํด๋น ๋ณ์์ ์ ๊ทผํ ์ ์๊ฒ ํฉ๋๋ค.
*์ฆ, ํด๋ก์ ๋ ํจ์๊ฐ ์์ฑ๋ ๋์ Variable Environment๋ฅผ ์ฐธ์กฐํ๊ณ ์ ์งํ์ฌ, ํจ์ ์ธ๋ถ์ ๋ณ์์ ๊ณ์ ์ ๊ทผํ ์ ์๋๋ก ํฉ๋๋ค.
4. ํธ์ด์คํ
(Hoisting)์ด๋ ๋ฌด์์ธ๊ฐ์?
์ฝ๋ ์คํ ์ ์ ๋ณ์ ์ ์ธ๊ณผ ํจ์ ์ ์ธ์ด ํด๋น ์ค์ฝํ์ ์ต์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ ๊ฒ์ฒ๋ผ ๋์ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ง์ ์๋ฏธํฉ๋๋ค. ์ฝ๋๊ฐ ์คํ๋๊ธฐ ์ ์ ๋ณ์์ ํจ์์ ์ ์ธ์ ๋ฏธ๋ฆฌ ์ฒ๋ฆฌํ์ฌ ์ฝ๋๊ฐ ์คํ๋ ๋ ์ค๋ฅ ์์ด ์ ๊ทผํ ์ ์๋๋ก ํฉ๋๋ค.
์ด๋, var๊ณผ const, let์ ์ฐจ์ด๊ฐ ์กด์ฌํฉ๋๋ค. var์ ๊ฒฝ์ฐ์๋ ๋ณ์์ ์ ์ธ๊ณผ ์ด๊ธฐํ๊ฐ ๋์์ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ์ค์ ๋ณ์๋ฅผ ๋ง๋๊ธฐ ์ ์ ์ด๊ธฐ๊ฐ์ด undefined๋ก ์ค์ ๋์ด ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค. ํ์ง๋ง const, let์ TDZ(Temperal Dead Zone)์ด ๋์ด ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
5. ์ด๋ฒคํธ ๋ฒ๋ธ๋ง(Event Bubbling)๊ณผ ์บก์ฒ๋ง(Event Capturing)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
6. this ํค์๋๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ด๋ป๊ฒ ๋์ํ๋์?
7. call, apply, bind์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
8. ํ๋กํ ํ์
(Prototype)๊ณผ ํ๋กํ ํ์
์ฒด์ด๋์ด๋ ๋ฌด์์ธ๊ฐ์?
9. ์๋ฐ์คํฌ๋ฆฝํธ์ ์ค์ฝํ(Scope)๋ ๋ฌด์์ธ๊ฐ์?
์ค์ฝํ๋ ๋ณ์๋ ํจ์๋ฅผ ์ ์ดํ ์ ์๋ ์ ํจ ๋ฒ์์
๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ค์ฝํ ์ฒด์ธ์ ํตํด ๋ณ์๋ฅผ ์ฐพ์ต๋๋ค. ๋ด๋ถ ์ค์ฝํ์์ ๋ณ์๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด ์ธ๋ถ ์ค์ฝํ๋ก ์ฌ๋ผ๊ฐ๋ฉฐ ์ต์์ ์ค์ฝํ์ธ ์ ์ญ ์ค์ฝํ๊น์ง ์ฌ๋ผ๊ฐ๋ ๋ณ์๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด ReferenceError๊ฐ ๋ฐ์ํฉ๋๋ค. ์ค์ฝํ ์ฒด์ธ์ ํจ์๋ ๋ธ๋ก ๋ด์์ ๋ณ์์ ์ ํจ ๋ฒ์๋ฅผ ์ ํ๊ณ , ์ถฉ๋์ ๋ฐฉ์งํ๋ ์ญํ ์ ํฉ๋๋ค.
*์ค์ฝํ์ฒด์ธ์ ๋ ์์ปฌ ํ๊ฒฝ๋ค์ด ์ฐ๊ฒฐ๋ ๊ตฌ์กฐ๋ก ํ์ฌ ๋ ์์ปฌ ํ๊ฒฝ์์ ์์ํด ์์ ๋ ์์ปฌ ํ๊ฒฝ์ผ๋ก ์ฐฐ๋๋ก ํ์ํ๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
10. ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ(Callback, Promise, async/await)์ ๋ํด ์ค๋ช
ํ์ธ์.
11. ์คํ ์ปจํ
์คํธ๋?
์คํ ์ปจํ
์คํธ๋ ์คํํ ์ฝ๋์ ์ ๊ณตํ ํ๊ฒฝ ์ ๋ณด๋ค์ ๋ชจ์๋์ ๊ฐ์ฒด๋ก variable environment, lexical environment, this binding์ ํฌํจํฉ๋๋ค. ์ฝ์คํ์ ์๋์ผ๋ก ์ ์ญ ์ปจํ
์คํธ๊ฐ ์์ฑ๋ ํ ํจ์ ํธ์ถ์๋ง๋ค ํจ์ ์ปจํ
์คํธ๊ฐ ์์ฑ๋๊ณ , ์ปจํ
์คํธ ์์ฑ์ด ์๋ฃ๋ ํ์ ํจ์๊ฐ ์คํ๋ฉ๋๋ค. ์คํ ์ค์ธ ์ฝ๋๊ฐ ํน์ ๋ณ์๋ฅผ ์ฐธ์กฐํ ๋ ๋ ์์ปฌ ํ๊ฒฝ์์ ์ํ๋ ๋ณ์๋ฅผ ์ฐพ๊ณ ์ฐพ์ง ๋ชปํ๋ฉด ๋ด๋ถ ๋ ์์ปฌ ํ๊ฒฝ์ด ์ฐธ์กฐํ๋ ์ธ๋ถ ๋ ์์ปฌ ํ๊ฒฝ์ผ๋ก ๊ฒ์ ๋ฒ์๋ฅผ ํ์ฅํ๋ฉฐ ์ ์ญ ๋ ์์ปฌ ํ๊ฒฝ๊น์ง ์ด๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
-variable environment: ํ์ฌ ์ปจํ
์คํธ ๋ด์ ์๋ณ์์ ๋ํ ์ ๋ณด์ ์ธ๋ถ ํ๊ฒฝ์ ๋ํ ์ ๋ณด๋ค. ์ ์ธ ์์ ์ lexical environment์ ์ค๋
์ท์ผ๋ก ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์๋์ง ์๋๋ค.
-lexical environment: ๋ณ๊ฒฝ ์ฌํญ์ด ์ค์๊ฐ์ผ๋ก ๋ฐ์๋๋ค.
-this binding: this ์๋ณ์๊ฐ ๋ฐ๋ผ๋ด์ผ ํ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค.
๐ES6+ ์๋ฐ์คํฌ๋ฆฝํธ
ES6+๋ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ์
๋๋ค. ํ
ํ๋ฆฟ ๋ฌธ์์ด, const, let, ๊ตฌ์กฐ ๋ถํด ํ ๋น, ํ์ดํ ํจ์, Promise ๋ฑ์ด ์ถ๊ฐ๋๋ฉด์ JavaScript์ ํํ๋ ฅ๊ณผ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค.
1. let, const, var์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
var๊ณผ let, const๋ ์ค์ฝํ์ ๋ฒ์ ํธ์ด์คํ
๊ณผ ๊ด๋ จํด์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. var์ ํจ์ ์ค์ฝํ, let๊ณผ const๋ ๋ธ๋ก ์ค์ฝํ๋ฅผ ๊ฐ์ง๋๋ค. ๋ฐ๋ผ์ var์ ๋ฌด๋ถ๋ณํ๊ฒ ์ฌ์ฉํ ๊ฒฝ์ฐ ์์ํ์ง ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ํ ํธ์ด์คํ
๊ณผ ๊ด๋ จํด์ var์ ๋ณ์์ ์ ์ธ๊ณผ ์ด๊ธฐํ๊ฐ ๋์์ ์ด๋ฃจ์ด์ง๊ณ undefined๊ฐ ํ ๋น๋์ด ์ค์ ์ฝ๋๋ฅผ ๋ง๋๊ธฐ ์ ์ ์ ๊ทผํ ์ ์์ง๋ง, let๊ณผ const๋ TDZ(Temperal Dead Zone)์ผ๋ก ์ค์ ์ฝ๋๋ฅผ ๋ง๋๊ธฐ ์ ๊น์ง ์ ๊ทผํ ์ ์์ต๋๋ค.
2. ํ
ํ๋ฆฟ ๋ฆฌํฐ๋ด(Template Literals)์ด๋ ๋ฌด์์ธ๊ฐ์?
ํ
ํ๋ฆฟ ๋ฆฌํฐ๋ด์ด๋ ๋ฌธ์์ด๊ณผ ๋ณ์๋ฅผ ์ฝ๊ฒ ๋ํ๋ผ ์ ์๋๋ก ๋ฐฑํฑ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ ํํ์์
๋๋ค.
3. ํ์ดํ ํจ์(Arrow Function)์ ํน์ง์ ๋ฌด์์ธ๊ฐ์?
ํ์ดํ ํจ์๋ ๊ฐ๊ฒฐํ๊ฒ ํํ๋์ด ์ฝ๋์ ๊ฐ๋
์ฑ์ ๋์ฌ์ค๋๋ค. ๋ํ ์ผ๋ฐ ํจ์์ ๋น๊ตํ์ฌ this์ ๋ฐ์ธ๋ฉ๋๋ ๊ฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์ผ๋ฐ ํจ์๋ ํธ์ถ๋ฐฉ์์ ๋ฐ๋ผ this์ ๋ฐ์ธ๋ฉ๋๋ ๊ฐ์ด ๋ฌ๋ผ์ง๋๋ค. ํ์ง๋ง ํ์ดํ ํจ์๋ ์์ ์ค์ฝํ์ this ๊ฐ์ ๊ทธ๋๋ก ๊ฐ์ ธ์ต๋๋ค. ์ด๋ฅผ Lexical this๋ผ๊ณ ํ๋ฉฐ ํจ์๊ฐ ์ ์ธ๋ ์์น์์์ this ๊ฐ์ ์ฐธ์กฐํฉ๋๋ค.
4. ๋์คํธ๋ญ์ฒ๋ง ํ ๋น(Destructuring Assignment)์ด๋ ๋ฌด์์ธ๊ฐ์?
๊ตฌ์กฐ๋ถํด ํ ๋น์ด๋ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ๊ตฌ์กฐ๋ฅผ ๋ถํดํ์ฌ ๊ฐ๋ณ ๋ณ์์ ๊ฐ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ๋ฌธ๋ฒ์
๋๋ค. ๊ตฌ์กฐ๋ถํด ํ ๋น์ ํตํด ํ์ํ ๋ณ์์ ๊ฐ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
5. ํผ์นจ ์ฐ์ฐ์(Spread Operator)์ ๋๋จธ์ง ๋งค๊ฐ๋ณ์(Rest Parameter)์ ๋ํด ์ค๋ช
ํ์ธ์.
ํผ์นจ ์ฐ์ฐ์๋ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์๋ฅผ ๊ฐ๋ณ์ ์ธ ๊ฐ์ผ๋ก ํผ์ณ์ฃผ๋ฉฐ, ๋๋จธ์ง ๋งค๊ฐ๋ณ์๋ ํจ์์ ์ธ์๋ค์ ๋ฐฐ์ด๋ก ๋ฌถ์ด์ ๋ฐ์ต๋๋ค.
6. Promise์ async/await์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
Promise๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ฝ๊ฒ ํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ฐ์ฒด๋ก, .then(), .catch(), .finally() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋น๋๊ธฐ ์์
์ ์ฑ๊ณต, ์คํจ, ์๋ฃ ์ํ์ ๋ฐ๋ผ ๊ฐ๊ฐ์ ์ฝ๋ฐฑ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋ฐฑ ์ง์ฅ์ ์ค์ด๊ณ , ๋น๋๊ธฐ ์์
์ ์ข ๋ ์ฒด๊ณ์ ์ผ๋ก ๋ค๋ฃฐ ์ ์๊ฒ ํฉ๋๋ค.
async/await๋ Promise๋ฅผ ๋ง์น ๋๊ธฐ ํจ์์ฒ๋ผ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ฌธ๋ฒ์
๋๋ค. async ํค์๋๋ฅผ ํจ์ ์์ ๋ถ์ด๊ณ , ํด๋น ํจ์ ๋ด๋ถ์์ await ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ Promise์ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋น๋๊ธฐ ์ฝ๋์ ๊ฐ๋
์ฑ์ ๋์ด๊ณ , ์ฝ๋๊ฐ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ฌ์ ์ง๊ด์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.
7. Map๊ณผ Set์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
8. ES6 ๋ชจ๋(Modules)์ด๋ ๋ฌด์์ธ๊ฐ์?
9. ํด๋์ค(Class)์ ์์ฑ์(Constructor)์ ์ญํ ์ ๋ํด ์ค๋ช
ํ์ธ์.
10. Symbol ๋ฐ์ดํฐ ํ์
์ด๋ ๋ฌด์์ธ๊ฐ์?
๐์น ์ฑ๋ฅ ์ต์ ํ
์น ์ฑ๋ฅ ์ต์ ํ ๊ธฐ๋ฒ์๋ ๋ฌด์์ด ์๋์?
์ง์ฐ ๋ก๋ฉ(Lazy Loading)๊ณผ ์ฌ์ ๋ก๋ฉ(Prefetching)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ฝ๋ ์คํ๋ฆฌํ
(Code Splitting)์ด๋ ๋ฌด์์ธ๊ฐ์?
์ด๋ฏธ์ง ์ต์ ํ ๋ฐฉ๋ฒ์๋ ๋ฌด์์ด ์๋์?
์ค์ํ ๋ ๋๋ง ๊ฒฝ๋ก(Critical Rendering Path)๋ ๋ฌด์์ธ๊ฐ์?
์บ์ฑ(Caching)์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ์ข
๋ฅ์ ๋ํด ์ค๋ช
ํ์ธ์.
SSR(Server-Side Rendering)๊ณผ CSR(Client-Side Rendering)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์นํฉ(Webpack)์์ ํธ๋ฆฌ ์์ดํน(Tree Shaking)์ด๋ ๋ฌด์์ธ๊ฐ์?
Lighthouse๋ฅผ ์ฌ์ฉํ ์น ์ฑ๋ฅ ์ธก์ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช
ํ์ธ์.
์ฝํ
์ธ ์ ์ก ๋คํธ์ํฌ(CDN) ์ต์ ํ๋ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์?
๐๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ ์๊ณ ๋ฆฌ์ฆ
1. ๋ฐฐ์ด(Array)๊ณผ ๊ฐ์ฒด(Object)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
2. ๋งํฌ๋ ๋ฆฌ์คํธ(Linked List)๋ ๋ฌด์์ธ๊ฐ์?
3. ์คํ(Stack)๊ณผ ํ(Queue)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
4. ํด์ ํ
์ด๋ธ(Hash Table)์ด๋ ๋ฌด์์ธ๊ฐ์?
ํด์ ํจ์๋ ์์์ ๊ธธ์ด์ ์
๋ ฅ๊ฐ์ ๊ณ ์ ๋ ๊ธธ์ด์ ์ถ๋ ฅ๊ฐ์ผ๋ก ๋ณํํด์ฃผ๋ ํจ์์ด๋ค. ์ด๋ฌํ ํน์ฑ์ ๋ฐํ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํ๋๋ฐ ๋ง์ด ํ์ฉ๋๋ฉฐ, ์์๋ก๋ ํด์ํ
์ด๋ธ ๋ฑ์ด ์๋ค.
4-1)ํด์ ํ
์ด๋ธ
ํด์ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ํค-๊ฐ ์์ผ๋ก ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ๋ก, ํค ๊ฐ์ ํด์ํจ์๋ฅผ ์ ์ฉํ์ฌ ๊ณ ์ ๋ ํฌ๊ธฐ์ ํด์๊ฐ ๋๋ index๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ํด์๊ฐ/index๋ฅผ ํตํด ๋ฐฐ์ด์ ์ ์ ํ ์์น์ ๊ฐ์ ์ ์ฅํ๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ ์ฅ, ๊ฒ์, ์ญ์ ๋ฑ์ O(1)์ ์๊ฐ๋ณต์ก๋์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
ํด์ํ
์ด๋ธ์ ์ถฉ๋
ํด์ํ
์ด๋ธ์์๋ ๋์ผํ ํด์ ๊ฐ์ ๊ฐ์ง ๋ ๊ฐ ์ด์์ ํค๊ฐ ์์ ๊ฒฝ์ฐ ์ถฉ๋์ด ๋ฐ์ํ๋ค.
ํด๊ฒฐ๋ฐฉ๋ฒ1. ์ฒด์ด๋: ๊ฐ ๋ฒํท(๋ฐฐ์ด)์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๊ด๋ฆฌํ์ฌ ์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์ ๋
ธ๋๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ์
ํด๊ฒฐ๋ฐฉ๋ฒ2. ๊ฐ๋ฐฉ ์ฃผ์๋ฒ: ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ํด์ ํ
์ด๋ธ ๋ด์ ๋ค๋ฅธ ๋น ์ฌ๋กฏ์ ์ฐพ์ ํค-๊ฐ ์์ ์ฐพ์ ์ ์ฅํ๋ ๋ฐฉ์์ด๋ค.
4-2) ๋์งํธ ์ค๋ช
, ์ํธํ
ํด์ํจ์๋ ์ถ๋ ฅ๊ฐ์ผ๋ก๋ถํฐ ์
๋ ฅ๊ฐ์ ์ ์ถํ๊ธฐ ํ๋ค๋ค๋ ๋จ๋ฐฉํฅ์ฑ์ ํน์ฑ์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ค ๊ฒ์ฆ, ์ํธํ์๋ ๋ง์ด ํ์ฉ๋๋ค. ๋์งํธ ์๋ช
๊ณผ ๋น๋ฐ๋ฒํธ ์ ์ฅ์ ์์๋ก ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๋์งํธ ์๋ช
: ์๋ช
ํ ๋ฉ์์ง์ ํด์๊ฐ์ ๊ณ์ฐํ ํ, ์ก์ ์์ ๊ฐ์ธํค๋ฅผ ์ด์ฉํด์ ์ํธํํ์ฌ ๋์งํธ ์๋ช
์ ๋ง๋ ๋ค. ๋์งํธ ์๋ช
๊ฒ์ฆ์์๋ ์ก์ ์์ ๊ณต๊ฐํค๋ฅผ ์ด์ฉํ์ฌ ๋ณตํธํํ ํ, ์๋ณธ ๋ฉ์์ง์ ํด์๊ฐ๊ณผ ๋น๊ตํ๋ค.
๋น๋ฐ๋ฒํธ ์ํธํ: ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ์ ์ฅํ๋ ๊ฒ์ด ์๋๋ผ, ๋น๋ฐ๋ฒํธ์ ํด์๊ฐ์ ์ ์ฅํ์ฌ ๋ณด์์ ๊ฐํํ๋ค.
๊น์ด ์ฐ์ ํ์(DFS)๊ณผ ๋๋น ์ฐ์ ํ์(BFS)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ข
๋ฅ(๋ฒ๋ธ, ์ ํ, ์ฝ์
, ํต, ๋ณํฉ)์ ๋ํด ์ค๋ช
ํ์ธ์.
์ด์ง ๊ฒ์(Binary Search)์ด๋ ๋ฌด์์ธ๊ฐ์?
๋น
์ค ํ๊ธฐ๋ฒ(Big-O Notation)์ด๋ ๋ฌด์์ธ๊ฐ์?
์ฌ๊ท(Recursion)๋ ๋ฌด์์ด๋ฉฐ, ์ธ์ ์ฌ์ฉํ๋๊ฐ์?
๋ฉ๋ชจ์ด์ ์ด์
(Memoization)์ด๋ ๋ฌด์์ธ๊ฐ์?
๐๋คํธ์ํฌ ๋ฐ ๋ณด์
SSL/TLS์ ์ญํ ์ ๋ํด ์ค๋ช
ํ์ธ์.
DNS(Domain Name System)์ด๋ ๋ฌด์์ธ๊ฐ์?
TCP์ UDP์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
IP ์ฃผ์์ MAC ์ฃผ์์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
5. XSS(Cross-Site Scripting)๋ ๋ฌด์์ธ๊ฐ์?
XSS ๊ณต๊ฒฉ์ ์
์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์
ํ๋ ๊ณต๊ฒฉ์
๋๋ค. ๊ณต๊ฒฉ์๋ XSS ๊ณต๊ฒฉ์ ํตํด ์ฌ์ฉ์์ ์ธ์
์ ํ์ทจํ๊ฑฐ๋, ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํ์น๊ณ , ์
์ฑ ์ฌ์ดํธ๋ก ๋ฆฌ๋ค์ด๋ ์
์ํค๋ ๋ฑ์ ๊ณต๊ฒฉ์ ํ ์ ์์ต๋๋ค.
6. CSRF(Cross-Site Request Forgery)๋ ๋ฌด์์ธ๊ฐ์?
CSRF ๊ณต๊ฒฉ์ ์ฌ์ฉ์์ ๊ถํ์ ํ์น๋ ๊ณต๊ฒฉ์ผ๋ก ์ฌ์ฉ์๊ฐ ์๋ํ์ง ์์ ๊ณต๊ฒฉ์ ํน์ ์น์ฌ์ดํธ์ ๋ณด๋ด๋๋ก ์ ๋ํ๋ ๊ณต๊ฒฉ์
๋๋ค. ๊ณต๊ฒฉ์๋ CSRF ๊ณต๊ฒฉ์ ํตํด ์ฌ์ฉ์์ ๊ถํ์ผ๋ก ์์ฒญ์ ์ํํ์ฌ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์์ ํ๊ฑฐ๋ ๊ณ์ ์ ๋ณด๋ฅผ ํ์ทจํ ์ ์์ต๋๋ค.
7. OAuth๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ์๋ํ๋์?
OAuth๋ ์ 3์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์์ ํ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๊ถํ์ ๋ถ์ฌํ๋ ํ๋กํ ์ฝ์
๋๋ค. ์ฃผ๋ก ์์
๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ด๋ ์ธ๋ถ ์๋น์ค์์ ์ฐ๋์ ์ฌ์ฉ๋ฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฉ์์ ๊ถํ์ ์ป๊ธฐ ์ํด ์ 3์ ์๋น์ค์ ๊ถํ ์๋ฒ๋ก ๋ฆฌ๋๋ ์
ํฉ๋๋ค. ์ฌ์ฉ์๋ ์ 3์ ์๋น์ค์ ๋ก๊ทธ์ธํ ํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ดํฐ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๋ฉด, ์ 3์ ์๋น์ค๋ ์ธ๊ฐ ์ฝ๋๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ฐ๊ธํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ด ์ธ๊ฐ ์ฝ๋๋ฅผ ์๋ฒ๋ก ์ ๋ฌํ๊ณ , ์๋ฒ๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ 3์ ์๋น์ค์ ๊ถํ ์๋ฒ์์ ์ก์ธ์ค ํ ํฐ์ ์์ฒญํฉ๋๋ค. ์๋ฒ๊ฐ ์ก์ธ์ค ํ ํฐ์ ๋ฐ์ผ๋ฉด, ์ด๋ฅผ ์ฌ์ฉํด ์ 3์ ์๋น์ค์์ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์ด ๊ณผ์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์ง์ ๋ฏผ๊ฐํ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ค๋ฃจ์ง ์๋๋ก ํ์ฌ, ๋ณด์์ฑ๊ณผ ๋ฐ์ดํฐ ์ ๊ทผ์ ์์ ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
8. JWT(JSON Web Token)๋ ๋ฌด์์ธ๊ฐ์?
JWT๋ JSON ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ๋ฌํ๋ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ๋ฐฉ์์
๋๋ค. ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์ด๋ฏ๋ก ์๋ฒ์ ์ํ๋ฅผ ์ ์ฅํ ํ์๊ฐ ์์ผ๋ฉฐ, ์๋ช
์ ํตํด ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๊ฒ์ฆํ ์ ์์ต๋๋ค. ๋ํ, ์ฌ์ฉ์ ์ธ์ฆ์ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ํ ํฐ์ ํฌํจํ๊ณ ์์ด ์ธ์ฆ ์๋ฒ๋ DB์ ๋ํ ์์กด์ฑ์ ์ค์ฌ ์ ์ฐํ ์ธ์ฆ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค.
9. MITM(Man-In-The-Middle) ๊ณต๊ฒฉ์ด๋ ๋ฌด์์ธ๊ฐ์?
10. ๋ฐฉํ๋ฒฝ(Firewall)์ด๋ ๋ฌด์์ธ๊ฐ์?
๐๊ธฐํ ํ๋ก ํธ์๋ ๊ด๋ จ ์ง๋ฌธ
1. ๊ฐ์ DOM(Virtual DOM)์ด๋ ๋ฌด์์ธ๊ฐ์?
๊ฐ์ DOM์ ์ค์ DOM(Document Object Model, HTML ๋ฐ XML ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ํํ)์ ์ถ์ํํ ๊ฐ๋
์ผ๋ก, ๋ฉ๋ชจ๋ฆฌ ๋ด์ ๊ฐ์์ผ๋ก ์กด์ฌํ๋ DOM์
๋๋ค. ์น ํ์ด์ง์ ์ํ ๋ณํ๊ฐ ์ผ์ด๋ ๋๋ง๋ค ์ค์ DOM์ ์กฐ์ํ๋ ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ๊ฐ์ DOM์ ๋ณ๊ฒฝํ๊ณ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๊ธฐ ์ ์ ์ด์ ์ ๊ฐ์ DOM๊ณผ ๋น๊ตํ์ฌ ์ค์ ๋ก ๋ณ๊ฒฝ์ด ํ์ํ ๋ถ๋ถ๋ง ์ฐพ์๋ด ์ค์ DOM์ ๋ฐ์ํฉ๋๋ค.
2. ๋ฆฌ์กํธ์ ์ํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์๋ ๋ฌด์์ด ์๋์?
1) Context API๋ React์ ๋ด์ฅ API๋ก context๋ฅผ ์์ฑํ๊ณ Provider๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ฉด ํ์ ์ปดํฌ๋ํธ์์ useContext๋ฅผ ํตํด์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์๋ค. ๋งค์ฐ ๋จ์ํ์ง๋ง, Provider๋ฅผ ํตํด์ ๋ด๋ณด๋ด๋ ๋ฐ์ดํฐ ์ค ํ๋๋ง ๋ณ๊ฒฝ๋๋๋ผ๋ ์ด๋ฅผ ๊ตฌ๋
ํ๊ณ ์๋ ํ์ ์ปดํฌ๋ํธ๊ฐ ๋ชจ๋ ๋ฆฌ๋ ๋๋ง ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. Context๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ด๋ฅผ ํด๊ฒฐํ ์ ์์ง๋ง ๊ทผ๋ณธ์ ์ผ๋ก ์ํ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ๊ฒฝ์ฐ๋ ๋งค์ฐ ๊ฐ๋จํ props drilling ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ ํ๋ค.
2) Redux๋ ๋งค์ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, Flux ํจํด์ ํตํด ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ์กฐํ๋ค. (action > dispatcher > store > view)
3) Recoil, Zustand ๋ฑ
3. ๋ฆฌ๋์ค(Redux)์ ๊ธฐ๋ณธ ์์น์ ๋ฌด์์ธ๊ฐ์?
Redux๋ Flux ํจํด์ ์ฌ์ฉํ๋ฉฐ ์ด๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ์กฐํ๋ ํจํด์
๋๋ค. ์ฌ์ฉ์์ action์ด ๋ฐ์ํ๋ฉด dispatcher์ ์ ๋ฌ๋๊ณ , dispatcher๋ store(model)๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ต์ข
์ ์ผ๋ก view์ ๋ฐ์๋๋ ํํ์
๋๋ค.
4. Next.js์ Gatsby.js์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
5. ๋ฐ์ํ ์น ๋์์ธ(Responsive Web Design)์ด๋ ๋ฌด์์ธ๊ฐ์?
6. Progressive Web App(PWA)์ด๋ ๋ฌด์์ธ๊ฐ์?
7. ๋ชจ๋
ธ๋ ํฌ(Monorepo)์ ๋ฉํฐ๋ ํฌ(Multirepo)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
8. ์น ์์ผ(WebSocket)์ด๋ ๋ฌด์์ธ๊ฐ์?
WebSocket์ ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ด ๊ฐ๋ฅํ๋๋ก ํด์ฃผ๋ ํ๋กํ ์ฝ์
๋๋ค. HTTP ์์ฒญ๊ณผ ๋ฌ๋ฆฌ ์ฐ๊ฒฐ์ด ์๋ฆฝ๋ ํ์๋ ์ง์๋๋ฉฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค. ์ฐ๊ฒฐ์ด ์ ์ง๋๋ฏ๋ก ๋งค๋ฒ ์๋ก์ด HTTP ์์ฒญ์ ๋ณด๋ด์ง ์๊ณ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ด, ์ค์๊ฐ ์ฑํ
, ์ฃผ์ ๊ฐ๊ฒฉ ์
๋ฐ์ดํธ ๋ฑ๊ณผ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
9. Server-Sent Events(SSE)๋ ๋ฌด์์ธ๊ฐ์?
SSE๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์์ ์ผ๋ฐฉ์ ์ผ๋ก Push ๋ฐ์ ์ ์๋ HTTP ๊ธฐ๋ฐ์ ํต์ ๋ฐฉ์์
๋๋ค. WebSocket๊ณผ๋ ๋ฌ๋ฆฌ SSE๋ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์ผ๋ฐฉํฅ ํต์ ๋ง ๊ฐ๋ฅํ๋ฏ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์๋ ์์ต๋๋ค. ๋ด์ค ํผ๋ ์
๋ฐ์ดํธ๋ ์๋ฆผ ์ ์ก ๋ฑ ํด๋ผ์ด์ธํธ๊ฐ ์์ฃผ ๊ฐฑ์ ๋ ํ์๊ฐ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ๊ณตํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ํฉํฉ๋๋ค.
(SSE๋ HTTP ๊ธฐ๋ฐ ๋จ๋ฐฉํฅ ์คํธ๋ฆฌ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ์ ์ ์๋ฒ ์์์ ์๋ชจํ๋ฉฐ, ์๋ฒ ์ธก์์ ๋ง์ ํด๋ผ์ด์ธํธ์๊ฒ ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํธ์ํ๋ ์ํ์ ํ์ฅ์ ์ ๋ฆฌํฉ๋๋ค.)
10. WebRTC์ ์ญํ ๊ณผ ์ฌ์ฉ ์ฌ๋ก๋ ๋ฌด์์ธ๊ฐ์?
WebRTC(Web Real-Time Communication)์ ์ค์๊ฐ ๋ฏธ๋์ด ์คํธ๋ฆฌ๋ฐ๊ณผ ๋ฐ์ดํฐ ๊ตํ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ธฐ์ ์
๋๋ค. WebRTC๋ ์ฃผ๋ก ํ์ ํตํ, ์์ฑ ํตํ, ์ค์๊ฐ ์จ๋ผ์ธ ํ์
๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ฆ, WebRTC๋ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก์ด ํ์ํ ๋ ๊ณ ํ์ง, ์ ์ง์ฐ์ ํต์ ์ ๊ตฌํํ ์ ์๊ฒ ํฉ๋๋ค.
์ ๋ฆฌํ๋ฉด, webSocket, SSE, webRTC ๋ชจ๋ ์ค์๊ฐ ํต์ ์ ์ํ ํ๋กํ ์ฝ์ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๊ตฌ๋ถ | ํต์ ๋ฐฉํฅ | ํ๋กํ ์ฝ | ์ฌ์ฉ ์ฌ๋ก |
WebSocket | ์๋ฐฉํฅ(์๋ฒ-ํด๋ผ์ด์ธํธ) | WebSocket | ์ฑํ , ์ค์๊ฐ ์ฃผ์ ์ ๋ฐ์ดํธ |
SSE | ๋จ๋ฐฉํฅ(์๋ฒ>ํด๋ผ์ด์ธํธ) | HTTP | ์๋ฆผ ํธ์ |
WebRTC | ์๋ฐฉํฅ(ํด๋ผ์ด์ธํธ ๊ฐ) | TCP/UDP ๊ธฐ๋ฐ์ ํ๋กํ ์ฝ๋ก ๋ฏธ๋์ด ์ ์ก, ๋ด๋ถ์ ์ผ๋ก signal ํต๋ก๋ก webSocket ์ฌ์ฉ | ์ค์๊ฐ ํ์ ํ์ (ํ์ ํต์ , ์์ฑ ํต์ ) |
11. React์ Vue์ ์ฐจ์ด
์ฒซ์งธ๋ก, React๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, Vue๋ ํ๋ ์์ํฌ๋ก React๊ฐ Vue์ ๋นํด ์์ ๋๊ฐ ๋์ต๋๋ค.(๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ฐ๋ฐ์ ์ฃผ๋๊ถ์ด ๊ฐ๋ฐ์์๊ฒ ์๊ณ , ํ๋ ์์ํฌ๋ ๊ฐ๋ฐ์ ์ฃผ๋๊ถ์ด ํ๋ ์์ํฌ์ ์์ต๋๋ค.)
๋์งธ๋ก, React๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ๊ณ Vue๋ ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํฉ๋๋ค. React๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ state๋ฅผ ํตํด UI๊ฐ ์
๋ฐ์ดํธ ๋์ง๋ง, Vue๋ ๊ฐ ๋์
๋ง์ผ๋ก๋ ๋ณ์๊ฐ ๋ณ๊ฒฝ๋์ด UI์ ์๋์ผ๋ก ๋ฐ์๋ฉ๋๋ค. (์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ผ๋ก ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ๋น ๋ฅด๊ฒ ๋ฐ์๋์ด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ ๋ฆฌํฉ๋๋ค.)
์
์งธ๋ก, Vue๊ฐ React์ ๋นํด ์๋๊ฐ ๋น ๋ฆ
๋๋ค. ์ฌ์ฉ์ ๊ฒฝํ์ ์ํฅ์ ๋ฏธ์น ์ ๋๋ ์๋์ง๋ง ๋ฏธ์ธํ๊ฒ ๋น ๋ฅด๋ฉฐ ๋ฐ๋ผ์ ๋นํธ์ฝ์ธ ๊ฑฐ๋ ์ฌ์ดํธ ๋ฑ์ Vue๊ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๐์๋ฒ์ ๋คํธ์ํฌ ๊ธฐ๋ณธ ๊ฐ๋
์๋ฒ์ ํด๋ผ์ด์ธํธ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
HTTP์ HTTPS์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
HTTP ์ํ ์ฝ๋(200, 301, 404, 500 ๋ฑ)์ ๋ํด ์ค๋ช ํ์ธ์.
HTTP ๋ฉ์๋(GET, POST, PUT, DELETE ๋ฑ)์ ๋ํด ์ค๋ช ํ์ธ์.
5. REST์ RESTful API๋ ๋ฌด์์ธ๊ฐ์?
REST๋ url๋ก ์์์ ๊ตฌ๋ถํ๊ณ , HTTP method๋ก ์์์ ๋ํ ์์ ์ ์ํํ๋ ์ํคํ ์ฒ ์คํ์ผ๋ก, RESTful API๋ REST๋ฅผ ๋ฐ๋ฅด๋ api์ ๋๋ค. RESTful API๋ฅผ ํตํด์ ์์์ ๊ด๋ฆฌํ ๋ ์ผ๊ด๋๊ณ ์ง๊ด์ ์ผ๋ก ์ค๊ณํ ์ ์์ต๋๋ค.
REST์ SOAP์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
GraphQL์ด๋ ๋ฌด์์ด๋ฉฐ, REST API์์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
API ๊ฒ์ดํธ์จ์ด(API Gateway)์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
9. CORS(Cross-Origin Resource Sharing)๋ ๋ฌด์์ธ๊ฐ์?
๋ธ๋ผ์ฐ์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก SOP(Same Origin Policy)๋ฅผ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ๋์ผํ ์ถ์ฒ๋ผ๋ฆฌ๋ง ๋ฆฌ์๋ฅด๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. CORS(Cross-Origin Resource Sharing)์ด๋ ๋ค๋ฅธ ์ถ์ฒ๋ผ๋ฆฌ ๋ฆฌ์์ค ๊ณต์ ๋ฅผ ํ์ฉํ๊ฑฐ๋ ์ ํํ๋ ์ ์ฑ ์ ์๋ฏธํฉ๋๋ค.
ํ๋ก์ ์๋ฒ์ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
๐๋ฐ์ดํฐ๋ฒ ์ด์ค
1. SQL๊ณผ NoSQL์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
2. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
3. ํธ๋์ญ์
์ด๋ ๋ฌด์์ธ๊ฐ์?
4. ACID ์์ฑ์ด๋ ๋ฌด์์ธ๊ฐ์?
5. ์ธ๋ฑ์ค๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ์๋ํ๋์?
DB์์ ์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ ๋น ๋ฅด๊ฒ ๊ฒ์ํ ์ ์๋๋ก ๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์
๋๋ค. ๋ง์ฝ ๋๋์ ๋ฐ์ดํฐ๊ฐ ์๋ ํ
์ด๋ธ์์ ํน์ ์ด์ ๊ธฐ์ค์ผ๋ก ์กฐ๊ฑด์ ๊ฒ์ํ ๋ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด ํ
์ด๋ธ์ ์ฒ์๋ถํฐ ๋๊น์ง ํ์ํ๋ full table scan์ด ํ์ํฉ๋๋ค. ์ธ๋ฑ์ค๋ ๊ฒ์ํ๊ณ ์ ํ๋ ์ด์ ๋ํ ๋ณ๋์ ์๋ฃ๊ตฌ์กฐ(B-Tree๋ Hash ๊ตฌ์กฐ)๋ฅผ ์์ฑํด๋์ด ๊ฒ์ ์์ ํ์ํ ๋ฐ์ดํฐ์ ์์น๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์๋
๋๋ค.
*B-Tree๋ ์ด์ง ํธ๋ฆฌ๋ฅผ ํ์ฅํด ํ๋์ ๋
ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์์ ๋
ธ๋์ ์ต๋ ์ซ์๊ฐ 2๋ณด๋ค ํฐ ํธ๋ฆฌ๊ตฌ์กฐ์
๋๋ค. ๋ํ ๊ท ํ ํธ๋ฆฌ๋ก ๋ฆฌํ ๋
ธ๋๋ค์ ๋ ๋ฒจ ์ฐจ์ด๊ฐ 1์ดํ์
๋๋ค. ์ด๋ฌํ ๊ท ํ ์กํ ํธ๋ฆฌ๊ตฌ์กฐ์ ํน์ฑ๊ณผ ๋์ํ์ฅ์ฑ์ด B-Tree์ ์๋ฃ ํ์์ ํจ์จ์ ์ผ๋ก ๋ง๋ญ๋๋ค.
B-Tree๋ ๊ท ํ ํธ๋ฆฌ์ ํน์ฑ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ฆฌํ ๋
ธ๋๋ ๋น์ทํ ๊น์ด์ ์์นํ์ฌ ํน์ ๊ฐ์ ์ฐพ์ ๋ ์ต์
์ ๊ฒฝ์ฐ์๋ ๋น์ทํ ๊น์ด์์ ํ์์ด ์ข
๋ฃ๋์ด ์ผ์ ํ ์ฑ๋ฅ์ ์ ์งํฉ๋๋ค. ๋ํ B-Tree๋ ๋ฐ์ดํฐ์ ์๊ฐ ๋ง์์ง์๋ก ๋ถ์ฐ๋์ด ํธ๋ฆฌ์ ๊น์ด๊ฐ ์ฒ์ฒํ ์ฆ๊ฐํฉ๋๋ค.
6. ์กฐ์ธ(Join)์ด๋ ๋ฌด์์ธ๊ฐ์? (INNER JOIN, LEFT JOIN ๋ฑ)
7. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทํ๋ ๋ฌด์์ธ๊ฐ์?
8. 1์ฐจ ์ ๊ทํ, 2์ฐจ ์ ๊ทํ, 3์ฐจ ์ ๊ทํ์ ๋ํด ์ค๋ช
ํ์ธ์.
9. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ฉ(Sharding)์ด๋ ๋ฌด์์ธ๊ฐ์?
10. ์บ์ฑ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฆฌํ๋ฆฌ์ผ์ด์
(Replication)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
๐์บ์์ ๋ฐ์ดํฐ ์ ์ฅ์
- ์บ์(Cache)๋ ๋ฌด์์ธ๊ฐ์?
- Redis์ Memcached์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- TTL(Time to Live)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์บ์ ์ ์ค(Cache Hit)๊ณผ ์บ์ ๋ฏธ์ค(Cache Miss)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- CDN(Content Delivery Network)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ๋ก์ปฌ ์บ์์ ๋ถ์ฐ ์บ์์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- LRU(Least Recently Used) ์บ์ฑ ์ ์ฑ ์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์บ์์ ์ผ๊ด์ฑ ๋ฌธ์ ๋ ๋ฌด์์ธ๊ฐ์?
- ์ฐ๋ฃจ ์บ์(Through Cache)์ ๋ผ์ดํธ ๋นํ์ธ๋ ์บ์(Write-Behind Cache)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- ์บ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
๐๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฐ์ด(Array)์ ๋งํฌ๋ ๋ฆฌ์คํธ(Linked List)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- ์คํ(Stack)๊ณผ ํ(Queue)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- ํด์ ํ ์ด๋ธ(Hash Table)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์ด์ง ํธ๋ฆฌ(Binary Tree)์ ์ด์ง ํ์ ํธ๋ฆฌ(Binary Search Tree)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- ๊น์ด ์ฐ์ ํ์(DFS)๊ณผ ๋๋น ์ฐ์ ํ์(BFS)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- ํต ์ ๋ ฌ(Quick Sort)๊ณผ ๋ณํฉ ์ ๋ ฌ(Merge Sort)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- ์ด์ง ๊ฒ์(Binary Search)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ํ(Heap)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ํด์ ์ถฉ๋์ด๋ ๋ฌด์์ธ๊ฐ์? ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ๊ฐ์?
- ๋น ์ค ํ๊ธฐ๋ฒ(Big-O Notation)์ด๋ ๋ฌด์์ธ๊ฐ์?
๐๋ณด์
1. SSL/TLS์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
2. ํด์ฑ(Hashing)๊ณผ ์ํธํ(Encryption)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
3. ๋น๋์นญํค ์ํธํ์ ๋์นญํค ์ํธํ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
4. HTTPS๊ฐ ์ด๋ป๊ฒ ๋ณด์์ ์ ๊ณตํ๋์ง ์ค๋ช
ํ์ธ์.
5. XSS(Cross-Site Scripting)๋ ๋ฌด์์ธ๊ฐ์?
XSS ๊ณต๊ฒฉ์ด๋ ์น ์ฌ์ดํธ์ ์
์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ์
ํด ์ฌ์ฉ์๊ฐ ์๋ํ์ง ์์ ๋์์ด๋ ์
์์ ์ธ ๋์์ ์ํํ๋๋ก ์ ๋ํ๋ ๊ณต๊ฒฉ์ด๋ค. ์ด๋ฅผ ํตํด ๊ณต๊ฒฉ์๊ฐ ์ฌ์ฉ์์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ํ์ทจํ ์ ์๋ค.
6. CSRF(Cross-Site Request Forgery)๋ ๋ฌด์์ธ๊ฐ์?
CSRF ๊ณต๊ฒฉ์ ์ฌ์ฉ์์ ๊ถํ์ ํ์ทจํ๋ ๊ณต๊ฒฉ์ผ๋ก ์ฌ์ฉ์์ ๊ถํ์ผ๋ก ์
์ฑ ์ฌ์ดํธ์ ์์ฒญ์ ๋ณด๋ด๋ ๊ณต๊ฒฉ์ด๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์์ ๊ถํ์ ์
์ฉํ ์ ์๋ค.
7. SQL Injection ๊ณต๊ฒฉ์ด๋ ๋ฌด์์ธ๊ฐ์?
8. JWT(JSON Web Token)์ด๋ ๋ฌด์์ธ๊ฐ์?
JWT๋ ์ฌ์ฉ์ ์ธ์ฆ์ ๋ณด๋ฅผ JSON ํํ๋ก ์ํธํํ ํ ํฐ์ผ๋ก Header, Payload, Signature๋ก ๊ตฌ๋ถ๋๋ค. JWT๋ ์ฃผ๋ก ์ฌ์ฉ์ ์ธ์ฆ๊ณผ ๊ถํ ๋ถ์ฌ์ ์ฌ์ฉ๋ฉ๋๋ค. (๋ก๊ทธ์ธ ํ ํด๋ผ์ด์ธํธ์ JWT๋ฅผ ๋ฐ๊ธํ๋ฉด, ์ดํ API ์์ฒญ์์ Authorization ํค๋์ ํ ํฐ์ ํฌํจํด ์ธ์ฆํ๋ค.)
9. OAuth๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ์๋ํ๋์?
OAuth๋ ์ฌ์ฉ์๊ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ์ง ์๊ณ ๋ ์ 3์ ์ดํ๋ฆฌ์ผ์ด์
์ ํตํด ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๋ ์ธ์ฆ ๋ฐฉ์์
๋๋ค. ์ฌ์ฉ์๊ฐ OAuth๋ฅผ ์์ฒญํ๋ฉด ์ 3์ ์ดํ๋ฆฌ์ผ์ด์
์ผ๋ก ๋ฆฌ๋ค์ด๋ ์
๋๊ณ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ์ฌ ์ ๊ทผ๊ถํ์ ๋ถ์ฌํ๋ฉด ํด๋ผ์ด์ธํธ๋ก ์ธ๊ฐ์ฝ๋๋ฅผ ์ ๋ฌํฉ๋๋ค. ์ด ์ธ๊ฐ์ฝ๋๋ฅผ ๋ฐฑ์๋ฒ์ ์ ๋ฌํ๋ฉด, ๋ฐฑ์๋ฒ๊ฐ ์ธ๊ฐ์ฝ๋๋ฅผ ๋ฐํ์ผ๋ก ํ ํฐ์ ๋ฐ๊ธํ์ฌ ์ฌ์ฉ์ ์ ๋ณด์ ์ ๊ทผํ ์ ์๊ฒ ๋ฉ๋๋ค.
10. MITM(Man-In-The-Middle) ๊ณต๊ฒฉ์ด๋ ๋ฌด์์ธ๊ฐ์?
๐๋ฐฑ์๋ ์ํคํ ์ฒ
- ๋ชจ๋๋ฆฌ์(Monolithic) ์ํคํ ์ฒ์ ๋ง์ดํฌ๋ก์๋น์ค(Microservices) ์ํคํ ์ฒ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- ๋ก๋ ๋ฐธ๋ฐ์(Load Balancer)์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
- ์๋ฒ๋ฆฌ์ค(Serverless)๋ ๋ฌด์์ธ๊ฐ์?
- CAP ์ด๋ก ์ด๋ ๋ฌด์์ธ๊ฐ์?
- CQRS(Command Query Responsibility Segregation)๋ ๋ฌด์์ธ๊ฐ์?
- ์ด๋ฒคํธ ์์ฑ(Event Sourcing)์ด๋ ๋ฌด์์ธ๊ฐ์?
- API Rate Limiting์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์ฅ์ ์กฐ์น(Failover)๋ ๋ฌด์์ธ๊ฐ์?
- ๋ฐฑํ๋ ์ (Backpressure)๋ ๋ฌด์์ธ๊ฐ์?
- ํ๋ก ์ฐจ๋จ๊ธฐ(Circuit Breaker) ํจํด์ด๋ ๋ฌด์์ธ๊ฐ์?
๐ํด๋ผ์ฐ๋ ์ปดํจํ
1. ํด๋ผ์ฐ๋ ์ปดํจํ ์ด๋ ๋ฌด์์ธ๊ฐ์?
ํด๋ผ์ฐ๋(Cloud)๋ ์ธํฐ๋ท์ ํตํด ์ ๊ทผํ ์ ์๋ ๊ฐ์ํ๋ ์๋ฒ์ ๊ทธ ์๋ฒ์์ ์คํ๋๋ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ณตํ๋ IT ํ๊ฒฝ์ ์๋ฏธํ๋ค.
1) ๋น์ฉ ํจ์จ์ฑ
์ด๊ธฐ ํฌ์ ๋น์ฉ์ ์ค์ผ ์ ์๋ค. ์ด๊ธฐ ์์คํ ๊ตฌ์ถ์ด ํ์ํ ์จํ๋ ๋ฏธ์ค์ ๋ฌ๋ฆฌ ํด๋ผ์ฐ๋๋ ์ฌ์ฉํ๋งํผ๋ง ๋น์ฉ์ ์ง๋ถํ๋ฉด ๋๋ฏ๋ก ์ด๊ธฐ ํฌ์ ๋น์ฉ์ ์ค์ผ ์ ์๋ค. ํ์ง๋ง ํด๋ผ์ฐ๋๋ ์ง์์ ์ธ ์๋น์ค ์ด์ฉ๋ฃ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋น์ฉ ํจ์จ์ฑ์ ํ๋ก์ ํธ์ ๊ธฐ๊ฐ(๋จ/์ฅ๊ธฐ)์ด๋ ๊ท๋ชจ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ค.
2) ํ์ฅ์ฑ
ํด๋ผ์ฐ๋๋ ํ์์ ๋ฐ๋ผ ์์์ ์ฝ๊ฒ ํ์ฅํ๊ฑฐ๋ ์ถ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ ๋ณํํ๋ ์์ฅ์ ์ ์ฐํ๊ฒ ๋์ํ ์ ์๋ค.
3) ๋ณด์์ฑ
์จํ๋ ๋ฏธ์ค๋ ์์คํ ์ ๋ํ ์์ ํ ํต์ ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ ์จํ๋ ๋ฏธ์ค๊ฐ ์ ๋ฆฌํ ์ ์๋ค.
*ํ์ด๋ธ๋ฆฌ๋ ๋ชจ๋ธ๋ ๊ณ ๋ คํด๋ณผ ๋งํ๋ค. ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์จํ๋ ๋ฏธ์ค์ ๋๊ณ , ์ ์ฐํ ํ์ฅ์ด ํ์ํ ๋ถ๋ถ์ ํด๋ผ์ฐ๋๋ฅผ ํ์ฉํ๋ ๋ฐฉ์์ด๋ค.
2. SaaS, PaaS, IaaS, ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
SaaS๋ ์์ฑ๋ ์ํํธ์จ์ด๋ก, ํด๋ผ์ฐ๋์์ ์คํ๋๋ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋น์ค ํํ๋ก ์ ๊ณตํ๋ ๋ชจ๋ธ์ ๋๋ค.
PaaS๋ ๊ฐ๋ฐ ํ๋ซํผ์ ์ ๊ณตํ๋ ์๋น์ค๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ, ์คํ, ๋ฐฐํฌํ ์ ์๋ ํ๋ซํผ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
IaaS๋ ์ธํ๋ผ๋ฅผ ์ ๊ณตํ๋ ์๋น์ค๋ก, ๋ฌผ๋ฆฌ์ ์ธํ๋ผ๋ฅผ ๋์ฒดํ๋ ๊ฐ์ํ๋ ์์์ ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ์๋น์ค์ ๋๋ค.
7. ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ(Cloud Native)๋ ๋ฌด์์ธ๊ฐ์?
Cloud Native๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ์ต์ ํ๋์ด ์ค๊ณ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋น์ค๋ฅผ ์๋งํฉ๋๋ค. ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ์ ํต์ฌ ๊ธฐ์ ๋ก ์ปจํ ์ด๋, MSA, DevOps, CI/CD ๋ฑ์ด ์์ต๋๋ค.
- ๊ฐ์ ๋จธ์ (Virtual Machine)๊ณผ ์ปจํ ์ด๋(Container)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- AWS, GCP, Azure์ ๊ฐ์ ํด๋ผ์ฐ๋ ์๋น์ค์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ํด ์ค๋ช ํ์ธ์.
- ์คํ ์ค์ผ์ผ๋ง(Auto Scaling)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ฌด์์ธ๊ฐ์?
- S3์ ๊ฐ์ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง(Object Storage)์ ํน์ง์ ๋ฌด์์ธ๊ฐ์?
- ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์ด๋ ๋ฌด์์ธ๊ฐ์? (์: Kubernetes)
- ๋ฉํฐ ํด๋ผ์ฐ๋(Multi-Cloud)์ ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋(Hybrid Cloud)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
๐์ํํธ์จ์ด ์ค๊ณ ๋ฐ ์์น
- SOLID ์์น์ด๋ ๋ฌด์์ธ๊ฐ์?
- MVC ํจํด์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์ฑ๊ธํค(Singleton) ํจํด์ด๋ ๋ฌด์์ธ๊ฐ์?
- ํฉํ ๋ฆฌ ํจํด(Factory Pattern)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ๋ฆฌํฌ์งํ ๋ฆฌ ํจํด(Repository Pattern)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์์กด์ฑ ์ฃผ์ (Dependency Injection)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ(DDD)๋ ๋ฌด์์ธ๊ฐ์?
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- TDD(Test-Driven Development)๋ ๋ฌด์์ธ๊ฐ์?
- ํ์ด ํ๋ก๊ทธ๋๋ฐ(Pair Programming)์ด๋ ๋ฌด์์ธ๊ฐ์?
๐์ด์ ๋ฐ ๋ชจ๋ํฐ๋ง
- ๋ก๊น (logging)๊ณผ ๋ชจ๋ํฐ๋ง(monitoring)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- APM(Application Performance Monitoring)์ด๋ ๋ฌด์์ธ๊ฐ์?
- SLA(Service Level Agreement)๋ ๋ฌด์์ธ๊ฐ์?
- MTTF, MTTR, MTBF๋ ๋ฌด์์ธ๊ฐ์?
- ๋ก๊ทธ ๊ด๋ฆฌ ๋๊ตฌ(์: ELK Stack)์ ๋ํด ์ค๋ช ํ์ธ์.
- ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฉํธ๋ฆญ์ ์์งํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ๊ฐ์?
- ๋ฐฐํฌ ํ์ดํ๋ผ์ธ(Deployment Pipeline)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ(Blue-Green Deployment)๋ ๋ฌด์์ธ๊ฐ์?
- ์ง์์ ํตํฉ(Continuous Integration)๊ณผ ์ง์์ ๋ฐฐํฌ(Continuous Deployment)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- ์นด๋๋ฆฌ์ ๋ฐฐํฌ(Canary Deployment)๋ ๋ฌด์์ธ๊ฐ์?
๐๊ธฐํ ๋ฐฑ์๋ ๊ด๋ จ ์ง๋ฌธ
1. ๋ฉํฐ์ค๋ ๋ฉ๊ณผ ๋ฉํฐํ๋ก์ธ์ฑ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
๋ฉํฐํ๋ก์ธ์ฑ์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ก ์์
์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด๋ฉฐ, ๋ฉํฐ์ค๋ ๋ฉ์ ํ๋์ ํ๋ก์ธ์ค ๋ด์์ ์ฌ๋ฌ ์ค๋ ๋๋ก ์์
์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์
๋๋ค.
- ํ๋ก์ธ์ค๋ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ ๋จ์๋ก, ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ธ ๋ฐ์ดํฐ, ์ฝ๋, ํ, ์คํ ์์ญ์ ๊ฐ์ง๋๋ค.
- ์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด๋ถ์ ์์ ํ๋ฆ์ผ๋ก, ๋ฐ์ดํฐ, ์ฝ๋, ํ ์์ญ์ ๊ณต์ ํ๊ณ , ์คํ ์์ญ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
๋ฐ๋ผ์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ ํจ์จ์ฑ์ ๋์ผ ์ ์์ง๋ง, ํ ์ค๋ ๋๊ฐ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์์์ํค๋ฉด ๋ค๋ฅธ ์ค๋ ๋์๋ ์ํฅ์ ๋ฏธ์น๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
2. ๋๊ธฐ(synchronous)์ ๋น๋๊ธฐ(asynchronous)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
3. ๋ธ๋กํน(Blocking)๊ณผ ๋
ผ๋ธ๋กํน(Non-blocking)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
4. ์ด๋ฒคํธ ๊ธฐ๋ฐ(Event-Driven) ์ํคํ
์ฒ๋ ๋ฌด์์ธ๊ฐ์?
5. ์น ์์ผ(WebSocket)์ด๋ ๋ฌด์์ธ๊ฐ์?
6. ๋ฉ์์ง ํ(Message Queue)๋ ๋ฌด์์ธ๊ฐ์?
7. Redis์ Kafka์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
8. gRPC๋ ๋ฌด์์ด๋ฉฐ, REST API์์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
9. ์์ผ(Socket)์ด๋ ๋ฌด์์ธ๊ฐ์?
10. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ํ๋ง(Database Connection Pooling)์ด๋ ๋ฌด์์ธ๊ฐ์?
๐Java ๊ธฐ๋ณธ ๊ฐ๋
1. Java์ ๊ธฐ๋ณธ ์๋ฃํ(Primitive Data Types)์๋ ๋ฌด์์ด ์๋์?
2. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)๋ ๋ฌด์์ด๋ฉฐ, Java์์ ์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ๋์?
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(Object-Oriented Programming)์ด๋ ํ์ค ์ธ๊ณ์ ๊ฐ๋
์ ๊ฐ์ฒด๋ก ๋ชจ๋ธ๋งํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ด๋ค. ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ํ๋๋ก ๋ฌถ๊ณ , ์ถ์ํ, ์บก์ํ, ์์, ๋คํ์ฑ์ ํน์ง์ ๊ฐ๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ , ์ ์ง๋ณด์์ฑ์ ๋์ด๋ฉฐ, ์ง๊ด์ ์ธ ์ค๊ณ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
- 1) ์ถ์ํ: ๋ณต์กํ ๊ฐ๋ ์ ๊ฐ์ถ๊ณ ํต์ฌ๋ง ๋๋ฌ๋
- 2) ์บก์ํ: ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๋ฌถ๊ณ ์ผ๋ถ๋ง ์ธ๋ถ์ ๋๋ฌ๋ด ์๋ํจ
- 3) ์์: ์์ ํด๋์ค์ ํน์ฑ์ ํ์ ํด๋์ค๊ฐ ์ด์ด ๋ฐ์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ, ๊ณ์ธต์ ๊ตฌ์กฐ, ์ ์ง๋ณด์์ฑ์ ์ด๋์ด๋
- 4) ๋คํ์ฑ: ํ๋์ ํจ์๋ ํด๋์ค๊ฐ ์ํฉ์ ๋ฐ๋ผ ๋ค์ํ ํํ๋ก ๋์ํ๋ ๊ฒ(์ค๋ฒ๋ก๋ฉ, ์ค๋ฒ๋ผ์ด๋ฉ)
3. ํด๋์ค(Class)์ ๊ฐ์ฒด(Object)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
4. Java์์ ์์(Inheritance)์ด๋ ๋ฌด์์ด๋ฉฐ, ๊ทธ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
์์ํด๋์ค์ ํน์ฑ์ ํ์ํด๋์ค๊ฐ ๋ฌผ๋ ค๋ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก, ์์์ ํตํด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ, ๊ณ์ธต์ ๊ตฌ์กฐ์ ํ์ฑ, ์ ์ง๋ณด์์ฑ์ ์ฅ์ ์ ์ ๊ณตํ๋ค. ์ฆ, ํ์ ํด๋์ค์์ ์์ ํด๋์ค์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ํ์ฉํ๊ฑฐ๋ ํ์ฅํ์ฌ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋ค.
5. ์ค๋ฒ๋ก๋ฉ(Overloading)๊ณผ ์ค๋ฒ๋ผ์ด๋ฉ(Overriding)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ค๋ฒ๋ก๋ฉ๊ณผ ์ค๋ฒ๋ผ์ด๋ฉ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ๋คํ์ฑ์ ๊ตฌํํ๋ ๋ฐฉ์์ด๋ค. ์ค๋ฒ๋ก๋ฉ์ ๋์ผํ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ๋งค๊ฐ๋ณ์์ ๊ฐ์๋ ํ์
์ ๋ค๋ฅด๊ฒ ํ์ฌ ์ฌ๋ฌ ๋ฒ ์ ์ํ๋ ๊ฒ์ด๋ค. ์ค๋ฒ๋ผ์ด๋ฉ์ ์์ ํด๋์ค์์ ์ ์ํ ๋ฉ์๋๋ฅผ ํ์ ํด๋์ค์์ ์ฌ์ ์ํ์ฌ ๋์์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด๋ค.
์ค๋ฒ๋ก๋ฉ | ์ค๋ฒ๋ผ์ด๋ฉ | |
๊ณตํต์ | ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ์์ ๋คํ์ฑ์ ๊ตฌํํ๋ 2๊ฐ์ง ๋ฐฉ์ | |
์ฐจ์ด์ | ๋์ผํ ์ด๋ฆ์ ๋ฉ์๋์ ๋งค๊ฐ๋ณ์ ํ์ ๊ณผ ๊ฐ์๋ฅผ ๋ค๋ฅด๊ฒ ํ์ฌ ์ฌ๋ฌ ๋ฒ ์ ์ํ๋ ๊ฒ | ์์ ํด๋์ค์ ๋ฉ์๋๋ฅผ ํ์ ํด๋์ค์์ ์ฌ์ ์ํ์ฌ ๋์์ ๋ณ๊ฒฝํ๋ ๊ฒ |
6. ์ ๊ทผ ์ ์ด์(Access Modifiers)์๋ ์ด๋ค ์ข
๋ฅ๊ฐ ์์ผ๋ฉฐ, ๊ทธ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
7. ์ถ์ ํด๋์ค(Abstract Class)์ ์ธํฐํ์ด์ค(Interface)์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
8. Java์ main ๋ฉ์๋์ ์๊ทธ๋์ฒ์ ์ญํ ์ ๋ํด ์ค๋ช
ํ์ธ์.
9. Java์์ ํจํค์ง(Package)์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
10 . Java์ ์ปดํ์ผ๋ฌ์ JVM(Java Virtual Machine)์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
JVM์ ์ปดํ์ผ๋ Java bytecode๋ฅผ OS์์ ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ก ๋ณํํด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. (Java๋ ํ๋ซํผ ๋
๋ฆฝ์ )
JVM์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ ๊ทธ ์ค์์๋ ๊ฐ๋น์ง ์ปฌ๋ ์
์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์๋ํํ์ฌ ๊ฐ๋ฐ์๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ํด์ ์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋๋ก ๋์์ค๋๋ค.
JVM์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ young generation๊ณผ old generation์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค. young generation์ ์๋กญ๊ฒ ์์ฑ๋ ๊ฐ์ฒด๊ฐ ํ ๋น๋๋ ์์ญ์ด๊ณ , old generation์ young generation์์ ์ด์๋จ์ ๊ฐ์ฒด๊ฐ ์ฎ๊ฒจ์ง๋ ์์ญ์
๋๋ค. young generation์์๋ ์งง์ ์๊ฐ ๋ด์ ๊ฐ๋น์ง ์ปฌ๋ ์
์ด ์์ฃผ ๋ฐ์ํ์ฌ ๋ถํ์ํ ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๊ณ , old generation์์์ ๊ฐ๋น์ง ์ปฌ๋ ์
์ ๋น๊ต์ ์ค๋ ์๊ฐ์ด ์์๋์ง๋ง ์ด ๊ณผ์ ์์ ์ค๋ซ๋์ ์ ์ง๋์ด์ผ ํ๋ ๊ฐ์ฒด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ๊ทน๋ํํฉ๋๋ค.
๐๊ธฐํ ์ ๊ธฐ์
1. ์์ฑํ AI: RAG๋?
LLM์ ํ๊ณ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด LLM์ด ์์ฒด ํ์ต ๋ฐ์ดํฐ์๋ง ์์กดํ์ง ์๊ณ , ์ธ๋ถ์ ์ ๋ขฐํ ์ ์๋ ์ง์๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ด๋ จ ์ ๋ณด๋ฅผ ๊ฒ์ํ์ฌ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ต์ ์์ฑํ๋ ๋ฐฉ์์ด๋ค.
'๐CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง, ์ ์ ์ฝ๋ ๋ถ์/๋์ ์ฝ๋ ๋ถ์ (0) | 2024.11.11 |
---|---|
์ ๋ก ํธ๋ฌ์คํธ (2) | 2024.11.04 |
REST API (0) | 2024.10.30 |
์คํ ๋ฑ ํน, ์คํ ํ์ด๋ธ์ค, ๋ง์ด๋ฐ์ดํฐ 2.0 (0) | 2024.10.30 |
์์ฑํ AI: ๊ฐ๋ , ํ์ฉ, ์์๋๋ ๋ฌธ์ ์ (1) | 2024.10.29 |