์งํ ๊ธฐ๊ฐ : 2025/1/13 ~ 2024/2/20
์๊ฐ : ์๊ณ ๋ฆฌ์ฆ ๋ฐฐํ ์ฌ์ดํธ
ํผ์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ์์ ๋ ๋๋ผ๋ ๋ต๋ตํจ์ ๋๊ตฐ๊ฐ์ ๊ณต์ ํ๊ณ ์ถ๋ค๋ ์์ด๋์ด์์ ์ฐฉ์
๋จ์ํ ์ฝ๋๋ง ๊ณต์ ํ ์ ์๋ ํ์
ํด์ด ์๋๋ผ ํจ๊ป ๋ฌธ์ ๋ฅผ ํ๊ณ ๊ฒฝ์ํ๋ฉฐ ์ฑ์ฅํ ์ ์๋ ์๋น์ค๋ก ๊ตฌ์ฒดํ
ํฌ์ง์
์ญํ
๊น๋์ง
FE, Infra, ํ์ฅ
ํ์ /๊ฐ์ธ์ ๋งค์นญ, ๊ฒ์ ์ด๋, ์น๊ตฌ ์ ์ฒญ, ์ฑํ
, ํ์ ์ ๋ณด ์์
๋ฐ๊ฐํฌ
FE ๋ฆฌ๋
๋ฉ์ธ, ๋์ ๊ธฐ๋ก, ํ์ /๊ฐ์ธ์ IDE, ์ฝ๋ ์ ์ถ ๋ฐ ์คํ, ๋ณด๋์ค ๋ฌธ์ , ์์ดํ
, OpenVidu๋ก ์์ฑ ๊ณต์ , AI ์ฝ์นญ, ๋์์ธ
์ฅํฌํ
FE
๋ก๊ทธ์ธ, ๋ก๊ทธ์์, ๋์์ธ, ์ฑํ
๋ชจ๋ฌ ์ผ๋ถ, ๊ณตํต ์ปดํฌ๋ํธ ์ ์, ์๋ฌ ํ์ด์ง, PPT, ์์ ์ ์
์ง์ฐ์
FE, Infra, BE ๋ฆฌ๋
ํ์, ๋์ ๊ธฐ๋ก, ์ฝ๋ ๋์ ํธ์ง, ์ฝ๋ ์ ์ถ ๋ฐ ์คํ(์ฑ์ ), ๊ฒ์ ๊ฒฐ๊ณผ, ์์ดํ
, AI ์ฝ์นญ
๊น์ฑ์ฐฌ
BE
์น๊ตฌ ์ ์ฒญ, ์ฑํ
, OpenVidu ์๋ฒ ๋ฐฐํฌ, ์ ์ ๊ฒ์, ํ์ /๊ฐ์ธ์ ๋๊ฐ๊ธฐ
๊น์์
BE
ํ์ /๊ฐ์ธ์ ๋งค์นญ, ๊ฒ์ ์ด๋, ๋ญํน ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ํ์ด์ง ์กฐํ/๊ฒ์ , S3 ์ฐ๋
โ ๊ฐ๋ฐ ํ๊ฒฝ ๋ฐ ๊ธฐ์
https://jumbled-hexagon-bd2.notion.site/19d56f9141d380a0a351f11a57e5c701?pvs=4
https://www.erdcloud.com/d/4NDsDbCnsSfs4cGsh
์ผ๋ฐ ํ์๊ฐ์
๊นํ๋ธ ํ์๊ฐ์
JWT, Spring Security ํ์ฉ
๋์ ๊ธฐ๋ก ์ด๋ ๊ฐ๋ฅ
ํด๋น ์ ์ ์ ๋ฑ์, ๋ฑ๊ธ, ์์ ๋ถํฌ ํ์ธ ๊ฐ๋ฅ
ํ๋ ์ด ์๊ฐ, ํจ๊ป ๊ฒ์ํ ์ ์ , ์ ์ถํ ์ฝ๋์ ์คํ ์๊ฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ, ๋ฌธ์ ์ ๋ณด ํ์ธ ๊ฐ๋ฅ
์น๊ตฌ ์ ์ฒญ
์น๊ตฌ ์ญ์
WebSocket์ ํตํด ์น๊ตฌ ์ ์ฒญ ์ ์๋๋ฐฉ์๊ฒ ์ค์๊ฐ์ผ๋ก ์๋ ์์ฑ
WebSocket, Redis๋ฅผ ํตํด ์น๊ตฌ์ ์จ๋ผ์ธ/์คํ๋ผ์ธ ์ํ ํ์ธ
์น๊ตฌ ์ ์ฒญ์ ์ํ ์ ์ ๊ฒ์ ๊ธฐ๋ฅ ์ ๊ณต
์ฑํ
๋ฐฉ ์กฐํ
์ค์๊ฐ ์ฑํ
๊ฐ์ฅ ์ต๊ทผ ์ฑํ
๋ฉ์์ง๊ฐ ์ฑํ
๋ฐฉ ๋ชฉ๋ก์ ํจ๊ป ๋
ธ์ถ
๋น๋ก๊ทธ์ธ ํ์
๋ก๊ทธ์ธ ํ์
๋งค์ผ ์์ ์ Spring Batch๋ก ์
๋ฐ์ดํธ๋๋ ๋ฐ์ผ๋ฆฌ ๋ญํน ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋ง
์ ์ ๋ณ ์์, ์์ ๋ณ๋, ๋ญํน ์ ์, ์ ํธ ์ธ์ด, ํ๊ท ํต๊ณผ์จ ํ์ธ ๊ฐ๋ฅ
๋๋ค์, ๋ฑ๊ธ๋ณ, ์ธ์ด ๋ณ ๊ฒ์ ๊ธฐ๋ฅ ์ ๊ณต
๋ก๊ทธ์ธํ ํ์์ ๊ฒฝ์ฐ ๋ณธ์ธ์ ๋ฑ๊ธ์ด ์ฒซ ๋ฒ์งธ์ ์์น
๋งค์นญ ํ ๊ฒ์ ํ๋ฉด์ผ๋ก ์ด๋
๋ฐฉ ๋๊ฐ๊ธฐ
์ต์ 2๋ช
, ์ต๋ 8๋ช
๊ฒ์ ๊ฐ๋ฅ
redis๋ฅผ ํตํด ๋๊ธฐ๋ฐฉ ์ํ ๋ฐ ์์๋ ์ ์ ๋ค ๊ด๋ฆฌ
๊ฒ์ ์์ ์ redis์์ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฅผ DB์ ์ ์ฅ
์ฝ๋ ์์ฑ
์ฝ๋ ์คํ
-
์ฝ๋ ์ ์ถ ๋ฐ ๊ฒฐ๊ณผ
-
์ค์๊ฐ์ผ๋ก ์๋์ ํ
์คํธ์ผ์ด์ค ํต๊ณผ ํํฉ ํ์
๊ฐ๋ฅ
๋งค์นญ ํ ๊ฒ์ ํ๋ฉด์ผ๋ก ์ด๋
๋งค์นญ ์ทจ์
๋งค์นญ ์๋ฃ
๋ฐฉ ๋๊ฐ๊ธฐ
์ต์ 2๋ช
, ์ต๋ 4๋ช
๊ฒ์ ๊ฐ๋ฅ
redis๋ฅผ ํตํด ๋๊ธฐ๋ฐฉ ์ํ ๋ฐ ์์๋ ์ ์ ๋ค ๊ด๋ฆฌ
๊ฒ์ ์์ ์ redis์์ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฅผ DB์ ์ ์ฅ
์ด๋ ์น์ธ
์ด๋ ๊ฑฐ์
์น๊ตฌ ์ด๋ ์ ์ค์๊ฐ ์๋ ์ ์ก
์ค์๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ๊ฒ์ ํน์ฑ ์ Redis TTL์ 10๋ถ์ผ๋ก ์ค์ ํ์ฌ ์ ํจ๊ธฐ๊ฐ ์ง์
๋์ ์ฝ๋ ์์ฑ
์๋ํ ์ฝ๋ ๋ธ๋ฌ ์ฒ๋ฆฌ
๋ณด๋์ค ๋ฌธ์ ๋ฐ ์์ดํ
์๋ ์ ์ฉ
์ฝ๋ ์คํ
์ฝ๋ ์ ์ถ ๋ฐ ๊ฒฐ๊ณผ
AI ์ฝ์นญ
์ค์๊ฐ์ผ๋ก ์๋์ ํ
์คํธ์ผ์ด์ค ํต๊ณผ ํํฉ ํ์
๊ฐ๋ฅ
์๋ ํ์ IDE๋ฅผ ๋ธ๋ฌ ์ฒ๋ฆฌํ ์ํ๋ก ๋
ธ์ถ
๊ฐ์ ํ๋ผ๋ฆฌ ์ค์๊ฐ ์ฝ๋ ๊ณต์ ๊ฐ๋ฅ
OpenVidu๋ฅผ ํตํด ๊ฐ์ ํ๋ผ๋ฆฌ ์์ฑ ์ฑํ
๊ฐ๋ฅ
OpenAI๋ฅผ ํตํด ์ ์ถํ ์ฝ๋์ ๋ํด ํผ๋๋ฐฑ ์ ๊ณต
<!-- PR ๋ฉ์์ง : ๐ [FE] merge: from feature/ to dev -->
## ๊ฐ์
### ๐ [FE] merge: from feature/ to dev
<!---- ๋ณ๊ฒฝ ์ฌํญ ๋ฐ ๊ด๋ จ ์ด์์ ๋ํด ๊ฐ๋จํ๊ฒ ์์ฑํด์ฃผ์ธ์. ์ด๋ป๊ฒ๋ณด๋ค ๋ฌด์์ ์ ์์ ํ๋์ง ์ค๋ช
ํด์ฃผ์ธ์. -->
<!---- Resolves: #(Issue Number) -->
## PR ์ ํ
์ด๋ค ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์?
- [ ] ๊ธฐ๋ฅ ๋ฐ ์ฝ๋ ์ถ๊ฐ
- [ ] ๊ธฐ๋ฅ ๋ฐ ์ฝ๋ ์์ ์ค
- [ ] ๊ธฐ๋ฅ ๋ฐ ์ฝ๋ ์์ ์๋ฃ
- [ ] ๋ฒ๊ทธ ์์
- [ ] ๋์์ธ ์์
- [ ] ์ฝ๋ ๋ฆฌํฉํ ๋ง
- [ ] ๋ฌธ์์์ฑ ๋ฐ ํธ์ง
- [ ] config ํ์ผ ์์
- [ ] ํ์ผ ์ถ๊ฐ
- [ ] ํ์ผ ์ ๊ฑฐ
- [ ] ์คํ ์์
- [ ] ์ฑ๋ฅ ํฅ์
- [ ] public ํด๋ ์
๋ฐ์ดํธ
- [ ] ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ณ๊ฒฝ
- [ ] ์น๋ช
์ ์ธ ๋ฒ๊ทธ ์์
- [ ] ํ๋ก์ ํธ ๊ฐ์
- [ ] ํ๋ก์ ํธ ๋ฐฐํฌ
## PR Checklist
PR์ด ๋ค์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋์ง ํ์ธํ์ธ์.
- [ ] ์ปค๋ฐ ๋ฉ์์ง ์ปจ๋ฒค์
์ ๋ง๊ฒ ์์ฑํ์ต๋๋ค.
- [ ] ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ํ
์คํธ๋ฅผ ํ์ต๋๋ค.(๋ฒ๊ทธ ์์ /๊ธฐ๋ฅ์ ๋ํ ํ
์คํธ).
- feat : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
- fix : ๋ฒ๊ทธ ์์
- docs : ๋ฌธ์ ์์
- style : ์ฝ๋ ํฌ๋งทํ
, ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ
- refactor : ์ฝ๋ ๋ฆฌํฉํ ๋ง
- test : ํ
์คํธ ์ฝ๋, ๋ฆฌํํ ๋ง ํ
์คํธ ์ฝ๋ ์ถ๊ฐ
- chore : ๋ณ๋ ์
๋ฌด ์์ , ํจํค์ง ๋งค๋์ ์์