๐ ๐ฅ ์ฃผ์ฐจ๋ณ ์คํ๋ฆฐํธ ๊ณํ & ๋ฐ๋ชจ ์ฌ์ดํธ - boostcampwm-2022/web17-waglewagle GitHub Wiki
- ์๋ฒ ๊ตฌ์ฑ, CI / CD ๊ฐ์ ์ธํ๋ผ, API, DB ๋ฑ ์ค๊ณ๋ฅผ ๋ณด์ฌ์ฃผ๋ฉด ์ด๋จ๊น? + ๊ณ๋ค์ฌ์ ๋์์ธ ์ ๋ (๋ ์ด์์ ๋๋๋ค๋ฉด)
- API ์๋ฒ์ ํด๋ผ์ด์ธํธ ์๋ฒ๊ฐ ํต์ ์ด ๋๋ค.
- API ๋ช ์ธ
- DB ERD
- CI / CD ํ์ดํ๋ผ์ธ
- ์๋ฒ ์ธํ๋ผ ์๊ฐํ ์๋ฃ
- ์๋ฌด๊ฑฐ๋ Mock API (CORS๋ ๊ด๋ จ๋๋ฉด ์ข๊ฒ ๋ค.)
- (๋ ์ด์์)
- API ๋ช ์ธ ์์ฑ
- DB ERD ์ค๊ณ
- CI / CD ํ์ดํ๋ผ์ธ ์ค๊ณ
- ์๋ฒ ์ธํ๋ผ ๊ตฌ์ถ
- ์๋ฌด๊ฑฐ๋ Mock API ๊ตฌํ
- (๋ ์ด์์ ๊ตฌํ)
- API ์๋ฒ์ ํด๋ผ์ด์ธํธ HTTP ํต์ ์ ์ฑ๊ณตํ๋ค
- MySQL ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ
- ์ธํ๋ผ ์๋ฒ๋ค (CI / CD)
- (ํด๋ผ์ด์ธํธ ํ๋ฉด)
- ๋ฐฑ์๋ : DB ์ค๊ณ
- API ๋ช ์ธ ์์ฑ
- API ์๋ฒ ๋ฐฐํฌ
- API ์๋ฒ CI / CD
- DB ์๋ฒ ๋ฐฐํฌ
- DB ์๋ฒ CI / CD
- ํ ์คํธ์ฉ API ๊ตฌํ
- ํ์ด์ง ๋์์ธ
- ํ์ด์ง ์ค๊ณ (์ธํฐ๋์ , ์ปดํฌ๋ํธ ์ถ์ํ)
- ํ๋ก ํธ์๋ ์๋ฒ ๋ฐฐํฌ
- ํ๋ก ํธ์๋ ์๋ฒ CI / CD
- ESLint, prettier, tsconfig ์ค์ ํ๋ฉฐ ์ฝ๋ฉ ์คํ์ผ ๋ง์ถ๊ธฐ
- ํ์ดํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๊ด๋ฆฌ์ํ์ด์ง ๊ตฌํํ๋ฉฐ ์ปดํฌ๋ํธ ๊ตฌํ ์คํ์ผ ์ฑํฌ ๋ง์ถ๊ธฐ
- ๋๋ฉ ํ์ด์ง ๊ตฌํ
- ํ ์คํธ์ฉ API ์์ ํ์ธ ๊ตฌํ
- ๊ธฐ์ ์ ์ธ ๋์ ์ ๋ํด ๋ค์ ์ดํดํ๊ณ , ํต์ฌ ๊ธฐ๋ฅ์ ๋ํด์ ์ด์ ์ ์๋กญ๊ฒ ์ก์๋ค.
- ํต์ฌ๊ธฐ๋ฅ(๊ธฐ์ ์ ์ธ ๋์ , ์ค๋ ๊ณ ๋ฏผ ๋ฐ ๊ฐ์ ํ์)์ ๋จผ์ ๊ตฌํํ์ฌ ๋ฐ๋ชจ์ ์ฌ์ฉํ๊ณ , ์ถํ ๋ณด์์ ํด์ผํ๋ค.
- ํค์๋ ๋ฐ์ดํฐ (ํค์๋, ๊ฐ์, ์ฐ๊ด๊ด๊ณ)
- ํค์๋ ์ฐ๊ด๊ด๊ณ ์๊ณ ๋ฆฌ์ฆ
- ํค์๋ ์๊ฐํ ๋ฐฐ์น ์๊ณ ๋ฆฌ์ฆ
- ์ฑ๋ฅ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ & ํค์๋ ๊ฐ์ค์น์ ๋ฐ๋ฅธ ๋ณํ ์์ด ๋ฐ์ดํฐ ์๊ฐํ ๊ตฌํ (๊ฐ์์ ๋ฐ๋ผ์๋ง)
- ์ฑ๋ฅ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ ํค์๋ ์๋์์ฑ (์ด๋ฏธ ์๋ ๋จ์ด๋ก ๋ง์ถฐ์ค)
- ์ฑ๋ฅ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ ํค์๋ ์ถ์ฒ ๊ตฌํ (ํ์ฌ ๋จ์ด์์ ์ถ์ฒ)
- ๊ธฐ์ด์ ์ธ ์์ค์ด๋ผ๋ ์ ์ ๊ฐ ํต์ฌ ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ์๋ค.
- ์ด๋ฒ์ฃผ ํต์ฌ ๊ธฐ๋ฅ์ ๋ํ API ๋ช ์ธ ๊ฐฑ์ ํ๊ธฐ
-
๊ฐฑ์ ๋ Feature List ํ ๋๋ก UI / UX ๋์์ธ ๊ทธ๋ ค์ ๊ณต์ ํ๊ธฐ
-
๊ทธ๋ฃน ํค์๋ ๋ฐ์ดํฐ ์๊ฐํ (์๋ ํด๋ผ์ฐ๋)
โ ์ด๋ฒ ์ฃผ์ ํ๋ก ํธ์๋ ํต์ฌ๊ธฐ๋ฅ
-
ํค์๋ ์ ๋ ฅ์ ํค์๋ ์๋์์ฑ
โ ๊ผญ ๊ฒ์์ฐฝ์ผ๋ก ์๋์๋๋จ
-
ํค์๋ ์ ๋ ฅ์ ํค์๋ ์ถ์ฒ
โ ๊ผญ ๊ฒ์์ฐฝ์ผ๋ก ์๋์๋๋จ
-
์ฐธ์ฌ์์ ํค์๋ ๋ชฉ๋ก UI ๊ตฌํ (๋ด๊ฐ ๊ฐ์ง ํค์๋๋ค)
-
ํค์๋(์๊ทธ๋ฃน) ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ
โ ์ด๋ฒ ์ฃผ์ ๋ฐฑ์๋ ํต์ฌ๊ธฐ๋ฅ
-
Username ์ ์ ์ ์ฟ ํค ๊ฐ ๋๊ฒจ์ฃผ๊ธฐ
-
User ๋ก๊ทธ์ธ ํ์ธ API
-
ํค์๋(์๊ทธ๋ฃน) ์์ฑ API
-
ํค์๋(์๊ทธ๋ฃน)์ ์ ์ ์ง์ ์, ํค์๋(์๊ทธ๋ฃน) ์ฐธ์ฌ์ ์ ๊ฐฑ์
โ ์ฐธ์ฌ์ ์๊ฐ ์์ด์ผ ์ด๊ธฐ ์๋ ํด๋ผ์ฐ๋๊ฐ ๊ฐ๋ฅํด์ฉ
## ํ ์คํธ ๋ชฉ์ ๊ณผ ์ํฉ
- ์๋ฒ ํต์ ์ ํตํ ๋ฐ์ดํฐ ์ ๊ณต๊ณผ ์๊ฐํ๊ฐ ์ ๋๋ก ๋๋๊ฐ?
- ๋ฌผ๋ฆฌ์์ง ๋ฐฐ์น ๊ณ์ฐ๊ธฐ ๊ตฌํ ๋๋๊ฐ.
- ์์ผ API ์๋ฒ โ REST API ์๋ฒ๋ก ์ด๋
- ๋ถ์คํธ์บ ํ ์บ ํผ๋ค์๊ฒ ์ ๊ณต
- ์ค์ ํค์๋ ๋ฐ์ดํฐ (๋ฏธ๋ฆฌ ๋ฃ์ด๋๋)
- OAuth ๋ก๊ทธ์ธ ๊ตฌํ
- ํค์๋ CRUD
- ๋ฐ์ดํฐ ์๊ฐํ
- short polling์ ํตํ ์ค์๊ฐ ํต์ ๊ตฌํ
- (์ฐ์ ์์ ํ) ์ค๋ ๋ CRUD์ UI
- ๋ฐ๋ชจ ์ฌ์ดํธ MVP๋ฅผ ์บ ํผ๋ค์ด ์ด์ฉ์ด ํ ์ ์๋ค.
- ์๋ฒ ํต์ ์ด ํฌํจ๋๋ค.
- ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๋ค.
- short polling์ ํตํด ์ค์๊ฐ ํต์ ์ด ๊ฐ๋ฅํ๋ค.
โ ์กฐ๊ธ ๋ ํฐ ๋ชฉํ๋ฅผ ์ก๊ณ ์ธ์ธํ ๊ฑด ์ดํ์ ์ก์์ด์ผํ๊ตฌ๋๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
- ๋ฌผ๋ฆฌ์์ง ๋ง๋ฌด๋ฆฌ
- short polling์ ํตํ ์๋ฒ ํต์
- ๋ก๊ทธ์ธ์ ์ํ ์ฒ๋ฆฌ
- ์ค๋ ๋ UI ๊ตฌํ (์์ผ๊ฑฐ๋ฆฌ)
โ ๊ฐ ๋๋ฉ์ธ๊ณผ ๊ตฌํ ๋จ๊ณ๋ณ๋ก ๋ช ๊ณต์(MD)์ธ์ง ๋ฝ์๋ณด๊ธฐ
- REST API ์ ์ฒด
- ๊ฐ ๋๋ฉ์ธ๋ณ CRUD
- OAuth
- (์ด๋ ค์ด ๊ฒ) ํค์๋ ๋ณต์ ๊ฐ์ ๋ณํฉ๊ณผ ์ญ์
โ ๊ฐ ๋๋ฉ์ธ๊ณผ ๊ตฌํ ๋จ๊ณ๋ณ๋ก ๋ช ๊ณต์(MD)์ธ์ง ๋ฝ์๋ณด๊ธฐ
- ์ด์ ์ฐ๋ฆฌ์๊ฒ ๋ฌผ๋ฌ์ค ๊ณณ์ ์๋ค.
- ์บ ํผ๋ถ๋ค๊ป ์ง์ง๋ก ๋ฐฐํฌํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ผํ๋ค.
- jennifer front ์ ๋ ฅ ํ์ธ
-
ํค์๋ ๋ฐ์ดํฐ ์ข ์ ์ฌํ๊ฒ๋ผ๋ ์์ ํ๊ธฐ
โ ๋ฃ๊ณ ์ถ์ ํค์๋ 10๊ฐ ์ฉ ๊ฐ์ ธ์ค๊ธฐ
- ์ปค๋ฎค๋ํฐ ์ ์ฅ ๊ตฌํ (ํค์๋ ์ ๋ ฅ ๋ชจ๋ฌ)
- ํค์๋ ์ถ๊ฐ / ํํด ๊ฐ๋ฅ - ์๋์์ฑ ํฌํจ ์์ฑ
- ํค์๋ ์ถ์ฒ ์์ฑ
- ํค์๋ ๋ฐ์ดํฐ ์๊ฐํ ์์ฑ
- ์ค๋ ๋ ์ถ๊ฐ / ์ญ์ ๊ฐ๋ฅ
- ์ค๋ ๋ ๋๊ธ ์ถ๊ฐ / ์ญ์ ๊ฐ๋ฅ
- ์๋ฒ ์ฃฝ์ผ๋ฉด ์๋ ๋ณต๊ตฌ ๋ฐ ์๋ฌ ๋ก๊ทธ
- ๋ฐฐํฌ์ฉ DB ๋ถ๋ฆฌ
- ์บ ํผ๋ค์ด ์ฐ๋ฆฌ์ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋ค.
- ์ดํ ์ฌ๊ธฐ์์ ๋์จ ๋ฐ์ดํฐ๋ฅผ ์์งํ ์ ์๋ค.
- ์ด๋ฒ์ฃผ ๋ฐํ J069_๋ฌธ์ฑํ โ ํ๋ก์ ํธ ์๊ฐ + ํ์ฌ๊น์ง์ ์งํ์ํฉ ๊ณต์
- ์ฌ์ฉํ๋๋ก ์ ๋ํ๊ธฐ (jennifer front?)
- ๋ณํ๋ ํค์๋ ์๊ฐํ ๋ณด์ฌ์ฃผ๊ธฐ
- ์ต์ข ๋ฐํ J022_๊น๊ด๊ฒฝ โ ์ ์ฒด ๋ฐ๋ชจ + ํ ์คํธ ๊ฒฐ๊ณผ๊น์ง
-
์ด๋ ฅ์
-
ํ๋ก์ ํธ ์๊ฐ ๊ธฐ์ ์คํ ์ ์ ์ด์ ๋ณด์
-
ํ๋ก์ ํธ ์๊ฐ ํธ๋ฌ๋ธ ์ํ ์ํฐํด ์์ฑ
โ ์ดํ ๋ชฉ์์ผ์ ํธ๋ฌ๋ธ ์ํ ์ณ๋ด๊ธฐ
- https ์ค์ ํ๊ธฐ
- ๋คํฌ๋ชจ๋ ํด์ ํ๊ธฐ โ ํธ๋ฌ๋ธ ์ํ
- resize ์ด๋ฒคํธ ํธ๋ค๋ฌ
- ๋ก๋ฉ ์ปดํฌ๋ํธ ๊ตฌํ
- ๊ด๋ฆฌ์ ํ์ด์ง
- ํค์๋ ๋ณํฉ
- ํค์๋ ์ญ์
- ์ปค๋ฎค๋ํฐ ํ์ด์ง
- ํค์๋ ๊ทธ๋ฃน ์ ์ฅ API ์ฐ๊ฒฐ
- ํค์๋ ๊ทธ๋ฃน ํํด API ์ฐ๊ฒฐ
- ํ์๊ฐ์ ์ ์ปค๋ฎค๋ํฐ 1๋ฒ์ผ๋ก ๊ฐ์ ๋๋๋ก, ์์ ์ดฌ์์๋ 2๋ฒ ์ปค๋ฎค๋ํฐ๋ฅผ ์ด๋ค.
- ์ด๊ธฐ ๋ก๊ทธ์ธ์ ๋ฐ๋ผ ์ด๊ธฐ ์ ๋ ฅ ๋ชจ๋ฌ์ฐฝ ๋์์ฃผ๊ธฐ
- ๋์ ํค์๋, ์ถ์ฒ ํค์๋ ์ํ ๊ด๋ฆฌ (์๋ฒ ์ํ๋ก ๊ด๋ฆฌ ํ์)
- ์ค๋ ๋ ํ์ด์ง
- ์ ์ ๋ก๊ทธ์ธ ์ํ API ์ฐ๊ฒฐ
- ์ค๋ ๋ + ๋๊ธ ๋ชฉ๋ก ์ฝ๊ธฐ API ์ฐ๊ฒฐ
- ์ค๋ ๋ ์ฐ๊ธฐ API ์ฐ๊ฒฐ
- ์ค๋ ๋ ์ญ์ API ์ฐ๊ฒฐ
- ๋๊ธ ์ฐ๊ธฐ API ์ฐ๊ฒฐ
- ๋๊ธ ์ญ์ API ์ฐ๊ฒฐ
- ์ฃผ๋ง ์์ ์ฌํญ ๋ฐฐํฌ (API ์ต์ ํ)
- ํ
์คํธ ์ฝ๋ ์์ฑ ๋ฐ ๋ฆฌํฉํ ๋ง
- ์์ธ์ฒ๋ฆฌ / ๋ฐํ๊ฐ ์์
- API ๋ณ ์ฑ๋ฅ ์ธก์ ๋ฐ ํ๋
- ๊ฐ ์ฟผ๋ฆฌ๋ฌธ explain๊ณผ index
- ๊ฐ API ์ ๊ฒ (์ฝ๋ ์คํ์ผ๋ง)
- RESTful URL
- ๋ณ์๋ช / ํจ์๋ช ์์
- ๋ ํฌ์งํ ๋ฆฌ ๋ ์ด์ด, JPA๋ก ๋ง์ด๊ทธ๋ ์ด์
-
ํค์๋ ๋ณํฉ / ์ญ์ ๋ง PR
-
ํค์๋ ๋ฐ์ดํฐ ์ข ์ ์ฌํ๊ฒ๋ผ๋ ์์ ํ๊ธฐ
โ ๋ฃ๊ณ ์ถ์ ํค์๋ 10๊ฐ ์ฉ
-
ํค์๋ ์ถ์ฒ API ๊ณ ๋ํ์์
- ์ด์์ฉ DB ๋์ฐ๊ธฐ + J069_๋ฌธ์ฑํ
- ์๋ฒ ์ฑ๋ฅ ์ธก์ ์คํฌ๋ฆฝํธ ์์ฑ
- ๋๋ฏธ๋ฐ์ดํฐ ์คํฌ๋ฆฝํธ ์์
- ํ๋ก์ ํธ ์๊ฐ ๋ณด์
- ๊ณตํต ๋์ ๊ณผ์ ์์ฑ
- ์ํฐํด ๋ณด์
- ๋๋ณธ ๋ด์ฉ ์์ฑ
- ์ค๋ ๋ ์๋น์ค ๋ ์ด์ด ํ ์คํธ ์ฝ๋ ์์ฑ
- ํด๋ ๊ตฌ์กฐ ๊ฐ์
- ์์ธ์ํฉ์ฒ๋ฆฌ ๋ก์ง ๋ถ๋ฆฌ
- ์ปค์คํ ์๋ฌ
- ๋ฉ์ธ ์ฝ๋ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ
- Thread, Keyword API ๋๋ฉ์ธ ๋ณ ๋ถ๋ฆฌ
- Thread, Keyword Query ๊ด๋ จ ํ ๋๋ฉ์ธ ๋ณ ๋ถ๋ฆฌ
- ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ํตํ ๋ฒ๊ทธ ํด๊ฒฐ
- ์ค๋ ๋ ์ ์ ๋ชฉ๋ก ์ ๋ชฉ ๋ฐ๋์ง ์๋ ํ์ ํด๊ฒฐ
- ์ปค๋ฎค๋ํฐ ํ์ด์ง ์ ์์ ์ต๊ทผ ์ ์ ๊ธฐ๋ก ๊ฐฑ์ ๋์ง ์๋ ํ์ ํด๊ฒฐ
- ์ ์ ๋ชฉ๋ก ์ ์ ์ค ์ ์ ๋จผ์ ๋ณด์ด์ง ์๋ ํ์ ํด๊ฒฐ
- ํค์๋ ์ ์ฅํ๊ธฐ ํ์ ๋ชจ๋ฌ์ด ๋ซํ์ง ์๋ ํ์ ํด๊ฒฐ
- ๋ก๊ทธ์ธ ์๋ ์ํ์์ ๋ฉ์ธ ํ์ด์ง ์ด๋ ์ ๋ฌดํ ๋ก๋ฉ ํ์ ํด๊ฒฐ
- ๋ชจ๋ฌ ํด๋ฆญ ์ ๋ชจ๋ฌ์ด ์ด๋ํ๋ ํ์ ํด๊ฒฐ
- parallax ๊ตฌํ
- ๊ฒ๋ํ์ด์์ ๊ธฐ์ ๊ณต์ ํ๋ฏ์ด
- ํ๋ฉด ๊ณต์ ์๋ฃ โ PPT (๋ถ์บ ํ ํ๋ฆฟ)
- ์ค๊ฐ๋ ์ฅ๋ฉด๊น์ง ๋ นํํ๊ณ ํธ์งํ๊ธฐ
-
ํ๋ก์ ํธ ์๊ฐ : ์ค๊ท๋ชจ ์ปค๋ฎค๋ํฐ ์๊ทธ๋ฃน ๊ด๋ฆฌ ์๋น์ค, ๊ฐ๋จํ ๊ธฐ๋ฅ ์๊ฐ.
โ ๊ธฐํ๊ณผ์ ๋ณด๋ค๋ ๋ญ ํ๋ ์๋น์ค์ธ์ง๊น์ง๋ง
โ ์ค์๊ฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ์ดํฐ ์๊ฐํ์ ์ฑ๋ฅ ๊ฐ์
-
๊ณตํต ๋์ ๊ณผ์ : ํ์ตํ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ง์๊ฐ๋ฅํ ๊ฐ๋ฐ์๋ก์ ์ฑ์ฅ์ ํ์ธํ๊ธฐ ์ํด, ์ฐ๋ฆฌ๋ง์ ๊ธฐ์ ์ ์ธ ๋์ ์ ๊ฒฐ์ ํด์ ๋์ ํ์์.
- ํ๋ก ํธ์๋ ๋์ ์ ๋ํ ์๊ฐ (30์ด)
- ์ง์ ๋ง๋ค์ด๋ณด๊ธฐ
- ์ฑ๋ฅ ๊ฐ์
- ๊ฐ๊ฐ์ ๊ณผ์
-
๋ฌผ๋ฆฌ์์ง ์ ์๊ธฐ
- Why? : ๋ฐ์ดํฐ ์๊ฐํ๋ ์๋น์ค์ ํต์ฌ๊ธฐ๋ฅ์ด๋ฏ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ด ์ ๋งคํ๋ค.
- What? : ์๋๋ ์ ์ ์ธ ๋ฐฐ์น โ ๋์ ์ธ ๋ฐฐ์น๋ฅผ ์ํด ๋ฌผ๋ฆฌ์์ง
- How? : ๋ฌผ๋ฆฌ๋ฅผ ๋ชจ๋ธ๋งํ์ฌ ๋ฌผ๋ฆฌ์์ง ๊ตฌํ
- Result : ์ฑ๋ฅ ๊ฐ์ ๋ ๋ด์ฉ (ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ)
-
์์นํ ํ ์ ์๋ ์ฑ๋ฅ ๊ฐ์
- ๋ฐ์ดํฐ ์ค์ฌ
-
์์นํ ํ ์ ์๋ ์ฑ๋ฅ ๊ฐ์
ํ๋ก ํธ์๋์ ๋๋ฒ์งธ ๋์ ์ ์์นํ ํ ์ ์๋ ์ฑ๋ฅ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ฒ ์ด์์ต๋๋ค.
- ์์นํ ํ ์ ์๋ ์ฑ๋ฅ ๊ฐ์ ์ ๋ชฉํ๋ก ํ ์ด์ ?
- ๋ํ์ ์ฌ๋ก๊ฐ ๋ ์ ์๋ค ํ์ง๋ง ๋๋ฌด ๊ตฌ์ฒด์ ์ธ ์ฌ๋ก๊ฐ ์์ผ๋ก ๋์ค๋ ๋๋
์ฒซ๋ฒ์งธ ์์๋ก ํค์๋ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ์๊ณ ๋ฆฌ์ฆ ์ต์ ํ๊ฐ ์์ต๋๋ค.
์ ํฌ๋ ์๊ทธ๋ฃน์ด ๋น์ทํ ์ด๋ฆ์ผ๋ก ์ฌ๋ฌ๊ฐ๊ฐ ์์ฑ๋๋ฉด์ ์ฌ์ฉ์๊ฐ ๋ถ์ฐ๋๋ ์ํฉ์ ๋ฌธ์ ๋ก ์ผ๊ณ , ๊ฒ์์ด ์๋ ์์ฑ์ ๊ฐ๋ฐํ์์ต๋๋ค.
์ฒ์์๋ ๋จ์ํ ์ ๊ท ํํ์์ ํตํด์ ๊ฒ์์ด๊ฐ ๋ฐ๋ ๋๋ง๋ค ๋ชจ๋ ํค์๋๋ฅผ ํ์ํ๊ณ ์ ํ์์ผ๋ ์ด ๊ณผ์ ์์ ์ปค๋ฎค๋ํฐ์ ํค์๋๊ฐ ๋ง์ ๊ฒฝ์ฐ ํฐ ๋ถํ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
(๋ฌด์์ ํตํด์ ์๊ฒ๋์๋์ง๊ฐ ๊ฐ์กฐ๋๋ฉด ๋ ์ข๊ฒ ๋ค.)
๊ทธ๋์ ์ ํฌ๋ ํจ์จ์ ์ธ ํ์ ์๊ฐ์ ์ํด ์ ๊ทํํ์, ์ด์ง ํ์, ํธ๋ผ์ด๋ฅผ ํตํ ๋ฐฉ๋ฒ ๋ฑ์ ์กฐ์ฌํ์๊ณ ,
๊ฒฐ๊ณผ์ ์ผ๋ก ์ฌ์ ์์ฑ ์๊ฐ์ด ์๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฐจ์งํ๋ ๋จ์ ์ด ์์ง๋ง, ์ปค๋ฎค๋ํฐ ์ ์ ์ ํ๋ฒ๋ง ์์ฑํ๋ฉด ๋๊ณ , ํ์์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ ๊ฒ์ ์์ง ํน์ฑ์ ํธ๋ผ์ด๊ฐ ๊ฐ์ฅ ํจ์จ์ ์ด๋ผ๋ ๊ฒฐ๋ก ์ ํตํด ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ ์์ ํ์๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ก ํ์์ ์๊ฐ ๋ณต์ก๋๋ฅผ O(N * M)์์ O(M) ๊น์ง ๋ฎ์ถ๋ ๊ฒ์ ์ฑ๊ณตํ์์ต๋๋ค.
- ์์ ์ ์กฐ๊ธ ๋ ํฌ๊ด์ ์ธ ๋ด์ฉ์ธ lighthouse๊ฐ ๋จผ์ ๋์ค๋ฉด ์ด๋จ์ง
๋ค๋ฅธ ์์๋ก ์ ํฌ ํ์ lighthouse์ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ฑ๋ฅ ์งํ๋ฅผ ํตํด์ ์น ํ์ด์ง์ ์ฑ๋ฅ์ ์ธก์ ํ์๊ณ ,
- ์ ๊ธฐ์ค์ผ๋ก ์ผ์๋์ง ์ถ๊ฐ
์์ ๋ง์๋๋ฆฐ ๋ฐ์ดํฐ ์๊ฐํ์์์ ๊ฐ์ ๊ณผ SSR, SSG์ ํตํ ์ฝ๋ ์คํ๋ฆฌํ , ๋ชจ๋ฌ ๋ฑ์ ์กฐ๊ฑด๋ถ๋ก ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ์ ๋ํ ๋ ์ด์ง ๋ก๋ฉ ์ ์ฉ ๋ฑ์ ํตํด์ ํผํฌ๋จผ์ค ์ ์๋ฅผ 60์ ์์ 95์ ๊น์ง ์์น์์ผฐ์ผ๋ฉฐ,
๊ทธ ์ธ์๋ ์ ๋๋น์จ, HTML Language ์ค์ ๋ฑ์ ํตํด ์ ๊ทผ์ฑ์ ๊ฐ์ ํ๊ณ ,
Meta tag๊ณผ Robot.txt ๋ฑ์ ํตํด์ SEO ๋ํ ๊ฐ์ ํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ๋ ๊ฒฐ๊ณผ๋ฌผ์ ์์น์ ์ผ๋ก ์ป์ ์ ์์์ต๋๋ค.
- lighthouse์์ ์์น๋ณด๋ค ๊ณผ์ ์ ๋ ๊ฐ์กฐํ๋๋ก ๋ณ๊ฒฝ
- ์์์ผ ์์ ๋ณด๊ณ ํ ์คํธ ์ฝ๋ ๋ฃ์์ง ๊ฒฐ์
- ํ ์คํธ ์ฝ๋๋ฅผ ๋ฃ๋๋ค๋ฉด ๋ ๊ฐ๋ตํ๊ฒ
-
-
๋ฐฑ์๋ ๋์ ์ ๋ํ ์๊ฐ (30์ด)
- ๊ผญ ์๋ก์ด๊ฑธ ํด์ผ๋ผ? ๊ธฐ๋ณธ์ ์ง์คํด๋ณด๋ ๋์ !(+ ๋ฐฐ์ด๊ฑฐ์ ๋ํ ์ ์ฉ)
- ๋ถ์บ ๊ณผ์ ์์ โํ์ต ํ๋ ๋ฐฉ๋ฒโ์ ํฌ๊ฒ ๋ฐฐ์ ๋ค๊ณ ์๊ฐํด, ์๋ก์ด ์ธ์ด์ ํ๋ ์์ํฌ์ ๋์ ํด๋ณด๊ณ ์ถ์์. (์ง์๊ฐ๋ฅํ ๋ฐ์ ?)
- JAVA/SPRING ์ ํ ์ด์ ์๋ ํด๋น ๋ ๊ฒ ๊ฐ์
- ๊ผญ ์๋ก์ด๊ฑธ ํด์ผ๋ผ? ๊ธฐ๋ณธ์ ์ง์คํด๋ณด๋ ๋์ !(+ ๋ฐฐ์ด๊ฑฐ์ ๋ํ ์ ์ฉ)
-
๊ฐ๊ฐ์ ๊ณผ์
- ์น์์ผ ๋ฐ ์ธํ๋ผ (2๋ถ)
- ์ฐ๋ฆฌ๊ฐ ๊ฒช์๋ ๊ณผ์ ๊ณผ ๊ฒฐ๋ก
- ์ป์์ : โstatelessํ HTTP ์๋ฒ์ ๊ฐ๋ ฅํจ์ ์ดํดํ๊ฒ ๋์์โ, โ์ค์๊ฐ์ ์น์์ผ๊ณผ ๋์์ด๊ฐ ์๋์ ์๊ฒ ๋จโ
- โpolling vs sse vs websocketโ ๋ถ์ ๋ฐ ๋น๊ตํ ์ ํํ์์
- *ํ
์คํธ ์ฝ๋ ๋ฐ ๋ฆฌํฉํ ๋ง (2๋ถ)
- ์๋ชป๋์ค๊ณ?(TDD์ ํจ์ฉ)
- ์๋น์ค๋ ์ด์ด ๋ฉ์๋ ๋จ์ ํ ์คํธ๋ฅผ ๊ตฌ์ฑํ๊ณ ์ ์๋
- ์ปจํธ๋กค๋ฌ์ ๋๋ฌด ๋ง์ ๊ด์ฌ์ฌ
- ์ปจํธ๋กค๋ฌ์ ๊ด์ฌ์ฌ๋ฅผ ์๋น์ค๋ก ๋ด๋ฆฌ๋ ค๋ค ๋ณด๋, ์๋ฌ ํธ๋ค๋ง์ ๋ํ ๊ตฌ์กฐ๋ ์๊ฐํ๊ฒ ๋จ
- ์ ์ญ ์๋ฌ ํธ๋ค๋ง ๊ตฌ์กฐ์ ๋ํด ์ ์ฉ
- ํ ์คํธ ์ฝ๋๋ฅผ ๊ตฌ์ฑํด ๋์๋๋, ๊ธฐ๋ฅ ์์ ๋ฐ ํ์ฅ๊ณผ ๋ฆฌํฉํ ๋ง ์งํ์ ์์ด ํจ์ฉ์ ๋๋ ์ ์์๋ค.
- ์๋ชป๋์ค๊ณ?(TDD์ ํจ์ฉ)
- ๋ชฉ ๋ฐ์ดํฐ & ์คํธ๋ ์ค ํ
์คํธ (1๋ถ)
- dryํ ๊ณผ์ ์์
- ํ ์คํธ ์ดํ ๊ฐ์ ๊ณผ์
(*์ ๊ฐ๊ฐ์ ํญ๋ชฉ์ ์์ด์ ๋ถ์คํธ์บ ํ ์ฑ๋ฆฐ์ง/๋ฉค๋ฒ์ญ ๋ด์ฉ๊ณผ์ ์ฐ๊ณ๋ฅผ ์ ํด๋ณด๋๋ก)
- ์น์์ผ ๋ฐ ์ธํ๋ผ (2๋ถ)
-
์๋๋ฆฌ์ค๋๋ก ์ฐ๋๊ฒ ์ด๋ ค์ธ ๊ฒ ๊ฐ์ โ ๋ฌด์กฐ๊ฑด 1๋ถ์ด ๋์
-
์ํ ์ดํฌ๋ก ์ดฌ์ํ๊ธฐ
โ (์คํฌ๋กค ์ ๋๋ฉ์ด์ ์ ์๊ฐ ๋ณด๊ณ ๋นผ๊ธฐ)
โ ์ปค๋ฎค๋ํฐ ๊ด๋ฆฌ ํ์ด์ง vs ์คํฌ๋กค ์ ๋๋ฉ์ด์
- ๊ฐ ํํธ๋ณ๋ก ๋ ๋ฆฌ๊ธฐ
- ์์ง ์์ฑ๋์ง ์๋ ๋ด์ฉ์ ์ผ๋จ ์ญ์ ํ๊ณ , ์์ฑ์ด ๋๋๋ฉด ์ถ๊ฐํ๊ธฐ
- ๊ธฐ์ ๋์ ๊ณผ์ ๋ณ๊ฒฝ๋จ
- ์ค๋๊น์ง ์จ์ฃผ์ธ์.
- type ํด๋ ๋ถ๋ฆฌ
- type ์ญํ ์ ๋ฐ๋ผ ๋ชจ๋ ๋ถ๋ฆฌ ์์
- hook ํด๋ ๋ถ๋ฆฌ
- Query ๊ด๋ จ Hook ๋๋ฉ์ธ ๋ณ๋ก ๋๋ ํ ๋ฆฌ ๋ถ๋ฆฌ
- Keyword, Thread๊น์ง๋ง ์๋ฃ - ๋๋จธ์ง ๋๋ฉ์ธ์ ๋๋๋งํผ ์์ด ๋ง์ง ์์
- API ํด๋ ๋ถ๋ฆฌ
- API ํธ์ถ ํจ์ ๋๋ฉ์ธ ๋ณ๋ก ๋๋ ํ ๋ฆฌ ๋ถ๋ฆฌ
- ์์ ๋์ผ
- test ํด๋
- ํ ์คํธ ํ์ผ์ ์ํ ๊ตฌ์กฐ ๋ ผ์
- ์ปดํฌ๋ํธ ํด๋ ๋ถ๋ฆฌ
- sass ๊ณตํต ํ์ผ ๋ถ๋ฆฌ
- ๋๋ฉ์ธ ํตํํฉ
- ๋๋ฉ์ธ ๋ณ ํด๋ ๊ตฌ์ฑ
- ์์ธ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ณ์ธต ์ถ๊ฐ
- controller ๊ณ์ธต๊ณผ service ๊ณ์ธต์ ์๋ ์์์ํฉ์ฒ๋ฆฌ๋ถ๋ถ ๋ถ๋ฆฌ
- ๊ณ์ธต๋ณ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ
- Trie ๊ฒ์์์ง ํ ์คํธ์ฝ๋ ์์ฑ ๋ฐ ๋ณด์
- ๋ฌผ๋ฆฌ์์ง ํ ์คํธ์ฝ๋ ์์ฑ
- ๋ฌผ๋ฆฌ์์ง ๋ณ๊ฒฝ์ด ์ผ์ด๋ฌ์ ๋, ์ ์์๋์ ํ์ธํ์ฌ ์์ฐ์ฑ์ ๋์ด๊ธฐ ์ํจ.
- ์์ ์ ์ธ ๋์์ ๋ณด์ฅํ๊ธฐ ์ํจ.
- utils ๋ด๋ถ์ ํจ์๋ค
- ๊ณ์ธต๋ณ, ๋จ์ ํ ์คํธ ์ฝ๋ ์์ฑ
- Mock Framework์ธ mockito๋ฅผ ํตํด ๊ณ์ธต๋ณ ๋จ์ํ ์คํธ ๊ตฌ์ฑ
- ๋ฉ์ธ ์ฝ๋์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ ์ฝ๋ ํ์ง ๋ณด์
- API์ ๋์ ์์ ์ฑ์ ๋ณด์ฅํ์ฌ ๋ฆฌํฉํ ๋ง๊ณผ ์ฝ๋ ์์ ์ ์์ด์ ์์ฐ์ฑ์ ๋์ธ๋ค.
- controller, service, repository
- ํ ์คํธ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ๋์ด๊ธฐ
- ๋ถํํ ์คํธ ์คํฌ๋ฆฝํธ ์์ฑ ๋ฐ ์ฑ๋ฅ ๊ฐ์
- ์ปค์คํ ํ ์ผ๋ก ๋ฐ๋ณต๋ก์ง ๋ถ๋ฆฌ
- sass mixin, animation ๋ฑ ๊ณตํต ํ์ผ ๋ถ๋ฆฌ
- ์์ด์ฝ๋ค ํ๋๋ก ํต์ผ (React Icons)
- ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ ์ ๋ฆฌ
- ์ปดํฌ๋ํธ ๋จ์ผ์ฑ ์์์น์ ๋ง๊ฒ ์ชผ๊ฐ๊ธฐ
- constants ํด๋ ์์ ๊ธฐ
- DB JPQL + JPA โ QueryDSL + Spring Data JPA๋ก ๋ฆฌํฉํ ๋ง
- Optional, ํจ์ํ ๋ฌธ๋ฒ, ๋๋ค๋ฅผ ์ฌ์ฉํ์ฌ ํจ์ํ ์ฝ๋๋ก ๋ณ๊ฒฝ
- ํ ์คํธ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ๋์ด๊ธฐ
- import ์์์ ๊ฐ์ ์ปจ๋ฒค์ ์ค์
- ๋ฎคํ ์ด์ ํ์ฒ๋ฆฌ ํจ์ ์์ฑ
- Next 13 ๊ธฐ์ค์ผ๋ก ๋ฌธ๋ฒ ์์ ๊ณ ๋ฏผํด๋ณด๊ธฐ
- ์ฃผ์ ๋ฌ๊ธฐ
- ๋ณ์๋ช , ํจ์๋ช ๊ฐ์ ์ํค๊ธฐ
- HumanLint ์ฌ์ฉ
- ํ ์คํธ ์ฝ๋ ์์ฑํ๋ฉฐ ์ฝ๋ ํ์ง ๊ฐ์ ํ๊ธฐ
- ์ค๋ ๋ ์ ์ ๋ชฉ๋ก ์ ๋ชฉ ๋ฐ๋์ง ์๋ ํ์ ํด๊ฒฐ
- ์ปค๋ฎค๋ํฐ ํ์ด์ง ์ ์์ ์ต๊ทผ ์ ์ ๊ธฐ๋ก ๊ฐฑ์ ๋์ง ์๋ ํ์ ํด๊ฒฐ
- ์ ์ ๋ชฉ๋ก ์ ์ ์ค ์ ์ ๋จผ์ ๋ณด์ด์ง ์๋ ํ์ ํด๊ฒฐ
- ํค์๋ ์ ์ฅํ๊ธฐ ํ์ ๋ชจ๋ฌ์ด ๋ซํ์ง ์๋ ํ์ ํด๊ฒฐ
- ๋ก๊ทธ์ธ ์๋ ์ํ์์ ๋ฉ์ธ ํ์ด์ง ์ด๋ ์ ๋ฌดํ ๋ก๋ฉ ํ์ ํด๊ฒฐ
- ๋ชจ๋ฌ ํด๋ฆญ ์ ๋ชจ๋ฌ์ด ์ด๋ํ๋ ํ์ ํด๊ฒฐ
- ๋๊ธ ๊ฐฏ์ ๋ณด์ฌ์ฃผ๊ธฐ
- ์์ธ์ฒ๋ฆฌ
- input
- axios ์๋ต ์์ธ์ฒ๋ฆฌ
- ๋ฒ๋ธ ์ฐจํธ ์ถฉ๋, ๊ฐ์ ๊ฐ์
- ๋จ์ผ ์ค๋ ๋ API
- ์ค๋ ๋ ์ถ๊ฐ ์, ์ถ๊ฐ๋ ์ค๋ ๋๊ฐ ๋ฐํ๋๋๋ก
- PPT์ ๋๋ณธ ๋ง๋ค๊ธฐ
- ์ํฐํด ์์ฑํ๊ธฐ