๐ฉ๐ปโ๐ป Frontend 13๊ธฐ 2025-07-03 ~ 2025-12-29 โ
๋ด๊ฐ ๋
ธ๋ ฅํ๊ณ ๋์ ํ ๋งํผ์ด ๋ด ์ธ๊ณ ๐ซ 6 ๊ฐ์ ๋์ ๊ต์ก์์ ํ์ตํ ๊ฒ๋ค์ ๊ธฐ๋กํด๋ณด๋ ค๊ณ ํ๋ค!
๐ก ํ์ต Tip
ํ๋ ํ ์ ๋ฒ์น
- 100๊ฐ์ง์ ๊ธฐ๋ฅ์ด ์๋ค๋ฉด ํ์ ์์ ์ฐ๋ ๊ธฐ๋ฅ์ ์ฝ 20% ์ ๋ ๋ฐ์ ์ ๋๋ค.
- ๋ค ๋ฐฐ์ฐ๊ณ ์ฐ๋ ค ํ์ง ๋ง๊ณ , ์์ฃผ ์ฐ๋ ๊ฒ๋ถํฐ ๊ฒฝํํ๋ฉด์ ๋ฐฐ์ฐ์.
First Word ๋ฒ์น
- ์์ฃผ ์ฌ์ฉ๋๋ ๋จ์ด๋ฅผ ๋๋ง์ ์ธ์ด๋ก ์ ๋ฆฌํ๊ธฐ.
- ๋ฑ๋ฑํ ์ ์๋ณด๋ค ๋ด๊ฐ ์ฝ๊ฒ ์ดํดํ๊ธฐ ์ฌ์ด ๋ง๋ก ๊ธฐ๋กํ๊ธฐ
Study Preview โ
HTML
HTML
HTML ํ์ต ๋ชฉํ โ
- HTML์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ณ ์ค๋ช ํ ์ ์๋ค.
- ๋ค์ํ HTML ์์์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- HTML ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ์์ฑํ ์ ์๋ค.
- HTML ํผ ์์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- HTML ์๋งจํฑ ํ๊ทธ๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
HTML ์ฒดํฌ ๋ฆฌ์คํธ โ
- โ๏ธ HTML์ ์ด๋ฆฐํ๊ทธ์ ๋ซํํ๊ทธ, ๋นํ๊ทธ์ ๊ฐ๋ ์ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ ๋ค์ํ HTML ์์์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์๋์?
- โ๏ธ ๋ค์ํ HTML ์์์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ์์ฑํ ์ ์๋์?
- โ๏ธ HTML ํผ ์์๋ฅผ ์ฌ์ฉํ ์ ์๋์?
- โ๏ธ HTML ์๋งจํฑ ํ๊ทธ๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋์?
CSS
CSS
CSS ํ์ต ๋ชฉํ โ
CSS์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ญํ ์ ์ดํดํ๊ณ ์ค๋ช ํ ์ ์๋ค.
๋ค์ํ CSS ์ ํ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
CSS๋ฅผ ์ฌ์ฉํ์ฌ HTML ์์์ ์คํ์ผ์ ๋ณ๊ฒฝํ ์ ์๋ค.
ํ ์คํธ ์คํ์ผ๋ง์ ์ ์ฉํ ์ ์๋ค.
์์ ๋ชจ๋ธ์ ์ดํดํ๊ณ ์คํ์ผ์ ์ ์ฉํ ์ ์๋ค.
Flexbox๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ ์ด์์์ ๊ตฌ์ฑํ ์ ์๋ค.
Grid๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ ๋ ์ด์์์ ๊ตฌ์ฑํ ์ ์๋ค.
Flexbox์ Grid๋ฅผ ์ ์ ํ ์ฌ์ฉํ์ฌ ๋ ์ด์์์ ์ค๊ณํ ์ ์๋ค.
CSS๋ฅผ ์ฌ์ฉํ์ฌ HTML ์์์ ์คํ์ผ์ ๋ณ๊ฒฝํ๊ณ ๋ค์ํ ์ ํ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
CSS ์ฒดํฌ ๋ฆฌ์คํธ โ
- โ๏ธ CSS์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ญํ ์ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ
class
์ ํ์์id
์ ํ์์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์๋์? - โ๏ธ CSS๋ฅผ ํ์ฉํ์ฌ HTML์ ์คํ์ผ๋ง์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ 3๊ฐ์ง๋ฅผ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ block๊ณผ inline์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ Flexbox๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ ์ด์์์ ๊ตฌ์ฑํ ์ ์๋์?
JavaScript
JavaScript
JavaScript ํ์ต ๋ชฉํ โ
console.log()
โ
- console.log()๋ก ์ฝ์์ ์ํ๋ ๊ฐ์ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉ ์์๋ฅผ ๋ค ์ ์๋ค.
๋ณ์
โ
- ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ ํ ๋นํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ตํ ์ ์๋ค.
- let๊ณผ const์ ์ฐจ์ด๋ฅผ ๊ธฐ์ตํ ์ ์๋ค.
- ๋ณ์ ์ ์ธ ํค์๋ var์ ๋ฌธ์ ์ ๊ณผ ํธ์ด์คํ ์ ๋ํด์ ์ค๋ช ํ ์ ์๋ค.
ํ์
๊ธฐ์ด
โ
- JavaScript์ number, string, boolean ํ์ ์ ํน์ง์ ์ค๋ช ํ ์ ์๋ค.
- typeof ์ฐ์ฐ์๋ฅผ ํ์ฉํด์ ๊ฐ์ ํ์ ์ ์กฐํํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ตํ๋ค.
- null๊ณผ undefined์ ์ฐจ์ด์ ์ ์ค๋ช ํ ์ ์๋ค.
number ํ์
โ
- number ํ์ ๊ฐ์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ์ฐ์ฐ์ ์์๋ฅผ ๋ค ์ ์๋ค. (+, -, *, /, %)
- Math ๊ฐ์ฒด์ ๋ค์ํ ๋ฉ์๋(Math.random(), Math.floor(), Math.ceil(), Math.pow() ๋ฑ)๋ฅผ ํ์ฉํ์ฌ ๋์ ์์ฑ, ์ฌ๋ฆผ/๋ด๋ฆผ, ๊ฑฐ๋ญ์ ๊ณฑ ๊ณ์ฐ๊ณผ ๊ฐ์ ์ํ์ ์ฐ์ฐ์ ์ฌ์ฉ ์์๋ฅผ ๋ค ์ ์๋ค.
boolean ํ์
โ
- ๋น๊ต ์ฐ์ฐ์(<, <=, >, >=)๋ฅผ ์ฌ์ฉํ์ฌ number ํ์ ์ ๊ฐ์ ๋น๊ตํ ์ ์๋ค.๋์น ์ฐ์ฐ์(===)๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ด ๋์ผํ์ง ํ์ธํ ์ ์๋ค.
- OR์ฐ์ฐ์(||), AND์ฐ์ฐ์(&&), NOT์ฐ์ฐ์(!)์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๊ธฐ์ตํ๋ค.
- falsyํ ๊ฐ์ ๋์ดํ ์ ์๋ค.
string ํ์
โ
- number ํ์ ์ ๊ฐ์ string ํ์ ์ผ๋ก, string ํ์ ์ ๊ฐ์ number ํ์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- ์์๋ฐ์ดํ(โโ), ํฐ๋ฐ์ดํ(โโ), ๋ฐฑํฑ(``)์ ์ฌ์ฉ๋ฒ๊ณผ ์ฐจ์ด์ ์ ์ค๋ช ํ ์ ์๋ค.
- ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ์ฌ ๋ณ์๋ฅผ ๋ฌธ์์ด์ ํจ์จ์ ์ผ๋ก ์ฝ์ ํ๊ณ , ๋์ ์ธ ๋ฌธ์์ด์ ์์ฑํ ์ ์๋ค.
- length ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์กฐํํ๊ณ , ์ฌ์ฉ ์์๋ฅผ ๋ค ์ ์๋ค.
์กฐ๊ฑด๋ฌธ
โ
- if, else๋ฌธ์ ์ฌ์ฉํ์ฌ ํน์ ์กฐ๊ฑด์๋ง ์ฝ๋๊ฐ ์คํ๋๋๋ก ๊ตฌํํ ์ ์๋ค.
- else if๋ฌธ์ ํ์ฉํ์ฌ ์ฌ๋ฌ ์กฐ๊ฑด์ ์์ฐจ์ ์ผ๋ก ํ์ธํ๊ณ ์คํํ ์ ์๋ค.
- if๋ฌธ๊ณผ switch๋ฌธ์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ , switch๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ ํ ์ํฉ์ ์์๋ฅผ ๋ค ์ ์๋ค.
- ์ผํญ ์ฐ์ฐ์(? :)๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฐ์ ๊ฐ๊ฒฐํ๊ฒ ๋ฐํํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
๋ฐ๋ณต๋ฌธ ๊ธฐ์ด
โ
- for๋ฌธ์ ์ฌ์ฉํ์ฌ ์ํ๋ ํ์ ๋งํผ ์ฝ๋๊ฐ ์คํ๋๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ตํ๋ค.
- ๋ฐ๋ณต์ ์ธ ์ฝ๋ ์คํ์ด ํ์ํ ์ํฉ์ ์ดํดํ๊ณ , ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด for๋ฌธ์ ์ฌ์ฉํ์ฌ ํจ์จ์ ์ผ๋ก ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- while๋ฌธ์ ๋์ ์๋ฆฌ์ ํ์ฉ๋ฒ์ ์ดํดํ๊ณ , ์กฐ๊ฑด ๊ธฐ๋ฐ ๋ฐ๋ณต์ด ํ์ํ ์ํฉ์์ for๋ฌธ๊ณผ ๊ตฌ๋ถํ์ฌ ์ ์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
- ๋ค์ค ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ ์ ์ ํ ์์๋ฅผ ๋ค ์ ์์ผ๋ฉฐ, ์คํ ์์๋ฅผ ๋ช ํํ ์ค๋ช ํ ์ ์๋ค.
๋ฐฐ์ด ๊ธฐ์ด
โ
- Array.isArray๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์ด์ง ๊ฐ์ด ๋ฐฐ์ด์ธ์ง ์ฌ๋ถ๋ฅผ ๊ธฐ์ตํ ์ ์๋ค
- pop(), push(), unshift(), shift() ๋ฑ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด ์์๋ฅผ ์ถ๊ฐ ๋๋ ์ญ์ ํ ์ ์๋ค
- slice() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด ์์ ์ค ์ผ๋ถ๋ฅผ ๋ณต์ฌํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๊ณ ํ์ฉํ ์ ์๋ค.
- ๋ฐฐ์ด์ ํจ์จ์ ์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ํ ๋ฉ์๋์ ์ข ๋ฅ์ ๊ธฐ๋ฅ์ ๋์ดํ ์ ์๋ค.
๋ฐฐ์ด๊ณผ ๋ฐ๋ณต๋ฌธ
โ
- for๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ํํ๊ณ , ๊ฐ ์์์ ๋ํด ์ํ๋ ์์ ์ ์ํํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- for๋ฌธ ๋ด๋ถ์ if๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋ชจ๋ ์์ ์ค ์กฐ๊ฑด์ ๋ง๋ ์์์ ๋ํด์๋ง ์ํ๋ ์์ ์ ์ํํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- for...of ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ํํ๊ณ , ๊ฐ๋ ์ฑ์ ๋์ธ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค. ๋ค์ค ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ์ค์ฒฉ๋ ๋ฐฐ์ด(2์ฐจ์ ๋ฐฐ์ด ๋ฑ)์ ๋ชจ๋ ์์๋ฅผ ์ํํ๊ณ ์์ ์ ์ํํ ์ ์๋ค.
ํจ์ ๊ธฐ์ด
โ
- ํจ์ ์ ์ธ๋ฌธ์ ์ฌ์ฉํ์ฌ ํจ์๋ฅผ ์ ์ํ๊ณ , ํจ์ ์ ์์ ํ์ํ ์์(ํจ์๋ช , ๋งค๊ฐ๋ณ์, ํจ์ ๋ณธ๋ฌธ)๋ฅผ ๋ชจ๋ ๋์ดํ ์ ์๋ค.
- ํจ์ ์ ์ธ๋ฌธ์ ํจ์ ํํ์์ผ๋ก ๋ณ๊ฒฝํ๊ณ , ๋ ๋ฐฉ์์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์๋ค.
- ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ , ์ ๋ฌ์ธ์๊ฐ ๋งค๊ฐ๋ณ์์ ํ ๋น๋๋ ๋ฐฉ์์ ๋ช ํํ ์ค๋ช ํ ์ ์๋ค.
- return๋ฌธ์ ์ฌ์ฉํ์ฌ ํจ์์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ , ๋ฐํ๋ ๊ฐ์ ํจ์ ์ธ๋ถ์์ ํ์ฉํ ์ ์๋ค.
- ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ (์ฌ์ฌ์ฉ์ฑ, ์ฝ๋์ ๊ฐ๋ ์ฑ ํฅ์, ์ ์ง๋ณด์ ์ฉ์ด์ฑ)๋ฅผ ๋์ดํ ์ ์๋ค.
- ํจ์ ๋ด๋ถ์์ ์ ์ธ๋ ๋ณ์๋ฅผ ํจ์ ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๊ธฐ์ตํ ์ ์๋ค.
- (์ฌํํธ - ์ค์ฝํ) ํจ์ ๋ด๋ถ์์ ์ ์ธ๋ ๋ณ์๋ฅผ ํจ์ ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๊ธฐ์ตํ ์ ์๋ค.
๊ฐ์ฒด ๊ธฐ์ด
โ
- ๊ฐ์ฒด๋ ํ๋กํผํฐ์ ์งํฉ์ด๋ฉฐ, ๊ฐ ํ๋กํผํฐ๊ฐ ํค-๊ฐ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๋ ๊ฐ๋ ์ ๊ธฐ์ตํ ์ ์๋ค.
- dot notation๊ณผ bracket notation์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด ํ๋กํผํฐ์ ๊ฐ์ ์กฐํํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ตํ ์ ์๋ค.
- dot notation๊ณผ bracket notation์ ์ฐจ์ด์ ์ฃผ์ํ ์ (์: bracket notation์์๋ ๋ณ์๋ฅผ ํค๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์ )์ ์ดํดํ๊ณ , ๊ฐ ๋ฐฉ๋ฒ์ ๋ํ ์ฌ์ฉ ์์๋ฅผ ๋ค ์ ์๋ค.
- ๊ฐ์ฒด ํ๋กํผํฐ๋ฅผ ์ถ๊ฐ, ๋ณ๊ฒฝ, ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ์ ์๋ค.
- for...in ๋ฌธ๊ณผ Object ๋ฉ์๋(Object.keys, Object.values, Object.entries)๋ฅผ ํ์ฉํ์ฌ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์กฐํํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
๋ฐฐ์ด ์์ฉ
โ
- map ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ๋ณํํ๊ณ , ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- filter ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ๋ง๋ ๋ฐฐ์ด ์์๋ง ์ ํํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- reduce ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์์๋ฅผ ๋์ ํ์ฌ ๋จ์ผ ๊ฐ์ผ๋ก ์ถ์ฝํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- ๋ค์ํ ๊ณ ์ฐจ ํจ์(forEach, some, every, find, sort ๋ฑ)๋ฅผ ๋์ดํ๊ณ , ๊ฐ ํจ์์ ์ฌ์ฉ ์์๋ฅผ ๋ค ์ ์๋ค.
- map๊ณผ forEach์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ์ฌ์ฉ ๋ชฉ์ ๊ณผ ์ ํฉํ ์ํฉ์ ์ดํดํ ์ ์๋ค.
- ๋ฐฐ์ด ๋ณต์ฌ๋ฅผ ์ํด spread syntax์ slice๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
๊ฐ์ฒด ์์ฉ
โ
- ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก spread syntax์ Object.assign()์ ๋์ดํ ์ ์๋ค.
- ๊ฐ์ฒด์ ๋ฉ์๋๋ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก ํจ์๊ฐ ํ ๋น๋ ํํ์์ ์ดํดํ๊ณ , ๋ฐฐ์ด ๋ฉ์๋๋ ๋ฐฐ์ด ๊ฐ์ฒด์ ํ๋กํ ํ์ ์ ์ ์๋ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ์์ ์ค๋ช ํ ์ ์๋ค
ํจ์ ์์ฉ
โ
- ํจ์ ํํ์์ ํ์ดํ ํจ์๋ก ๋ณ๊ฒฝํ์ฌ ๋์ผํ ๋์์ ํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- ํจ์ ์ค์ฝํ์ ๋ธ๋ก ์ค์ฝํ์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ , ์ ์ญ ๋ณ์์ ๋ฌธ์ ์ ์ ์ค๋ช ํ ์ ์๋ค.
๊ตฌ์กฐ๋ถํดํ ๋น
โ
- ๊ตฌ์กฐ๋ถํดํ ๋น์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์์๋ฅผ ๊ฐ๋ณ ๋ณ์๋ก ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ตํ ์ ์๋ค.
- ๊ตฌ์กฐ๋ถํดํ ๋น์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ๊ฐ๋ณ ๋ณ์๋ก ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ตํ ์ ์๋ค
- ์ค์ฒฉ ๊ตฌ์กฐ์ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด๋ฅผ ๊ตฌ์กฐ๋ถํดํ ๋นํ์ฌ ๊ฐ์ ์ถ์ถํ๋ ์์๋ฅผ ๋ค ์ ์๋ค.
DOM ๊ธฐ์ด
โ
- DOM์ด ๋ธ๋ผ์ฐ์ ๊ฐ HTML ๋ฌธ์๋ฅผ JavaScript์ ๊ฐ์ฒด ํํ๋ก ๋ณํํ Document Object Model์ด๋ผ๋ ๊ฒ์ ๊ธฐ์ตํ ์ ์๋ค.
- Node์ ์ ํ๊ณผ DOM API์ ๋ํด ์ ์ ์๋ค.
- querySelector๋ฅผ ์ฌ์ฉํ์ฌ HTML ์์๋ฅผ ์ ํํ๊ณ ํด๋น ์์๋ฅผ ๋ณ์์ ํ ๋นํ ์ ์๋ค.
- DOM ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ HTML ์์์ ์์ฑ, ๋ด์ฉ๋๋ ์คํ์ผ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค
- DOM API๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด HTML ์์๋ฅผ ์์ฑํ๊ณ , ๊ธฐ์กด ์์์ appendํ๊ฑฐ๋ prependํ์ฌ ๋์ ์ผ๋ก ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค
์ด๋ฒคํธ ๊ฐ์ฒด
โ
- addEventListener ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ HTML ์์์ ์ด๋ฒคํธ๋ฅผ ์ค์ ํ๊ณ , ์ฌ์ฉ์ ๋์์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๋ฐ์ํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- ์ด๋ฒคํธ ๊ฐ์ฒด์ ์ญํ ๊ณผ ๊ธฐ๋ณธ ์์ฑ์ ์ค๋ช ํ๊ณ , ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์๋ฅผ ์กฐํํ ์ ์๋ค.
- ์ด๋ฒคํธ์ ๋ฒ๋ธ๋ง์ ๋ํด ์ดํดํ๊ณ , event.stopPropagation()์ ์ ์ ํ ํ์ฉํ ์ ์๋ค.
๋น๋๊ธฐ
โ
- ๋๊ธฐ(Synchronous)์ ๋น๋๊ธฐ(Asynchronous)์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ , JavaScript์์ ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ์ ์๋ค.
- Web API์ ๊ฐ๋ ๊ณผ ์ญํ ์ ์ดํดํ๊ณ , Timer, Event, Fetch ๋ฑ์ Web API๋ฅผ ํ์ฉํ์ฌ ๋น๋๊ธฐ ์์ ์ ์ํํ ์ ์๋ค.
- Promise์ ๊ฐ๋ ๊ณผ ๋์ ํ๋ฆ์ ์ดํดํ๊ณ , ์ฌ์ฉ๋ฒ์ ์ค๋ช ํ ์ ์๋ค.
- async/await์ ๊ฐ๋ ๊ณผ ์ฌ์ฉ๋ฒ์ ์ดํดํ๊ณ , Promise์์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์๋ค.
- fetch()๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์์ฒญํ๊ณ , Promise ๋ฐ async/await๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
๋ฐ์ดํฐ fetch
โ
- HTTP ์์ฒญ/์๋ต ๋ฉ์์ง์ ์ญํ ๊ณผ ๊ตฌ์กฐ์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- HTTP ๋ฉ์๋๋ฅผ ๋์ดํ๊ณ (GET, POST, PUT, DELETE ๋ฑ), ๊ฐ๊ฐ์ ํน์ง๊ณผ ์ฌ์ฉ ์์๋ฅผ ๋ค ์ ์๋ค.
- HTTP ์๋ต ์ฝ๋์ ๋ฒ์ฃผ(1xx~5xx)๋ฅผ ์ดํดํ๊ณ , ๊ฐ ๋ฒ์ฃผ๋ณ๋ก ์ด๋ค ์ํฉ์์ ๋ฐ์ํ๋์ง์ ์ด์ ๋ํ ์ ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ์ ์๋ค.
- try-catch ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐํ์ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
- (์ฌํ) CORS ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ด์ ๋ฅผ ์๊ณ , ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ค๋ช ํ ์ ์๋ค.
Git & GitHub
Git & GitHub
Git & GitHub ํ์ต ๋ชฉํ โ
- Git์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์ค๋ช ํ ์ ์๋ค.
- Git ์ค์ต์ ์ํ ํ๊ฒฝ(VSCode, SourceTree)์ ์ค์ ํ ์ ์๋ค.
- Windows ๋ฐ Mac ํ๊ฒฝ์์ Git์ SourceTree๋ฅผ ์ค์นํ ์ ์๋ค.
- Git ์ฌ์ฉ์ ์ํ ๊ธฐ๋ณธ ์ค์ ์ ํ ์ ์๋ค.
- Git์ ์ด์ฉํด ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ํ ์ ์๋ค(git init).
- status ๋ช ๋ น์ด์ .ignore ํ์ผ์ ๋ง๋ค์ด ํ์ฉํ ์ ์๋ค.
- Git์ ์ด์ฉํด ์ฒซ commit์ ๋จ๊ธธ ์ ์๋ค.
- commit ์ด๋ ฅ์ ํ์ธํ ์ ์๋ git log ๋ช ๋ น์ด๋ฅผ ์ค์ ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- reset ๋ฐ revert ๋ช ๋ น์ด๋ก ์ด์ commit์ผ๋ก ๋์๊ฐ ์ ์๋ค.
- SourceTree๋ฅผ ์ด์ฉํด ์ด์ commit์ผ๋ก ๋์๊ฐ๋ ๋ฐฉ๋ฒ์ ์ตํ ์ ์๋ค.
- branch์ ๊ฐ๋ ์ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- branch๋ฅผ ํฉ์น๊ธฐ(merge, rebase)ํ ์ ์๋ค.
- merge์ ๋ค์ํ ๋ฐฉ์๊ณผ ์ต์ ์ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- ์ถฉ๋(conflict)์ ๋ํด ์ดํดํ๊ณ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
- ๋ค๋ฅธ branch์์ commit ์ด๋ ฅ์ ๊ฐ์ ธ์ค๋ cherry-pick ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- GitHub์ ๊ฐ์ ํ๊ณ ํ ํฐ์ ์ค์ ํ ์ ์๋ค.
- GitHub์ Repository๋ฅผ ์์ฑํ๊ณ ์ฝ๋๋ฅผ pushํ ์ ์๋ค.
- GitHub์์ push์ pull์ ์ฌ์ฉํ ์ ์๋ค.
- GitHub๋ฅผ ์ด์ฉํ ํ์ ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- GitHub์์ tag ๊ธฐ๋ฅ๊ณผ ์๊ฒฉ ๋ธ๋์น๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.
React
React
React๋ฅผ ํ์ตํ๋ ์ด์
โ
React๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์์ต๋๋ค.
- React๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- React์ ํน์ง๊ณผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- Vanilla JavaScript์ ๋น๊ตํ์ ๋ React๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- SPA๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- ๊ฐ์DOM์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
React์ ์ฅ์ ๊ณผ ํน์ง
โ
๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๊ตํ์ ๋ React์ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA)๊ณผ ๊ฐ์ DOM์ ํ์ฉํ๋ ์ฅ์ ์ ์ค๋ช ํ ์ ์์ต๋๋ค.
- ๊ฐ์DOM ๋์์๋ฆฌ๋ฅผ ์ค๋ช ํ ์ ์๋ค.
- SPA ๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- SPA ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๊ฐ๋ฐ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ์ฅ์ ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
React์ ์ฅ์ ๊ณผ ํน์ง
โ
React ํ๊ฒฝ ์ค์ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ , Create React App์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
- create-react-app์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์์งํ๊ณ ์๋ค.
- React ๊ธฐ๋ณธ ํ์ผ๊ตฌ์กฐ์ ๋ํด ์ดํดํ๋ค.
- npm ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ, ์ํ๋ ์์ ์ ์ํํ ์ ์๋ค.
- public ํด๋์ src ํด๋์ ์ฐ์์ ๋ํด ์ดํดํ๋ค.
JSX ๋ฌธ๋ฒ
โ
JSX ๋ฌธ๋ฒ์ ๊ธฐ๋ณธ์ ์ดํดํ๊ณ , React์์ HTML๊ณผ JavaScript๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ฒฐํฉํ๋ ๋ฐฉ๋ฒ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- JSX๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์ฌ์ฉํ์ ๋์ ์ฅ์ ์ ์ดํดํ๋ค.
- HTML/JavaScript ๋ฌธ๋ฒ๊ณผ JSX ๋ฌธ๋ฒ์ ์ฐจ์ด๋ฅผ ์ดํดํ๋ค.
- babel์ ํ์ฉํ์ฌ JSX ์ฝ๋๋ฅผ JavaScript ์ฝ๋๋ก ๋ณํํ ์ ์๋ค.
- HTML ์ฝ๋๋ฅผ JSX ์ฝ๋๋ก ๋ณํ๋๋ ๊ณผ์ ์ ์ดํดํ๋ค.
์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
โ
์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ๊ฐ๋ ์ ์ดํดํ๊ณ , React ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- ์ปดํฌ๋ํธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์ดํดํ๋ค.
- ์ปดํฌ๋ํธ๋ฅผ ๋ด๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ๋ํด ์ดํดํ๋ค.
- ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์์ ์ปดํฌ๋ํธ๋ฅผ ์ค์ฒฉ์ํค๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ค.
- ์ํ๋ UI๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์๋ค.
์ํ๊ด๋ฆฌ, useState()
โ
useState()๋ฅผ ์ฌ์ฉํ ์ํ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ์ดํดํ๊ณ , ์ปดํฌ๋ํธ ๋ด์์ ์ํ๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋์ง ๊ตฌํํ ์ ์์ต๋๋ค.
- React ์ปดํฌ๋ํธ์์ state์ ์ญํ ์ ๋ํด ์ดํดํ๋ค.
- Hook์ ๊ฐ๋ ์ ๋ํด ์ดํดํ๋ค.
- useState๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ธ ์ํ ๊ฐ์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ดํดํ๋ค.
- input ์์์ ๊ฐ์ ๋ฐ์์ค๋ ๋ฐฉ๋ฒ์ ๊ดํด ์ค๋ช ํ ์ ์๋ค.
useEffect()
โ
useEffect()๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ๋ถ์ ํจ๊ณผ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- React ์ปดํฌ๋ํธ์์ useEffect์ ์ญํ ์ ๋ํด ์ดํดํ๋ค.
- ๋ถ์ํจ๊ณผ์ ์๋ช ์ฃผ๊ธฐ์ ๊ฐ๋ ์ ๋ํด ์ดํดํ๋ค.
- useEffect๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ์ํจ๊ณผ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ดํดํ๋ค.
- ์์กด์ฑ ๋ฐฐ์ด์ ์ํ๋ ์ํฉ์ ๋ง๊ฒ ์์ฑํ ์ ์๋ค.
props
โ
์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ , props๋ฅผ ํตํด ๋ถ๋ชจ์ ์์ ์ปดํฌ๋ํธ ๊ฐ์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค.
- props๋ฅผ ์์ ์ปดํฌ๋ํธ์์๋ ์์ ํ ์ ์๋ค๋ ๊ฒ์ ์ดํดํ๋ค.
- ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ props๋ฅผ ์์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ค.
- ์์ ์ปดํฌ๋ํธ์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ๋ฐ์์จ props๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ค.
- ๊ตฌ์กฐ ๋ถํด ํ ๋น์ ๊ฐ๋ ์ ๋ํด ์ดํดํ๋ค.
์ํ ๋์ด์ฌ๋ฆฌ๊ธฐ
โ
์ํ ๋์ด์ฌ๋ฆฌ๊ธฐ๋ฅผ ํตํด ์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ๊ณต์ ๋๋ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ , ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ์ค์์ฑ์ ์ค๋ช ํ ์ ์์ต๋๋ค.
- ์ํ ๋์ด์ฌ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด ์ดํดํ๋ค.
- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ํด ์ดํดํ๋ค.
- ์ค์ต ์ฝ๋๊ฐ ์๋๋๋ ์๋ฆฌ์ ๋ํด ์ดํดํ๋ค.
- ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ๊ณตํต์ผ๋ก ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋ํ ์ฅ์ ์ ์ดํดํ๋ค.
ํด๋์คํ ์ปดํฌ๋ํธ ๋์ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์
โ
ํด๋์คํ ์ปดํฌ๋ํธ์ ํจ์ํ ์ปดํฌ๋ํธ์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ , ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์์ต๋๋ค.
- ํด๋์คํ ์ปดํฌ๋ํธ์ ์๋ช ์ฃผ๊ธฐ์ ๋ํด์ ์ดํดํ๋ค.
- ํด๋์คํ ์ปดํฌ๋ํธ์ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ค.
- ํด๋์คํ ์ปดํฌ๋ํธ ๋์ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด ์ดํดํ๊ณ ์๋ค.
map() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ก ์ปดํฌ๋ํธ ์์ฑํ๊ธฐ
โ
map() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ฐฐ์ด๋ก๋ถํฐ ์ปดํฌ๋ํธ ๋ฆฌ์คํธ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- map() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ํํ ์ ์๋ค.
- map() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ JSX ๋ก ๋ฐํํ ์ ์๋ค.
- map() ๋ฉ์๋ ์ฌ์ฉํด JSX๋ฅผ ๋ ๋๋ง ํ ๋ key๊ฐ ํ์ํ ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์๋ค.
filter() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ ํํฐ๋งํ๊ธฐ
โ
filter() ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ , ํ์ํ ์ ๋ณด๋ง์ ์ถ์ถํ๋ ๊ธฐ๋ฒ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- filter() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ ์ ์๋ค.
- filter() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ map()๋ฉ์๋๋ฅผ ์ฌ์ฉํด JSX์์๋ก ๋ฐํํ ์ ์๋ค.
react-router-dom์ผ๋ก ๋ผ์ฐํ
ํ๊ธฐ
โ
react-router-dom์ ์ฌ์ฉํ์ฌ SPA ๋ด์์ ๋ผ์ฐํ ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ ์ค๋ช ํ ์ ์์ต๋๋ค.
- React Router์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- a ํ๊ทธ์ Link ์ปดํฌ๋ํธ์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์๋ค.
- useNavigate ํ ์ ์ฌ์ฉํ ์์๋ค.
์ผํญ ์ฐ์ฐ์๋ก ์กฐ๊ฑด๋ถ ๋ ๋๋งํ๊ธฐ
โ
์ผํญ ์ฐ์ฐ์์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ, ์ธ๋์ผ์ดํฐ์ ํจ๊ป useSuspense(), React.lazy๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- ์ผํญ์ฐ์ฐ์๋ฅผ ์ดํดํ๊ณ ์๋ค.
- ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฑด๋ถ ๋ ๋๋งํ ์ ์๋ค.
- ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ์ปดํฌ๋ํธ๋ฅผ ์กฐ๊ฑด๋ถ ๋ ๋๋งํ ์ ์๋ค.
์ฐธ์กฐํ ์๋ฃํ์ ๋ถ๋ณ์ฑ ์ ์งํ๊ธฐ
โ
์ฐธ์กฐ ์๋ฃํ์ ํน์ง์ ์ดํดํ๊ณ , ์ํ ๊ด๋ฆฌ์์ ์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ, spread syntax์ ์ฌ์ฉ๋ฒ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- React ์ํ ๊ด๋ฆฌ์ ์์ด์ ๋ถ๋ณ์ฑ์ ์ ์งํ๋ ๊ฒ์ด ์ ์ค์ํ ์ง ์ค๋ช ํ ์ ์๋ค.
- ์์ ์๋ฃํ์ ๋ถ๋ณ์ฑ์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- ์ฐธ์กฐ ์๋ฃํ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ด๋ผ๋ ๊ฒ์ ์ดํดํ๋ค.
- ์ฐธ์กฐ ์๋ฃํ์ ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ ๊ฒฝ์ฐ ๊ฐ์ ์ฃผ์๊ฐ์ ์ฐธ์กฐํ๋ค๋ ๊ฒ์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- ์ ๊ฐ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฐธ์กฐ ์๋ฃํ์ ๋ณต์ฌํ ์ ์๋ค.
- ์ ๊ฐ ์ฐ์ฐ์, .slice(), Object.assign() ๋ฑ์ ๋ฐฉ๋ฒ์ด ์ ์์ ๋ณต์ฌ์ธ์ง ์ค๋ช ํ ์ ์๋ค.
useCallback(), useMemo()๋ฅผ ์ฌ์ฉํด์ ์ฑ๋ฅ ์ต์ ํํ๊ธฐ
โ
useCallback()๊ณผ useMemo()๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ์ ๋ ๋๋ง ์ฑ๋ฅ์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ์ ์์ต๋๋ค.
- useCallback()์ด ์ด๋ค ๊ธฐ๋ฅ์ ํ๋ Hook์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- ๋ฉ๋ชจ์ด์ ์ด์ ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- useCallback()์ ์ฌ์ฉ๋ฒ์ ์๊ณ ์๋ค.
- useCallback()์ ๋งค๊ฐ๋ณ์๋ฅผ ์ค๋ช ํ ์ ์๋ค.
- useMemo()์ด ์ด๋ค ๊ธฐ๋ฅ์ ํ๋ Hook์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- useMemo()์ ์ฌ์ฉ๋ฒ์ ์๊ณ ์๋ค.
- useMemo()์ ๋งค๊ฐ๋ณ์๋ฅผ ์ค๋ช ํ ์ ์๋ค.
useReducer(), useContext()๋ก ์ํ๊ด๋ฆฌํ๊ธฐ
โ
useReducer()์ useContext()๋ฅผ ์กฐํฉํ์ฌ ๋ณต์กํ ์ํ ๊ด๋ฆฌ ๋ก์ง์ ๊ตฌํํ๋ ๊ณ ๊ธ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ ์ค๋ช ํ ์ ์์ต๋๋ค.
- useReducer()๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ์ดํดํ๊ณ ์๋ค.
- useReducer()๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉํ ์ ์๋ค.
- useReducer์ ์ํด ๋ฐํ๋๋ dispatch ํจ์๊ฐ ์ด๋ค ์ญํ ์ ํ๋์ง ์ค๋ช ํ ์ ์๋ค.
- useContext()๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ์ดํดํ๊ณ ์๋ค.
- useContext()๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉํ ์ ์๋ค.
custom hooks
โ
custom hooks๋ฅผ ๋ง๋ค์ด ๋ก์ง์ ์ฌ์ฌ์ฉํ๊ณ , ์ปดํฌ๋ํธ ๊ฐ์ ์ํ ๊ด๋ฆฌ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์ ์งํ๋ ๋ฐฉ๋ฒ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- custom hook์ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ์ดํดํ๊ณ ์๋ค.
- custom hook์ ๋ง๋ค๊ณ ์ฌ์ฉํ ์ ์๋ค.
- custom hook ์ฌ์ฉ ๊ท์น์ ๋ํด ์ดํดํ๋ค.
- ์ค์ต์ฝ๋๊ฐ ๋์ํ๋ ์๋ฆฌ์ ๋ํด ์ดํดํ๋ค.
Node.js & Express
Node.js & Express
Node.js ํ์ต ๋ชฉํ โ
- Node.js๊ฐ ๋ฌด์์ธ์ง ์ดํดํ ์ ์๋ค.
- Node.js์ ์ญ์ฌ์ ๋ํด ์ ์ ์๋ค.
- Node.js๋ฅผ ์์ ์ ์ปดํจํฐ์ ์ค์นํ๊ณ ๋ฒ์ ์ ํ์ธํ ์ ์๋ค.
- Node.js REPL์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ค.
- Node.js์ ๋ธ๋ผ์ฐ์ ์ API ์ฐจ์ด์ ์ ๊ตฌ๋ณํ ์ ์๋ค.
- Node.js์์ ๊ธ๋ก๋ฒ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ค.
- Node.js์ ๋ชจ๋ ์์คํ ์ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- HTTP ์๋ฒ๋ฅผ Node.js๋ก ๊ตฌ์ถํ ์ ์๋ค.
- Node.js์์ ๋ชจ๋์ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์๋ค.
- ์์ ๋ง์ Node.js ๋ชจ๋์ ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์๋ค.
- ๋ชจ๋์์ ํจ์์ ๊ฐ์ฒด๋ฅผ exportํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ค.
- CommonJS์ ECMAScript ๋ชจ๋ ๊ฐ์ ์ฐจ์ด๋ฅผ ์ดํดํ ์ ์๋ค.
- Node.js์์ ECMAScript ๋ชจ๋์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ค.
- ๋ชจ๋ ์บ์ฑ์ด Node.js์์ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ ์ ์๋ค.
- npm์ ์ฌ์ฉํ์ฌ ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๊ณ ์ค์นํ ์ ์๋ค.
- npm์ ์์กด์ฑ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ **
package-lock.json
**์ ์ญํ ์ ์ ์ ์๋ค. - **
npm audit
**๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์ ์ทจ์ฝ์ ์ ํ์ธํ๊ณ ์์ ํ ์ ์๋ค. - npm ํจํค์ง๋ฅผ ์ ์ญ์ ์ผ๋ก ์ค์นํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ค.
- Yarn ํจํค์ง ๋งค๋์ ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ค.
- HTTP ์์ฒญ๊ณผ ์๋ต์ ๊ตฌ์กฐ๋ฅผ ์ดํดํ ์ ์๋ค.
- ๋ค์ํ HTTP ์ํ ์ฝ๋์ ๊ทธ ์๋ฏธ๋ฅผ ๋ฐฐ์ธ ์ ์๋ค.
- Express.js๋ฅผ ์ฌ์ฉํ์ฌ ์น ์๋ฒ๋ฅผ ๊ตฌ์ถํ ์ ์๋ค.
- Express.js์์ ๋ผ์ฐํ ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ค.
- RESTful API๋ฅผ ์ค๊ณํ๊ณ ๊ตฌํํ ์ ์๋ค.
- Express.js์์ ํ์ผ ์ ์ก์ ์ฒ๋ฆฌํ ์ ์๋ค.
- Express.js์์ ์ ์ ํ์ผ์ ์๋น์คํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ค.
- JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ ์์คํ ์ ๊ตฌํํ ์ ์๋ค.
- Passport๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ ์ธ์ฆ ์์คํ ์ ๊ตฌ์ถํ ์ ์๋ค.
- Express์์ ๋ฏธ๋ค์จ์ด๋ฅผ ๊ตฌํํ๊ณ ๊ด๋ฆฌํ ์ ์๋ค.
- Semantic Versioning์ ์ดํดํ๊ณ ์ ์ฉํ ์ ์๋ค.
Node.js ์ฒดํฌ ๋ฆฌ์คํธ โ
์๋ฒ ๋์ ์๋ฆฌ
- โ๏ธ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๋ฉด, ๊ทธ ์์ฒญ์ด ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋๊ณ ์๋ต์ด ์ค๋์ง ์ค๋ช ํ ์ ์๋์?
- โ๏ธ React์์ ๋ง๋ ํ๋ฉด์ด ์๋ฒ์ ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋์ง, ๊ทธ ๊ณผ์ ์ ์ดํดํ๊ณ ์๋์?
Node.js ๊ธฐ๋ณธ ๊ฐ๋
- โ๏ธ Node.js๊ฐ ๋ฌด์์ธ์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์ฌ์ฉํด ์๋ฒ๋ฅผ ๋ง๋ค ์ ์๋ ์ด์ ๋ฅผ ์๊ณ ์๋์?
- โ๏ธ Node.js์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์๊ณผ ์ด๋ฒคํธ ๋ฃจํ์ ๋ํด ์ดํดํ๊ณ ์๋์?
Node.js๋ฅผ ํ์ฉํ ์๋ฒ ๊ตฌ์ถ
- โ๏ธ Node.js๋ฅผ ์ฌ์ฉํด ๊ธฐ๋ณธ์ ์ธ HTTP ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ๋ ๊ฐ๋จํ ์น ์๋ฒ๋ฅผ ๋ง๋ค ์ ์๋์?
- โ๏ธ Express๋ฅผ ์ฌ์ฉํด ๋ ๋ณต์กํ ๋ผ์ฐํ ๋ฐ ๋ฏธ๋ค์จ์ด ์ฒ๋ฆฌ๋ฅผ ํฌํจํ ์๋ฒ๋ฅผ ๊ตฌ์ถํ ์ ์๋์?
ํ๋ก ํธ์๋์ ๋ฐฑ์๋์ ํ์
- โ๏ธ ํ๋ก ํธ์๋์ ๋ฐฑ์๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ์์ ์ดํดํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ์์ ํ์ ํ ์ ์๋์?
์น ์ธ์ฆ ๋ฐ ๋ณด์ ๊ธฐ์ด
- โ๏ธ Node.js์ Express๋ฅผ ์ฌ์ฉํด ์ฟ ํค๋ ์ธ์ ์ ํ์ฉํ ์ธ์ฆ ๊ธฐ๋ฅ์ ๋ง๋ค ์ ์๋์?
- โ๏ธ ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ๊ณ ๊ถํ์ ๊ด๋ฆฌํ๋ ์๋ฒ๋ฅผ ์ง์ ๊ตฌํํ ์ ์๋์? (7์ )
- โ๏ธ JWT(ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ)์ ์ฌ์ฉํด ๋ณด์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ธ์ฆ ์์คํ ์ ์ค๊ณํ ์ ์๋์?
OAuth 2.0์ ํ์ฉํ ์์ ๋ก๊ทธ์ธ
- โ๏ธ Google, Facebook ๋ฑ ์์ ๊ณ์ ์ ์ด์ฉํ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ ๊ฒฝํ์ด ์๋์?
- โ๏ธ OAuth 2.0์ ์ฌ์ฉํด ์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ค์ ๋ก ๋ง๋ค์ด๋ณธ ์ ์ด ์๋์?
๋ณด์์ฑ๊ณผ ํจ์จ์ฑ์ ๊ฐ์ถ ์๋ฒ ์ค๊ณ
- โ๏ธ Node.js์ Express๋ฅผ ํ์ฉํด ๋ณด์์ด ๊ฐํ๋ ์๋ฒ๋ฅผ ์ค๊ณํ๊ณ ๊ตฌํํ ์ ์๋์?
- โ๏ธ ๋ณด์์ด ์ค์ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ ์๋ฒ๋ฅผ ๊ตฌ์ถํ ์ ์๋์?
Database
Database
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ต ๋ชฉํ โ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ค๋ช ํ ์ ์๋ค.
- SELECT ๋ฌธ๋ฒ๊ณผ ๋ค์ํ ์กฐ๊ฑด์ (WHERE, ORDER BY, GROUP BY)์ ํ์ฉํ ์ ์๋ค.
- ๋ฐ์ดํฐ ์ค๋ณต ์ ๊ฑฐ ๋ฐ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ๋ํด ์ดํดํ๋ค.
- ๋ฐ์ดํฐ ์ง๊ณ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ง๊ณํ ์ ์๋ค.
- CRUD (Create, Read, Update, Delete) ์์ ์ SQL์ ํตํด ์คํํ ์ ์๋ค.
- ๋ค์ํ JOIN ์ ํ(INNER, LEFT, RIGHT๋ฑ)์ ์ฌ์ฉํ ์ ์๋ค.
- ๊ธฐ๋ณธ SQL ๋ฌธ๋ฒ์ ์ดํดํ๊ณ ๊ฐ๋จํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋ค.
- ๋ฐ์ดํฐ ํ์ ๊ณผ ์ ์ฝ ์กฐ๊ฑด์ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทํ ์์น์ ์ดํดํ๊ณ ์ ์ฉํ ์ ์๋ค.
- ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํตํด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ค๊ณํ ์ ์๋ค.
- 3-Tier ์ํคํ ์ฒ์ ๋ค์ํ ์์คํ ์ํคํ ์ฒ(1Tier, 2Tier)์ ๊ตฌ์ฑ๊ณผ ์ฅ๋จ์ ์ ์ดํดํ๋ค.
- ๋ํ์ ์ธ BaaS์ธ Supabase๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํฌํจ๋ ๊ฐ๋จํ ํ๋ก์ ํธ๋ฅผ ์งํํ ์ ์๋ค.
- ORM(Object-Relational Mapping)์ ๊ฐ๋ ์ ์ดํดํ๊ณ Prisma๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์ ์ฅ์ ์ ํ์ตํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒดํฌ๋ฆฌ์คํธ โ
๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ธฐ์ด
- โ๏ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ๋ ๊ณผ ํ์์ฑ์ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB)์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์์คํ (RDBMS)์ ์ค๋ช ํ ์ ์๋์?
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
- โ๏ธ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๊ณผ์ ์ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ ์๊ตฌ์ฌํญ์ ๋ณด๊ณ ์ค์ค๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํ ์ ์๋์?
- โ๏ธ ๋ฐ์ดํฐ ์คํค๋ง๋ฅผ ๋ณด๊ณ ํ์ํ ๋ฐ์ดํฐ๋ง ์กฐํํ ์ ์๋์?
SQL
- โ๏ธ supabase SQL์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑ/์ญ์ ํ ์ ์๋์?
- โ๏ธ supabase SQL์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์์ฑ/์ญ์ ํ ์ ์๋์?
- โ๏ธ supabase SQL์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ํ์ ์ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ supabase SQL์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ/์กฐํ/์์ /์กฐํํ ์ ์๋์?
- โ๏ธ supabase SQL์ ํ์ฉํ์ฌ ์ฌ๋ฌ ํ ์ด๋ธ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์กฐํํ ์ ์๋์?
์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- โ๏ธ Prisma, supabase๋ฅผ ํ์ฉํ์ฌ ์ด๊ธฐ ์ค์ , ์คํค๋ง ์์ฑ, ์คํค๋ง ์ ์ฉ์ ํ ์ ์๋์?
- โ๏ธ ๊ฐ๋จํ ์๊ตฌ์ฌํญ์ ๋ํด Prisma๋ก supabase ๋ฐ์ดํฐ๋ฒ ์ด์ค์ CRUD ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ผ ์ ์๋์?
- โ๏ธ ํด๋ผ์ด์ธํธ-์๋ฒ-๋ฐ์ดํฐ๋ฒ ์ด์ค(3-Tier)๋ฅผ ๊ธฐ๋ฐ์ผ๋กํ ๊ฐ๋จํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ ์ ์๋์?
AWS
AWS
AWS ํ์ต ๋ชฉํ โ
- AWS ๊ธฐ์ด ๊ฐ๋ ์ดํด: S3, CloudFront, IAM ๋ฑ์ ํต์ฌ AWS ์๋น์ค๋ฅผ ์ดํดํ๊ณ ์ฉ๋์ ๋ชฉ์ ์ ํ์ ํ๋ค.
- S3 ๋ฒํท ์์ฑ ๋ฐ ์ฌ์ฉ: S3 ๋ฒํท์ ์์ฑํ๊ณ ํ์ผ ์ ๋ก๋/๋ค์ด๋ก๋ ๋ฐ ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ค์ ์ ํ์ตํ๋ค.
- ํ๋ก ํธ์๋ ์ฝ๋ ๋ฐฐํฌ: S3์ ํ๋ก ํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ๋ฅผ ํ์ตํ๋ค.
- HTTPS ์ค์ : ์ธ์ฆ์๋ฅผ ACM(AWS Certificate Manager)์ผ๋ก ์์ฑํ๊ณ , HTTPS ์ค์ ๋ฐฉ๋ฒ์ ์ตํ๋ค.
- ๋ฐฐํฌ ์๋ํ: Github Actions๋ฅผ ์ฌ์ฉํ์ฌ CI/CD ๋๊ตฌ๋ฅผ ํ์ฉํด ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋ค
AWS ์ฒดํฌ๋ฆฌ์คํธ โ
AWS ๊ธฐ์ด ๊ฐ๋ ์ดํด
- โ๏ธ ๋ฐฐํฌ์ ๊ฐ๋ ์ ์ดํดํ๊ณ , ๋ก์ปฌ ์๋ฒ์ ๋ฐฐํฌ ์๋ฒ์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ AWS S3 ์๋น์ค์ ์ฌ์ฉ ๋ชฉ์ ์ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ AWS CloudFront ์๋น์ค์ ์ฌ์ฉ ๋ชฉ์ ์ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ AWS CloudFront๋ฅผ ์ฌ์ฉํ ๋ ๋ฌดํจํ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ AWS IAM ์๋น์ค์ ์ฌ์ฉ ๋ชฉ์ ์ ์ค๋ช ํ ์ ์๋์?
S3 ๋ฒํท ์์ฑ ๋ฐ ์ฌ์ฉ
- โ๏ธ S3 ๋ฒํท์ ์์ฑํ๊ณ ํผ๋ธ๋ฆญ ์ก์ธ์ค์ ์ค์ ํ ์ ์๋์?
- โ๏ธ S3 ๋ฒํท์ ํ์ผ์ ์ ๋ก๋/๋ค์ด๋ก๋ํ ์ ์๋์?
HTTPS ์ค์
- โ๏ธ ๋๋ฉ์ธ๊ณผ DNS์ ๊ฐ๋ ์ ์ดํดํ๊ณ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ URL๊ณผ URI์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ HTTP์ HTTPS์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ ACM(AWS Certificate Manager)์ ์ฌ์ฉํด HTTPS๋ฅผ ์ค์ ํ ์ ์๋์?
๋ฐฐํฌ ์๋ํ
- โ๏ธ CI/CD์ ๊ฐ๋ ์ ์ดํดํ๊ณ ์ง์์ ํตํฉ(Continuous Integration)๊ณผ ์ง์์ ๋ฐฐํฌ(Continuous Deploy)์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ ์ ์๋์?
- โ๏ธ Github Actions๋ฅผ ์ฌ์ฉํ์ฌ CI/CD๋ฅผ ๊ตฌ์ฑํ ์ ์๋์?
TypeScript
TypeScript ํ์ต ๋ชฉํ โ
- TypeScript๋ ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ TypeScript๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ TypeScript ์ ๊ฐ์์ ๋ํด ์ดํดํ๊ณ ์๋ค.
- โ๏ธ TypeScript ์ ํน์ง์ ๋ํด ์ดํํ๊ณ ์๋ค.
- JavaScript์ TypeScript์ ์ฐจ์ด์ ์ ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ JS์ TS์ ์ฐจ์ด์ ์ด ๋ฌด์์ธ์ง ์ดํดํ๊ณ ์๋ค.
- โ๏ธ JS์ ๋น๊ตํ TS์ ์ฅ์ ๋ฐ ํน์ง์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ TS์ ํ์ ๊ฒ์ฌ๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋ ์ง ์๊ณ ์๋ค.
- โ๏ธ JS์ TS์ ํ์ ๊ฒ์ฌ๋ฅผ ๋น๊ตํ์์ ๋ TS์ ์ฅ์ ์ด ๋ฌด์์ธ ์ง ์ค๋ช ํ ์ ์๋ค.
- TypeScript๋ฅผ ์ค์นํ๊ณ ์ค์ ํ ์ ์๋ค.
- โ๏ธ TypeScript ๋ฅผ ์ ์ญ์ผ๋ก ์ค์นํ ์ ์๋ค.
- โ๏ธ tsc ๋ช ๋ น์ด๋ฅผ ํตํด ๊ฐ๋จํ ์ปดํ์ผ ๊ณผ์ ์ ์ํํ ์ ์๋ค.
- TypeScript์ ๊ธฐ๋ณธ ๋์ ์๋ฆฌ๋ฅผ ์ดํดํ ์ ์๋ค.
- โ๏ธ ํ์ ์์คํ ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ํ์ ์์ ์ฑ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ํ์ ์ถ๋ก ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ์ ์ ํ์ ๊ณผ ๋์ ํ์ ์ ๋น๊ตํ์ฌ ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ์ ๋ค๋ฆญ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- TypeScript ํ๊ฒฝ์ ์ค์ ํ ์ ์๋ค.
- โ๏ธ tsconfig.json ํ์ผ์ ์ดํดํ๊ณ ์๋ค.
- โ๏ธ tsconfig.json ํ์ผ ์ ์์ฑ๋ค์ ์ดํดํ๊ณ ์๋ค.
- TypeScript๋ก ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์๋ค.
- โ๏ธ TypeScript์ ๊ธฐ๋ณธ ํ์ ์ข ๋ฅ์ ๋ฌด์์ด ์๋์ง ์๊ณ ์๋ค.
- โ๏ธ
string
ํ์ ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ์ ๋ํด ์ค๋ช ํ ์ ์๋ค. - โ๏ธ
number
ํ์ ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ์ ๋ํด ์ค๋ช ํ ์ ์๋ค. - โ๏ธ
boolean
ํ์ ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ์ ๋ํด ์ค๋ช ํ ์ ์๋ค. - โ๏ธ
null
ํ์ ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ์ ๋ํด ์ค๋ช ํ ์ ์๋ค. - โ๏ธ
any
ํ์ ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- ๋ฐฐ์ด ํ์ ์ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ ๋ฐฐ์ด ํ์ ์ ์ ์ํ ์ ์์ต๋๋ค.
- โ๏ธ ํผํฉ ํ์ ๋ฐฐ์ด์ ๋ํด ์ดํดํ๊ณ ์์ต๋๋ค.
- โ๏ธ ๋ฐฐ์ด ๋ฉ์๋์ ํ์ ์ถ๋ก ์ ๋ํด ์ดํดํ๊ณ ์์ต๋๋ค.
- ๊ฐ์ฒด ํ์ ์ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ TypeScript ๊ฐ์ฒด ํ์ ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ์ ํ์ ์์ฑ(Optional Properties)์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ์ฝ๊ธฐ ์ ์ฉ ์์ฑ(Readonly Properties)์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ํ์ ๋ณ์นญ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- ํจ์ ํ์ ์ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ ๋งค๊ฐ๋ณ์ ํ์ ํ๊ธฐ์ ๋ํด ์ดํดํ๊ณ ์์ต๋๋ค.
- โ๏ธ ๋ฐํ ํ์ ํ๊ธฐ์ ๋ํด ์ดํดํ๊ณ ์์ต๋๋ค.
- โ๏ธ ์ปจํ ์คํธ ํ์ ์ ๋ํด ์ดํดํ๊ณ ์์ต๋๋ค.
- ์ ๋์ธ ํ์ ์ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ ์ ๋์ธ ํ์ ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ์ ๋์ธ ํ์ ์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ์ดํดํ๊ณ ์๋ค.
- โ๏ธ ์ ๋์ธ ํ์ ์ ๋ฐฐ์ด์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ณ ์๋ค.
- โ๏ธ ๋ฆฌํฐ๋ด ํ์ ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ํ์ ๋ณ์นญ(Type Aliases)์์ ์ ๋์ธ ํ์ ์ ์ ์ํ ์ ์๋ค.
- ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ณ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
- โ๏ธ ์ ํ์ ํ๋กํผํฐ์ ์ฝ๊ธฐ ์ ์ฉ ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ ์ธํฐํ์ด์ค ํ์ฅ์ ๋ํด ์ดํดํ๊ณ ์๋ค.
- โ๏ธ ํ์ ๋ณ์นญ๊ณผ ์ธํฐํ์ด์ค์ ์ฐจ์ด์ ์ ์ดํดํ๊ณ ์๋ค.
- ํํ์ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ TypeScript์์ Tuple์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ Tuple์ ํตํด ์์์ ํ์ ๊ณผ ์์๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ณ ์๋ค.
- โ๏ธ Tuple์ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ Tuple์ ์์ ์ ๊ทผ ๋ฐ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ณ ์๋ค.
- โ๏ธ Tuple์ ๊ตฌ์กฐ ๋ถํด ํ ๋น(Destructuring)ํ์ฌ ๊ฐ๋ณ ์์๋ฅผ ๋ณ์์ ํ ๋นํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ณ ์๋ค.
- ์ด๊ฑฐํ์ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ ๋ฌธ์ํ Enum ์ ๋ํด ์ดํดํ๊ณ ์๋ค.
- โ๏ธ ์ซ์ํ Enum ์ ๋ํด ์ดํดํ๊ณ ์๋ค.
- โ๏ธ Enum์
switch
๋ฌธ๊ณผ ์ฌ์ฉํ ์ ์๋ค.
- ํ์ ์ถ๋ก ๊ณผ ํ์ ๋จ์ธ์ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ ํ์ ์ถ๋ก ์ ๊ฐ๋ ๋ฐ ํน์ง์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ํ์ ์ถ๋ก ์ ์ฃผ์ ๊ฐ๋ ์ค ์๋ ํ์ ๊ฒฐ์ ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ํ์ ์ถ๋ก ์ ์ฃผ์ ๊ฐ๋ ์ค ๋ฌธ๋งฅ ๊ธฐ๋ฐ ์ถ๋ก ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ํ์ ์ถ๋ก ์ ์ฃผ์ ๊ฐ๋ ์ค ํ์ ์ ์ธ ์๋ต์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ํ์ ๋จ์ธ์ ๋ํด ์ดํดํ๊ณ ์๋ค.
- โ๏ธ ํ์ ๋จ์ธ์ ์ธ์ ์ฌ์ฉํ๋์ง ์๊ณ ์๋ค.
- โ๏ธ ํ์ ๋จ์ธ ์ฌ์ฉ์ ์ฃผ์์ฌํญ์ ๋ํด ์ดํดํ๊ณ ์๋ค.
- ํด๋์ค๋ฅผ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ Classes์ ๊ฐ๋ ๋ฐ ํน์ง์ ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ Classse๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๋ค.
- โ๏ธ ์ ๊ทผ ์ ์ด์ (Access Modifiers)์ ๊ฐ๋ ์ ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ์ธํฐํ์ด์ค๋ก ํด๋์ค์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๋ค.
- ์ ๋ค๋ฆญ์ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- โ๏ธ ์ ๋ค๋ฆญ์ ๋ํด ์ดํดํ๊ณ ์๋ค.
- โ๏ธ ์ ๋ค๋ฆญ ํจ์์ ๋ํด ์ดํดํ๊ณ ์๋ค.
- โ๏ธ ์ ๋ค๋ฆญ ์ธํฐํ์ด์ค์ ๋ํด ์ดํดํ๊ณ ์๋ค.
- ์ ๋ค๋ฆญ ํจ์๋ฅผ ์์ฑํ๊ณ ํ์ฉํ ์ ์๋ค.
- โ๏ธ ์ ๋ค๋ฆญ ํด๋์ค์ ๊ฐ๋ ๋ฐ ํน์ง์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- โ๏ธ ์ ๋ค๋ฆญ ํด๋์ค์ ๊ธฐ๋ณธ ๊ตฌ์กฐ์ ๋ํด ์๊ณ ์๋ค.
- โ๏ธ ์ ๋ค๋ฆญ ํด๋์ค์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ค์ ๋ก ์์ฑํ ์ ์๋ค.
- โ๏ธ ์ ๋ค๋ฆญ ํด๋์ค์ ํ์ ์ ํ์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- TypeScript์ DOM์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
- ํ์ ์ขํ๊ธฐ(Type Narrowing)๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- ๊ณ ๊ธ ํ์ ๊ณผ ์ ํธ๋ฆฌํฐ ํ์ ์ ์ฌ์ฉํ ์ ์๋ค.