- README
2023.07.04 ~ 2023.08.18 (์ฝ 7์ฃผ)
ํ์ ์ฑํ ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์์ด๋ฏผ๊ณผ์ ์ธ์ด ๊ตํ ์น ์๋น์ค ํ๋ก์ ํธ
ํ๋ก ํธ ํ๋ก์ ํธ ๊ตฌ์กฐ
๐ฆsrc
โฃ ๐api
โฃ ๐assets
โ โฃ ๐fonts
โ โฃ ๐icons
โ โฃ ๐imgs
โ โ โฃ ๐profiles
โ โ ๐styles
โฃ ๐components
โ โฃ ๐buttonMenu
โ โฃ ๐chatList
โ โฃ ๐common
โ โ โฃ ๐button
โ โ โฃ ๐container
โ โ โฃ ๐dropdown
โ โ โฃ ๐input
โ โ โฃ ๐overlay
โ โ โฃ ๐profile
โ โ โฃ ๐slideMenu
โ โ โฃ ๐tab
โ โ โ ๐tooltip
โ โฃ ๐dialoglist
โ โฃ ๐drawing
โ โฃ ๐grade
โ โฃ ๐header
โ โฃ ๐langList
โ โฃ ๐loading
โ โฃ ๐modal
โ โ โฃ ๐login
โ โ โฃ ๐match
โ โ โ โฃ ๐matchhome
โ โ โฃ ๐meeting
โ โ โฃ ๐mypage
โ โ โฃ ๐wordBook
โ โฃ ๐musicPlayer
โ โฃ ๐profileBar
โ โฃ ๐progressBar
โ โฃ ๐ScriptEditor
โ โฃ ๐starRate
โ โฃ ๐validationList
โ โ ๐videoFrame
โฃ ๐config
โฃ ๐features
โ โฃ ๐Meeting
โ โ ๐User
โฃ ๐hooks
โ โฃ ๐whiteboard
โฃ ๐Layout
โฃ ๐pages
โ โฃ ๐Error
โ โฃ ๐home
โ โฃ ๐login
โ โฃ ๐match
โ โฃ ๐meeting
โ โ โฃ ๐screen
โ โ โฃ ๐slide
โ โฃ ๐mypage
โ โฃ ๐signup
โฃ ๐store
โฃ ๐utils
โฃ ๐App.jsx
โฃ ๐main.jsx
โ ๐router.jsx
๋ฐฑ์๋ ํ๋ก์ ํธ ๊ตฌ์กฐ
๐ฆairlingo
โฃ ๐domain
โ โฃ ๐chat
โ โ โฃ ๐controller
โ โ โฃ ๐entity
โ โ โฃ ๐repository
โ โ โ ๐service
โ โฃ ๐content
โ โ โฃ ๐controller
โ โ โฃ ๐dto
โ โ โ โฃ ๐request
โ โ โ โ ๐response
โ โ โฃ ๐entity
โ โ โฃ ๐repository
โ โ โ ๐service
โ โฃ ๐language
โ โ โฃ ๐controller
โ โ โฃ ๐dto
โ โ โ โฃ ๐request
โ โ โ โ ๐response
โ โ โฃ ๐entity
โ โ โฃ ๐repository
โ โ โ ๐service
โ โฃ ๐matching
โ โ โฃ ๐controller
โ โ โฃ ๐request
โ โ โฃ ๐response
โ โ โ ๐service
โ โฃ ๐report
โ โ โฃ ๐controller
โ โ โฃ ๐dto
โ โ โ โฃ ๐request
โ โ โ โ ๐response
โ โ โฃ ๐entity
โ โ โฃ ๐repository
โ โ โ ๐service
โ โฃ ๐study
โ โ โฃ ๐controller
โ โ โฃ ๐dto
โ โ โ โฃ ๐request
โ โ โ โ ๐response
โ โ โฃ ๐entity
โ โ โฃ ๐repository
โ โ โ ๐service
โ โฃ ๐user
โ โ โฃ ๐controller
โ โ โฃ ๐dto
โ โ โ โฃ ๐request
โ โ โ โ ๐response
โ โ โฃ ๐entity
โ โ โฃ ๐repository
โ โ โ ๐service
โ โ ๐word
โ โ โฃ ๐controller
โ โ โฃ ๐dto
โ โ โ โฃ ๐request
โ โ โ โ ๐response
โ โ โฃ ๐entity
โ โ โฃ ๐repository
โ โ โ ๐service
โฃ ๐global
โ โฃ ๐config
โ โฃ ๐entity
โ โฃ ๐exception
โ โฃ ๐handler
โ โฃ ๐openvidu
โ โฃ ๐rabbitmq
โ โฃ ๐response
โ โ ๐util
โ ๐AirlingoApplication.java
ํด๋ฆญํ์ฌ ๋ด์ฉ ํ์/์จ๊ธฐ๊ธฐ
GROUND RULE
- ๋งค์ผ ์ค์ 9์, ์คํ 5์ 2ํ์ ๊ฑธ์ณ **๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ(Daily Scrum)**์ ์งํํด, ๊ฐ์ธ๋ณ ๋น์ผ ๋ชฉํ๋ฅผ ์ค์ ํ๊ณ ์งํ ์ํฉ์ ๊ณต์ ํฉ๋๋ค.
- ๋งค์ฃผ ๊ธ์์ผ ์คํ 5์์ **์คํ๋ฆฐํธ ์ธ์ (Sprint Session)**์ ์งํํด ์ผ์ฃผ์ผ๊ฐ ํ๋ก์ ํธ์ ์งํ ์ํฉ ๋ฐ ์ถํ ์งํ ๋ชฉํ๋ฅผ ์ค์ ํฉ๋๋ค.
- ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ๊ณผ ์คํ๋ฆฐํธ ์ธ์ ์ ํ์ฅ์ด ํ์๋ฅผ ์ฃผ์ฌํ๊ณ , ๋ค๋ฅธ ํ์๋ค์ด ๋์๊ฐ๋ฉฐ ํ์๋ก์ ์์ฑํฉ๋๋ค.
- ํ์์ ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํ๊ณ , ํ์ฅ์ ์ง๋ชฉ์ ๋ฐ๋ผ ๋ณธ์ธ์ ์๊ฒฌ์ ๋ฐ๋์ ์ ์ํฉ๋๋ค.
- **์ฝ๋ ๋ฆฌ๋ทฐ(Code Review)**๋ ์ ์ฌ์๊ฐ์ ํ์ฉํด ํ์ํ ๋ถ๋ถ๋ง ๊ฐ๋จํ 30๋ถ ๋์ ์งํํฉ๋๋ค.
- ์๋ก ๋ค๋ฅธ ์ฝ๋ ์คํ์ผ์ ํฉ์ํ **์ฝ๋ฉ ์ปจ๋ฒค์ (Coding Convention)**์ ๋ฐ๋ผ ์ผ์ํํฉ๋๋ค.
- ์ฝ๋ ๋ฆฌ๋ทฐ๋ ์ฐ์ ์์์ ๋ฐ๋ผ ๋น ๋ฅด๊ฒ ์งํํ๋ฉฐ, ์ฌ์ํ ์๊ฒฌ์ ๋ฐ์ํ ์ง์ ๋ํ ๋ถ๋ถ์ ์ฝ๋ ์์ฑ์๊ฐ ์ ํํ ์ ์๋๋ก ํฉ๋๋ค.
- ์๋ฌ(Error)๊ฐ ๋ฐ์ ์ 1์๊ฐ ์ ๋๋ ํผ์์ ๊ณ ๋ฏผํด๋ณด๊ณ , ํด๊ฒฐ์ด ๋์ง ์์ ๊ฒฝ์ฐ ํ์๋ค๊ณผ ๋ฐ๋ก ๊ณต์ ํฉ๋๋ค.
- ์๋ฌ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ ๋ฏผํ ๋ด์ฉ ๋ฐ ํด๊ฒฐ ๊ณผ์ ์ ๋ ธ์ ์ ์ ๋ฆฌํ์ฌ ๊ณต์ ํฉ๋๋ค.
- ์ฝ๋์ ์ฃผ์(Comment)์ ์์ฑํ๋ ์ต๊ด์ ์ํํํ์ฌ, ๋ค๋ฅธ ํ์๋ค์ด ๋ด๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ฝ๋๋ก ํฉ๋๋ค.
- ๊ธฐ๋ฅ์ ๊ตฌํ ์๋ฆฌ๋ฅผ ๊ณต๋ถํ๊ณ ํ์ ํ๊ธฐ ์ํด์ ์คํ ์์ค(Open Source) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ์ต์ํํ๋ ๊ฒ์ ์์น์ผ๋ก ํฉ๋๋ค.
- ํ๋ฆฌํ์คํธ(Pull Request)๊ฐ ์์ ๊ฒฝ์ฐ, ์ด๋ฅผ ํ์ธํ๋ค๋ ์๋ฏธ์์ ์ต์ํ 1๊ฐ ์ด์์ ์๊ฒฌ์ ๋จ๊ฒจ์ผ ํฉ๋๋ค.
- ํ๋ฆฌํ์คํธ ์ ์๊ฒฌ ๊ฐ๋ฑ์ด ์๊ฒผ๋ค๋ฉด, ์ถฉ๋ถํ ํ ๋ก ๊ณผ ์๊ฒฌ ์๋ ด ๊ณผ์ ์ ๊ฑฐ์ณ ๋ค์์ ์๊ฒฌ์ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
- ์ปค๋ฐ(Commit)ํ๊ธฐ ์ ์ ๊ณ ์น ๋ถ๋ถ์ ํ ๋ฒ ๋ ์ ๊ฒํฉ๋๋ค.
- 1๊ฐ์ง ๊ธฐ๋ฅ ๋๋ 1๊ฐ์ง ํจ์๋ฅผ ์๋ก ๋ง๋ค ๋๋ง๋ค ์ปค๋ฐํ๋ ์ต๊ด์ ์ํํํฉ๋๋ค.
- **์ปค๋ฐ ๋ฉ์์ง(Commit Message)**๋ ํฉ์ํ **์ปค๋ฐ ์ปจ๋ฒค์ (Commit Convention)**์ ๋ฐ๋ผ ์ต๋ํ ์์ธํ๊ฒ ์์ฑํฉ๋๋ค.
- ๊น ๋ธ๋์น(Branch) ๊ท์น์ ๋ฐ๋ผ ๋ธ๋์น๋ฅผ ๊ด๋ฆฌํ๊ณ , ๋ชจ๋ ์์ ์ ์ฌ๋ฐ๋ฅธ ๋ธ๋์น์์ ์์ ํด์ผ ํฉ๋๋ค.
- ๊ฐ์ธ ์ผ์ ์ด ์๊ธด ๊ฒฝ์ฐ ๋ฐ๋์ ๋ฏธ๋ฆฌ ๋ค๋ฅธ ํ์๋ค์๊ฒ ๊ณต์ ํฉ๋๋ค.
- ํ๋ก์ ํธ ์ค๊ฐ์ ์ทจ์ ๋ฑ์ผ๋ก ์๋ฃํ๊ฒ ๋ ๊ฒฝ์ฐ, ๋์์ ์ฐจ์์์ ๊ณตํต ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ณ ๊ฐ์ผ ํฉ๋๋ค.
- ์นด์นด์คํก(KakaoTalk), ๋์ค์ฝ๋(Discord), ๋งคํฐ๋ชจ์คํธ(Mattermost) ๋ฑ์ ํตํ ์ฐ๋ฝ์ ํ์ธํ์ ๋๋, ํ์ธํ๋ค๋ ์๋ฏธ์ ๋ต๋ณ ๋๋ ์ด๋ชจ์ง(Emoji)๋ก ํ์ํฉ๋๋ค.
- ๋งค์ฃผ ๊ธ์์ผ ๋ ผ์ํด, ์ฃผ๋ง ์ค ํ๋ฃจ๋ ์คํธ๋ ์ค ๊ด๋ฆฌ ๋ฐ ๊ฐ์ธ ๊ณต๋ถ๋ฅผ ์ํ ์๊ฐ์ผ๋ก ํ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
- ๊ต์ก์ฅ์์ ํด์คํ๊ธฐ ์ ์ ์๊ธฐ ์๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ์ ๋ฆฌ์ ๋ํฉ๋๋ค.
- ๋ชธ์ด ์ํ๋ฉด, ๋ฏธ์ํดํ์ง ์๊ณ ๋น ๋ฅด๊ฒ ํ๋ณตํ ์ ์๋๋ก ํน ์ฌ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
- ๋ฐฅ์ ๋ ๋ ํ ๋จน๊ณ , ๊ตถ์ง ์์ต๋๋ค. โ์ ๋จน๊ณ ์ฃฝ์ ๊ฐ๋ฐ์๊ฐ ๋๊น๋ ๊ณฑ์ต๋๋ค.โ
- ์ ๊ทน์ฑ : ํ์๋ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ ์๊ฒฌ์ด ์๋ค๋ฉด ๋ง์ค์ด์ง ์๊ณ ์๊ฒฌ์ ์ด์ผ๊ธฐํฉ๋๋ค. โ๋งํ ๊น ๋ง๊น ํ ๋๋ ๋งํด์ผ ํฉ๋๋ค.โ
- ๊ธ์ ์ ์ธ ํ๋ : ํ๋ก์ ํธ์ ์ํ ๋๋ ์์ผ๋ฉด์ ์ฌ๋ฏธ์๊ฒ ํฉ์๋ค. โํ๋ณตํ๊ธฐ ๋๋ฌธ์ ์๋ ๊ฒ์ด ์๋๊ณ ์๊ธฐ ๋๋ฌธ์ ํ๋ณตํฉ๋๋ค.โ
- ์ํต : ๋ค๋ฅธ ํ์์ ์๊ฒฌ์ ์กด์คํ๊ณ , ๋ง์ ๋์ง ์์์ผ ํฉ๋๋ค. ์๊ฒฌ์ด ๋ค๋ฅด๋ฉด, ๋ํ๋ฅผ ํตํด ํํ์ ์ ์ฐพ์์ผ ํฉ๋๋ค.
- ํ๋ ฅ : ํ์์ด ํ๋ค์ดํ๋ ๋ถ๋ถ์ด ์๋ค๋ฉด, ์์ผ๋ฉด์ ๋์์ฃผ์ด์ผ ํฉ๋๋ค. ๋์์ ์ค์๋ก ๋์ ์ค๋ ฅ๋ ํจ๊ป ์ฌ๋ผ๊ฐ๋๋ค.
- ์ ๋ขฐ : ๋ค๋ฅธ ํ์๋ค์ ์ฑ ์๊ฐ๊ณผ ์ค๋ ฅ์ ๋ํด ๋ฏฟ์์ ์์ง ๋ง์๋ค.
ํด๋ฆญํ์ฌ ๋ด์ฉ ํ์/์จ๊ธฐ๊ธฐ
COMMIT CONVENTION
- Commit ๋ฉ์ธ์ง ๊ตฌ์กฐ
- ex) โจ feat : Add sign in page #S09P11A308-52
<emoji> <type> : <subject> <Jira ticket number> // ํ์
// ๋น ํ์ผ๋ก ๊ตฌ๋ถ
<body> // ์๋ต๊ฐ๋ฅ
// ๋น ํ์ผ๋ก ๊ตฌ๋ถ
<footer> // ์๋ต๊ฐ๋ฅ
ํด๋ฆญํ์ฌ ๋ด์ฉ ํ์/์จ๊ธฐ๊ธฐ
BRANCH NAMING CONVENTION
-
ex) feat/{์ด์ ํค}-{BE/FE}-{์ด์ ์์ฝ}
-
master / main - ์ ํ์ผ๋ก ์ถ์ ๋ฐ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ ์ํ์ธ ๋ธ๋์น โ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ ์ ์ถ ์ฉ๋
-
develop - ๋ค์ ์ถ์ ๋ฒ์ ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น โ ๊ธฐ๋ฅ ์์ฑ ํ ์ค๊ฐ์ ์ทจํฉํ๋ ์ฉ๋
-
feature - ๊ฐ์ข ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น โ feat/login, feat/join ๋ฑ์ผ๋ก ๊ธฐ๋ฅ ๋ถ๋ฅ ํ ์์
-
hotfix - ์ถ์ ๋ฒ์ ์์ ๋ฐ์ํ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๋ธ๋์น
ํด๋ฆญํ์ฌ ๋ด์ฉ ํ์/์จ๊ธฐ๊ธฐ
CODING CONVENTION
- 1๋ฌธ์์ ์ด๋ฆ์ ์ฌ์ฉํ์ง ์๋๋ค.
- ๋ค์์คํ์ด์ค, ์ค๋ธ์ ํธ, ํจ์ ๊ทธ๋ฆฌ๊ณ ์ธ์คํด์ค์๋ camelCase๋ฅผ ์ฌ์ฉํ๋ค
ex) camelCase - ํด๋์ค๋ constructor์๋ PascalCase๋ฅผ ์ฌ์ฉํ๋ค.
ex) PascalCase - ์ฝ์ด ๋ฐ ์ด๋์
์ ํญ์ ๋ชจ๋ ๋๋ฌธ์์ด๊ฑฐ๋ ๋ชจ๋ ์๋ฌธ์์ฌ์ผ ํ๋ค.
ex) NFT - ํด๋์ค๋ช
๊ณผ ๋ณ์๋ช
์
๋ช ์ฌ ์ฌ์ฉ - ๋ฉ์๋๋ช
์
๋์ฌ ์ฌ์ฉ - ์์๋ช ์ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ๊ณ , ๋จ์ด์ ๋จ์ด ์ฌ์ด๋ _๋ก ์ฐ๊ฒฐํ๋ค.
- component๋ PascalCase๋ฅผ ์ฌ์ฉํ๋ค.
ํด๋ฆญํ์ฌ ๋ด์ฉ ํ์/์จ๊ธฐ๊ธฐ
JIRA CONVENTION
- ๋งค์ฃผ ์์์ผ ์ค์ ์คํฌ๋ผ ํ์ ์ดํ ๊ฐ์์ ์ด์ ํฐ์ผ์ ์์ฑํ๋ค.
- ์ด์ ์์ฑ ์ ํ์ธํด์ผ ํ ๋ถ๋ถ
- ๋ด๋น์๊ฐ ๋ณธ์ธ์ผ๋ก ์ค์ ๋์ด ์๋์ง
- ์ปดํฌ๋ํธ๊ฐ ์ง์ ๋์ด ์๋์ง (FE, BE, ๊ณตํต ์ค ํ1)
- Epic Link๊ฐ ์ง์ ๋์ด ์๋์ง (์ค๊ณ, FE๊ฐ๋ฐ, BE๊ฐ๋ฐ, ํ์, ํ์ตโฆ)
- ์คํ๋ฆฐํธ์ ์ด Story Points๊ฐ 40 ์ด์์ธ์ง
- ์ด์ ํฐ์ผ ์ด๋ฆ์ [๋ง๋จธ๋ฆฌ] ๊ตฌ์ฒด์ ์ธ ๊ธฐ๋ฅ ์ผ๋ก ์ ๋๋ค.
- ****************************๊ธฐ๋ฅ ๊ด๋ จ ์ด์์ผ ๊ฒฝ์ฐ **************[๋ง๋จธ๋ฆฌ]**************๋ ๊ธฐ๋ฅ ๋ช ์ธ์์ ๋๋ถ๋ฅ๋ฅผ ๋ฐ๋ฅธ๋ค.
- ๋งค์ผ ์ค์ ์คํฌ๋ผ ํ์ ์ดํ ๊ทธ ๋ ์ฒ๋ฆฌํ ์ด์ ํฐ์ผ์ ์งํ ์ค์ผ๋ก ์ด๋์ํจ๋ค.
- ์ค์๊ฐ์ผ๋ก ์ด์๋ฅผ ์ฒ๋ฆฌํ ๋๋ง๋ค ์๋ฃ ์ฒ๋ฆฌํ๋ค.
- ๋ก์ปฌ ๊ตฌ๋ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ต๋๋ค.
- clone Project
git clone https://lab.ssafy.com/s09-webmobile1-sub2/AirLingo.git
- change path to /frontend/airlingo
npm i --legacy-peer-deps
- create .env file in /frontend/airlingo/
VITE_SERVER_URL={your_server_url}
VITE_SOCKET_URL={your_socket_url}
VITE_CHAT_SOCKET_URL={your_chat_socket_url}
- input frontend run script
npm run dev
- change path to /backend/airlingo/src/main/resources
application.yml
cloud:
aws:
s3:
bucket: ${your-bucket-name}
credentials:
accessKey: ${your-access-key}
secretKey: ${your-secret-key}
region:
static: ap-northeast-2
auto: false
stack:
auto: false
application-dev.yml
spring:
jpa:
hibernate:
ddl-auto: create #create update none
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: ${your-db-url}
username: ${your-db-username}
password: ${your-db-password}
rabbitmq:
host: localhost
port: 5672
username: ${your-rabbitmq-username}
password: ${your-rqbbitmq-password}
openviduUrl: ${your-openvidu-url}
openviduSecret: ${your-openvidu-secret}
- install docker,openvidu,redis,rabbitmq
- run openvidu
docker run -p 4443:4443 --rm -e OPENVIDU_SECRET=MY_SECRET openvidu/openvidu-dev:2.28.0
- change path /matching/airlingo
- run docker-compose.yaml for rabbitmq
- run backend,matching program
https://www.youtube.com/watch?v=WcZEspXgMLA
๐ข ์๋ ํ์ธ์! ์ผ์ฑ ์ฒญ๋ ์ํํธ์จ์ด ์์นด๋ฐ๋ฏธ(SSAFY) ์์ธ 3๋ฐ ๊ต์ก์์ผ๋ก ์กฐ์ง๋ ํ๋ก์ ํธ ํ โ๊ฐ๋ฐ์๋คโ์ ๋๋ค. ํ๋ก์ ํธ ์งํ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ํ์ ๊ฐ ๊ณต์ ํ๊ณ ํด๊ฒฐ์ฑ ์ ๋ชจ์ํ๋ฉด์ ํจ๊ป ์ฑ์ฅํ๋ ๊ธฐํ๋ก ์ผ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ข ์ํ๋ ๋ฌธํ ์ฝํ ์ธ ์์ ์ฌ์ฉํ๋ โ~๋คโ์ ํํ์ ์ฌ์ฉํด ๋ฏธ๋์ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ ์ฌ์ฏ ๋ช ์ ํ์์ด ๋ชจ์๋ค๋ ์๋ฏธ๋ฅผ ๋ด์์ต๋๋ค.
![]() |
![]() |
|---|---|
| ๊ณ ๊ฑด | ๊น์ํ |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
| ๊นํ๋ฆผ | ๋ฌธ์์ | ๋ฐ์๊ท | ์ค์ ์ |

































































