- ์งํ ๊ธฐ๊ฐย :ย 2022.07.11 ~ 2022.08.19(6์ฃผ)
- ํ ์ค ์๊ฐ : ๋ฉด์ ์คํฐ๋ + AI ๋ฉด์ ๋ถ์
- ์๋น์ค ๋ช :ย urin
์ทจ์ ์ ์ค๋นํ๋ ์ฌ๋๋ค์ ๋ฉด์ ์ญ๋์ ๊ฐ์ฅ ์ค์ํ๊ฒ ์๊ฐํ๋ค. ๋ฉด์ ์คํฐ๋์ ๋ํ ๊ด์ฌ๋ ๋งค์ฐ ๋์ง๋ง, ์คํฐ๋๋ฅผ ๊ตฌํ ๋ง๋ ํ ๋ฐฉ๋ฒ์ด ์๋ค. ๋ฐ๋ผ์ ๋ฉด์ ์คํฐ๋์ ๋ํ ๋์ ์์๋ฅผ ์ํํ๊ฒ ํด๊ฒฐํ๊ณ ์ ์ ํ ๋ฉด์ ์คํฐ๋๋ฅผ ์งํ ํ ์ ์๋ ๋ฉด์ ์คํฐ๋ ํ๋ซํผ์ ์ ๊ณตํด์ฃผ๋ ์๋น์ค๋ฅผ ๊ธฐํํ๊ฒ ๋์๋ค.
๋ฉด์ ์คํฐ๋๋ฅผ ์งํํ ๋ ๋ง๋ค ๊ฐ์ ์คํฐ๋์์ ํผ๋๋ฐฑ ๋ฟ๋ง ์๋๋ผ AI์ ํผ๋๋ฐฑ์ ๋ ํฌํธ๋ก ์ ๊ณต ๋ฐ์ ๋์ ํ์ฌ ๋ฉด์ ์ญ๋์ ํ์ ๋ฐ ๊ฐ์ ํ ์ ์๋ค.
- ๋ฉด์ ์ ๋๋นํ๊ณ ์ถ์ ์ทจ์ ์ค๋น์
- ๋ฉด์ ์ ํ ํ๋ฝ์ ์์ธ ํ์ ์ด ํ๋ ์ฌ๋
- ์นด์นด์ค ๋ก๊ทธ์ธ
- ์คํฐ๋ ์ ๋ชฉ & ํด์ํ๊ทธ ๊ฒ์
- ํ์๋ฏธํ ์ 2๊ฐ์ง ๋ชจ๋๊ฐ ์กด์ฌ (์ผ๋ฐ, ๋ฉด์ ๋ชจ๋)
- ๋ฉด์ ๋ชจ๋๋ ๋ฉด์ ์ ์ํ ๊ธฐ๋ฅ์ด ์กด์ฌํ๋ค. ๋ฉด์ ์๋ฅผ ํ ๋ช
์ ํ ๊ฐ๋ฅ
- ๋ฉด์ ์์ ๋ฒํผ์ ๋๋ฅด๋ฉด ํ์ด๋จธ๋ก ๋ฉด์ ์งํ ์๊ฐ ํ์ ๊ฐ๋ฅ
- ์ถ๊ฐ๋ก AI๊ฐ ๋ฉด์ ์์ ํ์ & ์์ธ๋ฅผ ๋ถ์
- ๋ฉด์ ์งํํ๋ฉฐ ํ๊ฐ์ ์ญํ ์ ๋งก์ ์ฌ๋๋ค์ ํผ๋๋ฐฑ์ ์์ฑ ๊ฐ๋ฅ
- ๋ฉด์ ๋ชจ๋์์ ๋ฉด์ ์์ ํ์ & ์์ธ๋ฅผ AI๊ฐ ๋ถ์ํ ๊ฒฐ๊ณผ์ ํ๊ฐ์๋ค์ด ์์ฑํ ํผ๋๋ฐฑ๋ค์ Report์์ ํ ๋์ ๋ณผ ์ ์๋ค.
prettier์ eslint๋ก ์ฝ๋ ์คํ์ผ ํต์ผ(Airbnb style)
redux, reduxjs/toolkit, react-router-dom v6 ์ฌ์ฉ
- OpenVidu
OpenVidu is a platform to facilitate the addition of video calls in your web or mobile application.
WebRTC๋ฅผ ๋ณด๋ค ๊ฐ๋จํ๊ฒ ์ ์ฉํ ์ ์๊ณ , ๋ค์ํ ํ๋ ์์ํฌ์ ํธํ์ฑ์ด ๋์ openvidu๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ์ต๋๋ค. openvidu tutorial์ openvidu-call-react์ ์์ค ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ํ์๋ฅผ ๊ตฌํํ์์ต๋๋ค
- face-api
JavaScript face recognition API for the browser and nodejs implemented on top of tensorflow.js core
urinย ์์๋ย face api์ ๋ค์ํ ๊ธฐ๋ฅ ์ค Face Detectionย ์ ํตํด ์ผ๊ตด์ ๊ฐ์งํ๊ณ Face Expression Recognition์ ์ด์ฉํด ๋ฉด์ ์์ ๊ฐ์ ์ ๋ถ์ํฉ๋๋ค.
- Teachablemachine/pose
Teachable Machine์ ๋๊ตฌ๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ฝ๊ณ ๋น ๋ฅด๊ณ ๊ฐ๋จํ๊ฒ ๋ง๋ค ์ ์๋๋ก ์ ์๋ ์น ๊ธฐ๋ฐ ๋๊ตฌ์ ๋๋ค.
urin์์๋ Teachablemachine์ pose ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ๋ฉด์ ์์ ์์ธ๋ฅผ ์ธ์ํฉ๋๋ค.
- NodeJS : 16.16.0
- React : 18.2.0
- React-redux : 8.0.2
- React-router-dom : 6.3.0
- face-api.js : 0.22.0
- teachablemachine/pose : 0.8.6
- JAVA : JDK 11
- Spring Boot : 2.6.10
- MySQL : 8.0.29
- Ubuntu : 20.04 LTS
- Docker : 20.10.12
- Nginx : 1.18.0
- Jenkins : 2.346.2
git flow ์ ๋ต๊ณผ github flow ์ ๋ต ์ค git flow ์ ๋ต์ ์ฑํํ์ต๋๋ค. feature๋ธ๋์น์์ ์์
ํfronend or backend๋ธ๋์น๋ก Merge Request๋ฅผ ์์ฑํ์ต๋๋ค.
MR์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์ณ ๋ณธ์ธ์ด ์๋ ์ฌ๋์ด MR์ ์น์ธํด ์ฃผ์์ต๋๋ค. frontend์ backend์ ์์ธ commit์ ๋ฐฐํฌํ ์ค๋น๊ฐ ๋๋ฉด develop, main ๋ธ๋์น์ ๋ฐ์ํ์ต๋๋ค.
commit message๋ (gitmoji) <ํ์
> : <์ ๋ชฉ> <#์ด์๋ฒํธ> ํํ๋ก ํต์ผํ์ฌ ์์ฑํ์ต๋๋ค
# (gitmoji) <ํ์
> : <์ ๋ชฉ> <#์ด์๋ฒํธ>
##### ์ ๋ชฉ์ ์ด์ ๋ฒํธ์ ํจ๊ป ์ต๋ 50 ๊ธ์๊น์ง ํ ์ค๋ก ์
๋ ฅ ############## -> |
# ๋ณธ๋ฌธ์ ์์ ์์ฑ
######## ๋ณธ๋ฌธ์ ํ ์ค์ ์ต๋ 72 ๊ธ์๊น์ง๋ง ์
๋ ฅ ########################### -> |
# --- COMMIT END ---
# <ํ์
> ๋ฆฌ์คํธ
# โจ(:sparkles:) feat : ๊ธฐ๋ฅ (์๋ก์ด ๊ธฐ๋ฅ)
# ๐(:bug:) fix : ๋ฒ๊ทธ (๋ฒ๊ทธ ์์ )
# โป(:recycle:) refactor : ๋ฆฌํฉํ ๋ง
# ๐(:lipstick:) style : ์คํ์ผ (์ฝ๋ ํ์, ์ธ๋ฏธ์ฝ๋ก ์ถ๊ฐ: ๋น์ฆ๋์ค ๋ก์ง์ ๋ณ๊ฒฝ ์์)
# ๐(:memo:) docs : ๋ฌธ์ (๋ฌธ์ ์ถ๊ฐ, ์์ , ์ญ์ )
# โ
(:white_check_mark:) test : ํ
์คํธ (ํ
์คํธ ์ฝ๋ ์ถ๊ฐ, ์์ , ์ญ์ : ๋น์ฆ๋์ค ๋ก์ง์ ๋ณ๊ฒฝ ์์)
# ๐จ(:hammer:) chore : ๊ธฐํ ๋ณ๊ฒฝ์ฌํญ (๋น๋ ์คํฌ๋ฆฝํธ ์์ ๋ฑ)
# ------------------
# ์ ๋ชฉ์ ๋ช
๋ น๋ฌธ์ผ๋ก
# ์ ๋ชฉ ๋์ ๋ง์นจํ(.) ๊ธ์ง
# ์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ ํ ์ค ๋์ ๋ถ๋ฆฌํ๊ธฐ
# ๋ณธ๋ฌธ์ "์ด๋ป๊ฒ" ๋ณด๋ค "๋ฌด์์", "์"๋ฅผ ์ค๋ช
ํ๋ค.
# ๋ณธ๋ฌธ์ ํ ์ค์ ์์ฑํ๊ณ . ๋ง์นจํ๋ฅผ ์ฐ์ด์ ๋ถ๋ฆฌํ๋ค.
# ------------------- ๋งค ์ฃผ ์์์ผ, ์ฃผ๊ฐ ํ์๋ฅผ ํตํด ํ ์ฃผ ๊ฐ์ ๋ชฉํ๋ฅผ ์ ํ๊ณ Sprint๋ฅผ ์์ฑ
- ์ด๋ฐ์๋ ์ผ์ ์ ๋ง์ถฐ Epic ์์ฑ
- JIRA ํผ๋๋ฐฑ ์ดํ ํต์ฌ ๊ธฐ๋ฅ ๋ณ Epic์์ฑ
- ๋งค์ผ ์์นจ๋ง๋ค ์ด์ ํ๋ ์ผ, ์ค๋์ ๊ณํ์ ๊ณต์ ํ๋ Daily Scrum์ ์งํ
- ๊ฐ ํ์ ๋ด์ฉ์ Tag๋ก ๋ถ๋ฅํ ํ์๋ก์ ์์ธํ ๊ธฐ๋ก
- ์ค์ํ ์๋ฃ๋ฅผ ํ ๊ณณ์์ ๊ด๋ฆฌ
- ์์ด๋์ด ํ์ & ์ ์
- Ver1(์๋น์ค ํต์ฌ ๊ธฐ๋ฅ) ๊ธฐํ
- ERD, Wireframe, ๊ธฐ๋ฅ ์ ์์ ์์ฑ
- [FE] ์ปดํฌ๋ํธ ๊ตฌ์กฐ๋ ์์ฑ & HTML ๊ฐ๋ฐ
- [BE] CI / CD ๊ตฌ์ถ
- [BE] API ๊ฐ๋ฐ
- [FE] Redux, Axios
- [BE] ์์ ๋ก๊ทธ์ธ & API ์์ธ ์ฒ๋ฆฌ
- [BE] ์๋น์ค ๋ฐฐํฌ
- Ver2(์๋น์ค ํนํ ๊ธฐ๋ฅ) ๊ธฐํ
- [FE] OpenVidu ์ถ๊ฐ
- [FE] Face-API, Teacherable-Machine ์ถ๊ฐ
- [BE] Ver2 API ๊ฐ๋ฐ & Ver1 API ์ ์ง ๋ณด์
- Ver2 ๊ฐ๋ฐ ๋ง๋ฌด๋ฆฌ
- UCC ์ ์, ๋ฐํ ์ค๋น, ์ต์ข ํ ์คํธ
- 8/19 ์ต์ข ๋ฐํ
์๋น์ค ๋ด ๋ค์ํ ๊ณณ์์ ๋ฐฑ์๋, ํ๋ก ํธ์๋์์ ํ์
์ ๋ฐฐ์ธ ์ ์์ด์ ์ ์ตํ์ต๋๋ค. ์ฒ์์๋ ํ์
์ด ์ต์ํ์ง ์์ ์ด๊ฒ์ ๊ฒ ๋ฌธ์ ๊ฐ ์๊ธธ ๋๋ง๋ค ๋ฐ๋ก ๋ฌผ์ด๋ณด๊ณค ํ์ต๋๋ค. ํ์ง๋ง ์ ์ฐจ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ API ๋ช
์ธ์๋ ์๋ฌ ์ํฉ ์ ๋ฆฌ ๋ฑ์ ๋จผ์ ํ์ธํ๋ฉด์ ์๋ก์ ์
๋ฌด๋ถ๋ด์ ์ค์ฌ ํจ์จ์ ์ผ๋ก ์
๋ฌด๋ฅผ ํ ์ ์์์ต๋๋ค.
๋ํ ์ค์ ๋ก ์๋น์ค๋ฅผ ๋ฐฐํฌ๊น์ง ํด๋ณด๋ฉด์ ๋ด๊ฐ ๋ง์ฃผํ ์ง๊ธ ์ค๋ฅ๊ฐ ํ๋ก ํธ์ ๋ฐฑ ์ฝ๋์ธ์ง, ์๋๋ฉด ์๋ฒ ๊ตฌ๋์ ๋ฌธ์ ์ธ์ง ๋ฑ์ ์ค์ค๋ก ์ฐพ์๋๊ฐ๋ฉด์ ๊ฐ ๋ถ๋ถ์ ๋งก์ ๋๋ฃ๋ค๊ณผ ์ํตํ๋ ๋ฒ์ ๋ฐฐ์ธ ์ ์์์ต๋๋ค.
ํ๋ฐ๋ถ์ ์๋ฌ ๋๋ฒ๊น
์ ๋งก์ ํ์๋ค์ด ์ด๋ฏธ ๊ตฌํ๋ ์ฝ๋๋ฅผ ์์ ํ๋ ์ผ์ ๋งก์๋๋ฐ, ์ด ๊ณผ์ ์์ ํต์ผ๋ ์คํ์ผ ๊ฐ์ด๋๊ฐ ๋ถ์ฌํ๋ค๋ ์ ์ ์์ฌ์์ผ๋ก ๋จ์ต๋๋ค. ๋ฌผ๋ก , ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด๋ ๋ถ๋ถ์ ์์์ง๋ง, ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๋ณด๋ ์๊ฐ๋ณด๋ค ๋์น ๋ถ๋ถ๋ค์ด ๊ฝค ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ฆฌ์กํธ๋ฅผ ๋ชจ๋ ์ฒ์ ์ฌ์ฉํด๋ณด๋ ํ์๋ค๊ณผ ํ์
ํ๋ฉด์ ํฐ ์ค๋ฅ์ ์ถฉ๋ ์์ด ํ๋ก์ ํธ๋ฅผ ์ ๋ง๋ฌด๋ฆฌํ ์ ์์ด์ ๊ธฐ์ฉ๋๋ค.
๋๋ฒ์งธ๋ก ๋จ๋ ์์ฌ์์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฆฌ์กํธ์ ๋ํ ์ดํด๋์
๋๋ค. ์๋ฌ ์ํฉ์ ๊ณ ์ณ๋๊ฐ๋ฉด์ ์ ๊ฐ ์ง ์ฝ๋๋ค์ด ์ ๋ง ์๋ฐ์คํฌ๋ฆฝํธ์ค๋ฝ๊ณ ๋ฆฌ์กํธ์ค๋ฌ์ ๋๊ฐ ์๋ฌธ์ ํ๊ฒ ๋์์ต๋๋ค. ๋น๋๊ธฐ์ ํน์ฑ์, ์ปดํฌ๋ํธ ๋จ์์ ํน์ฑ์ ์ ์ด๋ฆฌ์ง ๋ชปํ ๋ถ๋ถ์ด ์์ด ์์ฌ์์ด ๋จ์ต๋๋ค. ์ฒ์ ์ฝ๋๋ฅผ ์งค ๋์๋ ์ด๊ฒ์ด ์๊ฐ์ ์๋ผ๋ ๊ฒ์ด๋ผ ์๊ฐํ๊ณ ๊ตฌํ์ด ๋๋ ๋ฐ์ ์ด์ ์ ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ผ๋, ์ปดํฌ๋ํธ ๋จ์ ๋ณ๋ก ์ชผ๊ฐ๊ณ ์ ์ฌ์ ์์ ๋น๋๊ธฐ๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ๋๊ผ์ต๋๋ค.
์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด์ ๊ธฐํํ๋ ๋ชจ๋ ๊ฒ๋ค์ ๊ตฌํํ ์ ์์ด์ ๋ง์กฑ์ค๋ฌ์ด ํ๋ก์ ํธ์์ต๋๋ค. ๋ ๋์๊ฐ ๋จ์ํ ๊ตฌํํ๋ ๋ฐ์ ๊ทธ์น์ง ์๊ณ , ์ด๋ป๊ฒ ํ๋ฉด ์ฌ์ฉ์์๊ฒ ๋ ์ข์ UX๋ฅผ ์ ๊ณตํ ์ ์์์ง ๊ณ ๋ฏผํ๋ฉด์ ์ฝ๋๋ฅผ ์งค ์ ์์ด์ ์ ์ตํ์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก JPA๋ Spring boot๋ฑ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ ํ์ตํ๋ ๊ธฐ์ ๋ค์ ํ์ฉํ๋ฉฐ ์ฒด๋ํ ์ ์์์ต๋๋ค. JPA ์์์ฑ ์ปจํ
์คํธ ๋ฌธ์ , Fetch Join ์ค๋ณต ๋ฌธ์ ๋ฑ ๊ฐ์๋ฅผ ์๋์ ์ผ๋ก ๋ค์ ๋๋ ์๊ฐํ ์ ์์๋ ๊ฒ๋ค์ ํด๊ฒฐํด๋๊ฐ๋ฉด์ ๊ธฐ์ ์ ๋ํ ์ดํด์ ์๋ จ๋๋ฅผ ๋์ผ ์ ์์์ต๋๋ค. ๋ํ, ์์
๋ก๊ทธ์ธ์ ๊ตฌํํ๋ฉฐ ๋ณต์กํ Spring Security๋ฅผ ์ดํดํ๋ ๊ฒ์ด ํ๋ค์์ง๋ง, ๊ณต์๋ฌธ์, ์ ํ๋ธ, ๋ธ๋ก๊ทธ ๋ฑ ์ฌ๋ฌ ๋งค์ฒด๋ค๋ก ๋ถ๋ชํ๋ฉฐ ๊ฒฐ๊ตญ ๊ตฌํํด๋๊ณ , ๋ชจ๋ฅด๋ ๊ฒ์ ํ์ตํ ๋ ํ์ํ ์ธ๋ด์ฌ์ ๋ฐฐ์ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฒ์์ผ๋ก ์๋น์ค ๋ฐฐํฌ ํ๊ฒฝ์ ๊ฒฝํํ๊ณ , ํ
์คํธ ์ฝ๋๋ ๋ก๊น
์ด ๊ต์ฅํ ์ค์ํ ์์๋ผ๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ๋์์ต๋๋ค. ๋ค์ ํ๋ก์ ํธ์์๋ ๋ฐฐํฌ ํ๊ฒฝ์์ ๋ค์ํ ๋ก๊ทธ ๋ ๋ฒจ์ ์ค์ ํ์ฌ ๋๋ฒ๊น
์ ํ ์ ์๋๋ก ํ๊ณ , ๊ฐ๊ฐ์ ๊ธฐ๋ฅ์ ๋จ์ ํ
์คํธ๋ฅผ ํผํผํ๊ฒ ๋ง๋ค์ด์ ์ฝ๋์ ๋ํ ํ์ ์ ๋ฐํ์ผ๋ก ๋น ๋ฅธ ์ค๋ฅ ํด๊ฒฐ์ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ ์ผ๋ก๋ ํ๋ก ํธ & ๋ฐฑ์๋๋ฅผ ๋๋ ์ ๊ฐ๋ฐํด ๋ณธ ๊ฒ์ด ์ข์์ต๋๋ค. ํ์ ํ์
์ ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ถ๊ธ์ฆ์ด ์์๋๋ฐ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์๋์ ์๊ตฌ์ฌํญ์ ์ดํดํ๊ธฐ ์ํ ์ํต ๋ฐฉ๋ฒ, ์ํต์ ๊ฒฐ๊ณผ๋ฌผ์ API ๋ช
์ธ์์ ์์ธํ ๊ธฐ๋กํ์ฌ ์ปค๋ฎค๋์ผ์ด์
๋น์ฉ์ ์ค์ด๋ ๋ฐฉ๋ฒ ๋ฑ ํ์
์คํฌ์ ๋ฐฐ์ธ ์ ์์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, ํ๋ก์ ํธ ํ์ฅ์ ๋งก์ผ๋ฉด์ ํ์๋ฅผ ์ ์ฃผ๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ณ ๋ฏผ๊ณผ ์๋๋ฅผ ๋ค์ํ๊ฒ ํด๋ณด๋ฉด์ ์ด๋ ์ ๋ ๊ทธ ํด๋ต์ ์ฐพ์ ๊ฒ ๊ฐ์์ ์ข์์ต๋๋ค.
ํ์ ๋ชจ๋๊ฐ ํน์ฅ์ ์ด ๋ฌ๋๊ณ , ๊ฐ์๊ฐ ์ ์ญํ ์ ๋๋ฌด ์ ํด์ฃผ์ด์ 6์ฃผ ๋ด๋ด ์์ํ๊ฒ ํ๋ก์ ํธ๋ฅผ ์งํํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฐ ๋ค์ฌ๋ค๋ฅํ ๋ถ๋ค์ ํ์ฅ์ ๋งก์ ์ ์์๋ค๋ ๊ฒ ๊ฐ์ฅ ๋ง์กฑ์ค๋ฌ์ด ๋ถ๋ถ์ด์์ต๋๋ค. ๋ค๋ค ๊ณ ์ ๋ง์ผ์
จ์ต๋๋ค!!
๊ฐ๋ฐ์๋ก ์ง๋ก๋ฅผ ์ ํํ๊ณ ์ฒ์์ผ๋ก ๊ท๋ชจ์๋ (๋น๊ต์ ) ์ฅ๊ธฐ ํ๋ก์ ํธ๋ฅผ ์งํํด๋ณด์์ต๋๋ค. ํ์ผ๋ก์จ์ ์๋์ง๋ฅผ ๊ธฐ๋ํ๊ธฐ ๋ณด๋ค๋ ์ ์์ ์ด 1์ธ๋ถ์ ํด๋ผ ์ ์์์ง์ ๋ํด์ ๋ ๊ฑฑ์ ์ด ๋ง์๋ ๊ฒ ๊ฐ์๋ฐ, ์ ํฌ๊ฐ ๋ฐ๋ผ๋ ํํ๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌ ํ ์ ์๊ฒ ๋์ด์ ์ ๋ง ๋ฟ๋ฏํฉ๋๋ค:)
์ฌ์ค ๊ณตํตํ๋ก์ ํธ๋ ์ ์๊ฒ ๋งค ์๊ฐ์ด ๋์ ์ด์์ต๋๋ค. ํ์ ๋ง๋ค์ด๊ฐ๊ณ , ์ํ๋ ์๋น์ค๋ฅผ ๊ธฐํํ๊ณ , ์๋ก์ด ํ๋ ์์ํฌ์ ๋ํด์ ๊ณต๋ถํ๊ณ , ์ค์ ๊ฐ๋ฐํ๋ ๊ฒ๊น์ง ์ด๋ ๊ฒ ํ๋ ์ฝ๊ฒ ๋์ด๊ฐ๋ ๊ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ๋ํ๋ ๋ฌ์ฑํด ๋๊ฐ๊ณ ์ด๋ ค์์ ๊ทน๋ณตํ ๋๋ง๋ค ๋๊ฒผ๋ค ์งง๊ณ ๊ตต์ ํฌ์ด์ ๋์ค์๋ ๊ณ์ ๊ธฐ์ต์ ๋จ์ ๊ฒ ๊ฐ์์. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ํฌ๊ฐ ์ํ๋ ๋ชฉํ๋ฅผ ์ด๋ฃฌ ์ด ํ๋ก์ ํธ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ฑ ๋ฟ๋ฏํ๊ฒ ๋๊ปด์ง๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ง๋๋ฒ์ ํ์๋ค์๊ฒ ๋งํ๋ฏ, ์ ํฌ ํ์ ๊ฐ์ ํ๋ช
ํ๋ช
์ ์ฅ์ ์ด ๋ช
ํํ ํ์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ถ๋ช
ํ ๊ตฌ๋ถ๋ ์ฅ์ ์ด ์๋ก๋ฅผ ๋ณด์ํ๊ณ ๋๋ก ์๋์ง๋ฅผ ๋ฐํํด ๊ฐ์ 1.3์ธ๋ถ์ฉ์ ๋ ๋ ํ๊ฒ ๋งก์์คฌ๋ ๊ฒ์ด๋ผ ์๊ฐํฉ๋๋ค. ๊ณตํต ํ๋ก์ ํธ์์ ์ง์ ํ ํ์
์ด๋ ๋ฌด์์ธ์ง๋ฅผ ๋ฐฐ์ธ ์ ์์ด ๋๋ฌด๋ ๋ป๊น๊ณ ๋๋ก ๊ฐ๋์ ์ธ ์๊ฐ๋ค์ด์์ต๋๋ค. ๋งค ๋จ๊ณ์์ ํจ์จ์ ์ผ๋ก ์ํตํ๊ณ ๋งก์ ๋ฐ ์ต์ ์ ๋์ด ์ต๊ณ ์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด์ค ํ์๋ค์๊ฒ ์ง์ฌ์ผ๋ก ๊ฐ์ฌํ๋ค๋ ๋ง์ ์ ํ๊ณ ์ถ์ต๋๋ค. 4ํ ๋ชจ๋ ๊ฐ์ฌํฉ๋๋ค!
์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ๋ง์ ์ ๊ธฐ์ ๊ณผ ๋๊ตฌ๋ฅผ ํ์ฉํ ๊ฒ ๊ฐ์ต๋๋ค. CI/CD๋ฅผ ๊ตฌ์ถํ๋ฉฐ ํ์์ ๊ด์ฌ์์๋ Docker๋ฅผ ์ง์ ์ฌ์ฉํด๋ณด๋ฉฐ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ์ปจํ
์ด๋ํ ํ์ฌ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ, Docker์ ๋ช
๋ น์ด์ Dockerfile ์์ฑ๋ฒ ๋ฑ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ ๋ฐ Docker์ ๋ํ ๊ธฐ์ด์ ์ธ ์ง์์ ๋ฐฐ์ธ ์ ์์ด์ ์ข์ ๊ฒฝํ์ด์์ต๋๋ค. ๋ํ, Jenkins๋ ๋์
ํ์ฌ Frontend์ Backend ๊ฐ๋ฐ ์ ์๋์ผ๋ก ๋ฌด์ค๋จ ๋ฐฐํฌ์ ๊ฐ๊น๊ฒ ๊ตฌ์ถํ์ฌ ๋ฐฐํฌ ํ๊ฒฝ์์์ ํ
์คํธ์ ๋ํ ์คํธ๋ ์ค๋ฅผ ์ค์ผ ์ ์์ด ๋ฟ๋ฏํ์ต๋๋ค.
์ด ์ธ์๋ ์ ๋ฐ์ ์ธ ์๋ฒ ๊ด๋ฆฌ๋ฅผ ๋๋งก์์ Ubuntu ์ฌ์ฉ๋ฒ์ ๋ฐฐ์ฐ๊ณ Nginx๋ฅผ ์ฌ์ฉํ๋ฉฐ SSL ์ ์ฉ๋ ํด๋ณด๋ฉฐ ์กฐ๊ธ ๋ ํ์
์์ ์ฌ์ฉํ๋ DevOps์ ๊ฐ๊น์ ์ง ๊ฒ ๊ฐ์ ์ข์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์์ ์ฌ์ฉํด ๋ณด์ง ๋ชปํ Spring Boot ๊ด๋ จ ๊ธฐ์ ์ธ JPA๋ฅผ ํ์ฉํ์ฌ ํจ์จ์ ์ผ๋ก DB ๊ด๋ จ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ด ํจ์จ์ ์ผ๋ก ๊ฐ๋ฐํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ , ํ๋ฐํ Code Review๋ฅผ ํตํด ๋์ณค๋ ๋ฒ๊ทธ๋ฅผ ์ฐพ์์ ์ค๋ฅ๋ฅผ ๋ฏธ์ฐ์ ๋ฐฉ์งํ๋ ๊ฒฝํ๊ณผ, Spring Security์ QueryDsl ๋ฑ ์ฌ๋ฌ ๊ธฐ์ ์ ๊ฐ์ ์ ์ผ๋ก ์ฒดํํด ๋ณผ ์ ์๋ค๋ ์ ์ด ๊ธฐ์ต์ ๋จ์ต๋๋ค!
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ Jira, Notion์ ํตํด ์ฒด๊ณ์ ์ผ๋ก ํ๋ก์ ํธ์ ์ผ๊ฐ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์ด ์ข์์ผ๋, ์๊ฐ๋ณด๋ค ๋ฒ๊ทธ์ ์ธ์ฐ๋ ์๊ฐ์ด ๊ธธ์ด์ ์๊ฐ ๋ถ๋ฐฐ ๋ฑ์ ์ ํํ๊ฒ ํ์ง ๋ชปํ ์ ์ด ์์ฌ์ ์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์ด์ ์ ์ด๊ณ ๋์ ์ ์ด๋ฉฐ ๋ฅ๋ ฅ์น๊ฐ ์ข์ ํ์๋ค์ ๋ง๋ ํด๊ฒฐ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋๋ ์ญ์์ผ๋ฐ ๋์์ฃผ์
์ ๋นจ๋ฆฌ ํด๊ฒฐํ ์ ๋ ๋ง๊ณ ํํํ ํ์ํฌ๋ฅผ ๋ฐํ์ผ๋ก UR IN์ด๋ผ๋ ๋ฉด์ ์๋น์ค ๊ฐ๋ฐ์ ์์กฐ๋กญ๊ฒ ๋ง๋ฌด๋ฆฌ ํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค! ๋ง์ง๋ง๊น์ง ๊ณ ์ ๋ง์ดํ ๋๋ฅ ์๋ ๋๋ฅ ํ ํ์๋ค๊ป ๊ฐ์ฌํฉ๋๋ค!
์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด์ 6์ฃผ๋ผ๋ ์งง์ ๊ธฐ๊ฐ๋์ ํ๊ธฐ์๋ ์กฐ๊ธ ๋ง์ ๋ชฉํ๋ฅผ ์ธ์ ๋๋ฐ ํ์๋ค์ด ๊ฐ์์ ์ญํ ์ ํ๋ฅญํ๊ฒ ์ํํด ์ฃผ์
์ ์ด๋ ๊ฒ ์ข์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ผ ์ ์์์ต๋๋ค. ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ๋ฅ๋ ฅ์ด ๋ฌ๋๊ธฐ ๋๋ฌธ์ ์ ๊ธฐ์ ์ผ๋ก ์
๋ฌด๋ฅผ ์ํํด ์ต๊ณ ์ ํจ์จ์ ๋ฝ์๋ผ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ React, OpenVidu, teachablemachine, face-api์ ์ด๋ฅด๊ธฐ๊น์ง ์๋ก์ด ๊ฒ๋ค์ ๋ง์ด ๋์ ํ๋๋ฐ ๋๋ก ํฐ ๋๊ด์ ๋ถ๋ชํ ํ๋ค๊ธฐ๋ ํ์ง๋ง ๋๊น์ง ์ต์ ์ ๋คํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๊ณ ๊ทธ๋งํผ ์ฑ์ฅํ์ง ์์๋ ์ถ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ํจ๊ป ๊ณ ์ํด์ค ํ์๋ค, ์ ๋ง ์ ๋ขฐํ ์ ์๋ ํ์๋ค์ด์๊ณ ๊ฐ์ด ํ์
ํ ์ ์์ด์ ์ ๋ง ์ข์์ต๋๋ค! ๋ชจ๋ ์๊ณ ํ์
จ์ต๋๋ค~
์ด๋ฒ ํ๋ก์ ํธ์ ์ค๊ฐ์ ํฉ๋ฅํ๊ฒ๋์ด ์ด๋์ ๋ ๋ถ์กฑํ๋ถ๋ถ๋ ๋ง์์ง๋ง ์ข์ ํ์๋ถ๋ค์ด ์์ด ๋ง์ด ๋ฐฐ์ฐ๋ ์๊ฐ์ด ๋์์ต๋๋ค. ํ๋ก ํธ์์ react๋ฅผ ํ๊ฒ๋์ด ์ฒ์์ด์์ง๋ง ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ฐ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ผ ์ ์์ด์ ์ข์ ๊ฒฝํ์ด ๋์์ต๋๋ค. ์ด๋ฒ์ ๋ฐฐ์ด ํ๋ ฅ๊ฒฝํ๊ณผ ๊ธฐ์ ์ ๊ฐ์ง๊ณ ํ์๋ถ๋ค ๋ค ์๋์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ๋ถ์กฑํ ์ฌ๋๊ณผ ์ ์ด๋์ด์ฃผ์ ํ์๋ถ๋ค ๊ฐ์ฌํฉ๋๋ค!!




















