๐ Porest
[ SSAFY ์์จํ๋ก์ ํธ ] 2021. 04.12 ~ 2021.05.28
- Guardians of the POREST [๋์ 2๋ฐ_B208]
- POREST๋ฅผ ์งํค๋ ์ํธ์์ ๋๋ค.
-
2-1. ๊ธฐ์ /ํธ๋ ๋ ๋ํฅ
โ์ฝ๋ก๋ ๋ธ๋ฃจโ๋ผ๊ณ ๋ถ๋ฆด ์ ๋๋ก ์ฝ๋ก๋19๋ก ์ธํ ์ ์ ๊ฑด๊ฐ๋ฌธ์ ๊ฐ ์ฌ๊ฐํ ์์ค์ ์ด๋ฅด์, ์ ๋ถ๊ฐ ์ข ํฉ๋์ฑ ์ ๋ง๋ จํ๋ค. ์ ๋ถ๋ ์ ์ธ๊ท ๊ตญ๋ฌด์ด๋ฆฌ ์ฃผ์ฌ ๊ตญ์ ํ์์ ๊ฒ์กฐ์ ํ์์์ โ์จ๊ตญ๋ฏผ ๋ง์๊ฑด๊ฐ ์ข ํฉ๋์ฑ (์ 2์ฐจ ์ ์ ๊ฑด๊ฐ๋ณต์ง๊ธฐ๋ณธ๊ณํ)โ์ ๋ ผ์ํ๊ณ , ์ฝ๋ก๋19 ๊ทน๋ณต๊ณผ ์ ๊ตญ๋ฏผ ์ ์ ๊ฑด๊ฐ ์ฆ์ง์ ์ํด ํฅํ 5๋ ๊ฐ ์ ์ ๊ฑด๊ฐ ๋ถ์ผ์์ ๊ตญ๊ฐ์ฑ ์๊ณผ ๊ณต๊ณต์ฑ์ ๊ฐํํ๊ธฐ๋ก ํ๋ค. ์ฝ๋ก๋19๊ฐ ์ฅ๊ธฐํ๋จ์ ๋ฐ๋ผ ์ ์ ๊ฑด๊ฐ์ ๋ํ ๊ด์ฌ๊ณผ ์์๊ฐ ๋์์ง๊ณ ์๊ณ , ๋ฎ์ ํ๋ณต์ง์์ ๋์ ์์ด๋ฅ ๋ฑ ์ฐ๋ฆฌ ์ฌํ์ ์ ์ ๊ฑด๊ฐ ์์ค์ ๊ณ ๋ คํ ๋ ์ฝ๋ก๋19 ์ดํ ์ ์ ๊ฑด๊ฐ ๋ฌธ์ ๋ ๋์ฑ ์ฌ๊ฐํด์ง ์ฐ๋ ค๊ฐ ์ ๊ธฐ๋๊ณ ์๋ค. ํนํ, ์ฌํ์ ๊ฑฐ๋ฆฌ ๋๊ธฐ ๋ฑ์ผ๋ก ๊ธฐ์กด์ ๊ฑด๊ฐํ ์ฌ๋๋ ์ฐ์ธใ๋ถ์์ ๊ฒช๊ณ ์์ผ๋ฉฐ, ์ ์ธ๊ณ์ ์ผ๋ก ์ฝ๋ก๋19๋ก ์ธํ ์ ์ ๊ฑด๊ฐ ๋ฌธ์ ํด๊ฒฐ์ ์ํด ๊ตญ๊ฐ์ ๋์ ์ ๋ต์ด ํ์ํ ์ํฉ์ด๋ค. ์ด์ ์ ๊ตญ๋ฏผ์ ์ ์ ๊ฑด๊ฐ ์ฆ์ง์ ์ ์ฑ ์ ์ฐ์ ์์๋ฅผ ๋๊ณ ๊ตญ๊ฐ ์ฑ ์์ ๊ฐํํ๊ณ ์ ํฅํ 5๋ ๊ฐ์ ์ ์ฑ ๋ฐฉํฅ์ ๋ด์ ์ ๊ทน์ ์ด๊ณ ํฌ๊ด์ ์ธ โ์ 2์ฐจ ์ ์ ๊ฑด๊ฐ๋ณต์ง๊ธฐ๋ณธ๊ณํโ์ ์๋ฆฝ, 6๋ ์ ๋ต๊ณผ ํต์ฌ๊ณผ์ ๋ฅผ ๋ง๋ จํ๋ค.
-
2-2. ๊ตญ๋ด/์ธ ํํฉ
๋ณด๊ฑด๋ณต์ง๋ถ์ ๋ฐ๋ฅด๋ฉด ์๋๊ถ์์ ์ฌํ์ ๊ฑฐ๋ฆฌ๋๊ธฐ 2.5๋จ๊ณ๊ฐ ์ํ๋ ์ดํ์ธ ์ง๋๋ฌ 31์ผ๋ถํฐ ์ง๋ 6์ผ๊น์ง 1์ฃผ์ผ๊ฐ ์ ๋ถ ์ ์ ๊ฑด๊ฐ์ผํฐ ๋ฑ์ ์ ์๋ ์ฌ๋ฆฌ์๋ด ๊ฑด์๋ ์ด 2๋ง2792๊ฑด์ผ๋ก, ๊ฑฐ๋ฆฌ๋๊ธฐ ๊ฐํ ์ด์ ์ธ ์ง๋ ๋ฌ 10์ผ๋ถํฐ 16์ผ๊น์ง 1์ฃผ์ผ๊ฐ ์ ์๋ ๊ฑด์(1๋ง1807๊ฑด)์ ๋นํด 2๋ฐฐ ๊ฐ๊น์ด ์ฆ๊ฐํ ๊ฒ์ผ๋ก ๋ํ๋ฌ๋ค.
-
2-3. ๋ฒค์น๋งํน ๋๋ ์ ์ฌ ์๋น์ค ์ฌ๋ก
์์ธ์๋ ์ฝ๋ก๋19 ์ฅ๊ธฐํ๋ก ๋ง์์ด ํ๋ ์๋ฏผ๋ค์ด ๋น๋๋ฉด ์๋ด์ ํ ์ ์๋๋ก ์นด์นด์คํก ์ฑ๋ด ์๋น์ค โ๋๊ตฌ๋โ๋ฅผ ์ฒซ ๊ฐ์ํ๊ณ , ์ถ์ ๋ ์ฌ๋ฆฌ์ง์ ์ ๊ณตํ๋ ํ๋ซํผ โ๋ชจ๋๋คโ ํํ์ด์ง๋ ๊ฐ์ค, ์ด์ํ๋ค.
- vue.js
- Nunjucks
- adobe illustrator
- PEER.JS
- Node.js
์ ํฌ ํ์ ๊ฐ๋ฐ ๋ชฉํ๋ ์ธํผ ๊ต์ก ๊ณผ์ ์์ ๋ฐฐ์ด ๋ด์ฉ์ ์ตํฉํ๊ธฐ ์ํด์ ๋
ธ๋ ฅํ์์ต๋๋ค. ํ๋ก ํธ ์๋๋ 1ํ๊ธฐ์ ๊ณตํต์์ ๋ฐฐ์ด vue.js
์ ๊ณ ๋ํ๋ฅผ ํตํด์ ์น์ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ์๊ณ ,๋์์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ์ง ์๊ธฐ ์ํด์ css
,์ js
๋ง์ผ๋ก ๋ชจ๋ ui ๋ฐ ์ธํฐ๋ ์
์ ๊ตฌํํ์ต๋๋ค. ๋ค์์ผ๋ก ํนํ์์ ๋ฐฐ์ด ์ธ๊ณต์ง๋ฅ์ธ ์ผ๊ตด ๊ฐ์ ์ธ์, TTS
,STT
์๋น์ค๋ฅผ js๋ก ๊ตฌํํด์ ์ ์ฉํ์๊ณ , ์์จ์์ ํ์ตํ AR ์ด๋ชจ์ง
์ webrtc
์๋ฒ๋ฅผ ์ง์ ๊ตฌํํ๊ณ , ๊ฐ์ ์ธ๊ณ์ ui๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์ three.js
,webGL
๋ฅผ ํ์ฉํ์ฌ 3D ui
๋ฅผ ์ ์ํ์ฌ ์๋น์ค๋ฅผ ์ ์ํ์ต๋๋ค. ์ด๋ ๊ฒ ์ ํฌ๋ ์ธํผ ๊ต์ก๊ณผ์ ์์ ๋ฐฐ์ด ๊ฒ์ ๋
บ์ฌ ๋ด์ฌ ์์จํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ ๋
ธ๋ ฅํ์ต๋๋ค.
- JPA
- Querydsl
- Springboot
- Gradle
- SpringSecurity
- express.js
- Socket.io
- DB - MySQL / redis
์ ํฌ Backend
๋ SSAFY์์ ๋ฐฐ์ ๋ java
์ spring
๊ณผJPA
๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฆฌ๋ ์์น์ ์ง์ผ๊ฐ๋ฉฐ ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์๋น์ค๋ค์ ์ค๊ณํ์ต๋๋ค. ๋ํ ์ธ๋ฉ๋ชจ๋ฆฌ ์ผ์์ธ redis์ ๋์ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ๋ฅผ ์ํด queryDSL
, ๋ณด์์ด ์ค์ํ ์ฃผ์ ์ธ ๋งํผ security
๋ฑ์ ์ด์ฉํด REST API server
์ ๊ณ ๋ํ ์งํ ํ์์ต๋๋ค.
- docker
- ec2
- jenkins
- mattermost
- gitlab
DevOps
๋
- ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ์ ์ง์คํ ์ ์๊ณ
- ๊ฐ๋ฐ์๋ค๊ฐ์ ์ํต์ ์ํํ๊ฒ ํ๋ ๊ฒ์ด ์ต์ฐ์ ๋ชฉํ์์ต๋๋ค.
์ด๋ฅผ ์ํด docker
, jenkins
, mattermost
๋ฅผ ์ด์ฉํด ์๋ ๋น๋, ํ
์คํธ, ๋ฐฐํฌ๋ฅผ ์ํํ์ต๋๋ค. ๊ทธ ๋ฟ๋ง ์๋๋ผ ๊ฐ ๊ฐ๋ฐ์๋ค์ด ๋น๋๋ ๋ฐฐํฌ์ ์ ๊ฒฝ์ฐ์ง ์๋๋ก ํ์ผ๋ฉฐ, dev์๋ฒ๋ฅผ ๋ถ๋ฆฌ์์ผ ๋
๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ ๋ด์ฉ์ ์ค์๊ฐ์ผ๋ก ํ์ธ ํ ์ ์๋๋ก ๊ตฌ์ถํ์ต๋๋ค.
๐ UCC ๋ฐ๋ก๊ฐ๊ธฐ
- Branch
master -> dev -> feature/๋ด๊ฐ๋ง๋ค๊ฒ(์์ฑํด์ merge ํ ์ญ์ )
1) clone
2) git checkout -b dev origin/dev
: ์ค์ ์ ์ฅ์์ ์ฐ๊ฒฐ๋ ๊ฐ๋ฐ ๋ธ๋์น๋ฅผ ๋ง๋ค๊ธฐ
3) git checkout -b [feature/FE(BE)/๋ด๊ฐ๋ง๋ค๊ฒ(ํ์ด์ง๋จ์๋ก)] dev
ex) git checkout -b feature/FE/account dev
: ๊ธฐ๋ฅ๊ฐ๋ฐ์ ์ํค ๊ฒฉ๋ฆฌ๋ branch ์์ฑ
[์ฃผ์์ฌํญ]
- ๊ฐ์ ๋งก์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ ์ ๊น ์ปค๋ฐ ๋ฉ์์ง ์ปจ๋ฒค์
์ ๋ฐ๋ผ feature ๋ธ๋์น๋ฅผ ์๋ก ํ์ ๊ตฌํ์ ์์ํ๋ค.
- ๋ณธ์ธ์ด ์ง์ ์์ฑํ ๋ธ๋์น ์ธ์์ ์์
ํด์ผํ ๊ฒฝ์ฐ ๋ธ๋์น๋ฅผ ์์ฑํ ๋น์ฌ์์ ๋จผ์ ์๊ธฐ๋ฅผ ๋๋์.
- feature ๋ธ๋์น์์ ์ปค๋ฐ์ ์์ฑํ ๋ README์ ์๋ <๊น ์ปค๋ฐ ๋ฉ์์ง ์ปจ๋ฒค์
>์ ์ค์ํ์ฌ ์์ฑํ๋ค.
- Commit
ํญ์ ์ฝ๋ฉํ๊ธฐ์ ์ dev ๊ฐ์ ธ์ค๊ธฐ
1) git checkout dev
2) git pull origin dev
- Commit Message Structure (์ปค๋ฐ ๋ฉ์ธ์ง ๊ตฌ์กฐ)
์์ -> feat[be]: dnjasndanald
[์ปค๋ฐ ํ์
(Commit Type) ]
feat : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
fix : ๋ฒ๊ทธ ์์
docs : ๋ฌธ์ ์์
style : ์ฝ๋ ํฌ๋งทํ
, ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ
refactor : ์ฝ๋ ๋ฆฌํฉํ ๋ง
test : ํ
์คํธ ์ฝ๋, ๋ฆฌํฉํ ๋ง ํ
์คํธ ์ฝ๋ ์ถ๊ฐ
chore : ๋น๋ ์
๋ฌด ์์ , ํจํค์ง ๋งค๋์ ์์
[์์]
feat[be]: dnjasndanald
- Push
push๋ ํ๋ฃจ์ ํ ๋ฒ ! ์๊ธฐ ์ง์ ์ ํ๊ธฐ!
๋ฐ๋์ ์์ ์ด ํ์ฌ ๊ฐ๋ฐ์ ์งํํ๊ณ ์๋ ๋ธ๋์น์์ pushํ๊ธฐ!
- **Merge Request **
1) git push origin [feature/๋ด๊ฐ๋ง๋ค๊ฒ] ====> ๋ฐ๋์ ๋ด๊ฐ ๊ฐ๋ฐ์์ฑํ ๋ธ๋์น์์!
ex) git push origin feature/login
2) GUI์์ create new merge request
3) feature/๋ด๊ฐ๋ง๋ค๊ฒ -> dev์ผ๋ก ์์ฒญ ์ค์
[์ฃผ์์ฌํญ]
- ๊ธฐ๋ฅ ํ๋๊ฐ ๊ตฌํ์ด ์๋ฃ๋๋ฉด GitLab์์ Merge Requests ๊ธฐ๋ฅ์ ํ์ฉํ๋ค.
- feature ๋ธ๋์น๋ฅผ ํฉ์น ๋๋ ํด๋น ๋ธ๋์น์ ๊ด๋ จ๋ ๋ค๋ฅธ ํ์๋ค๊ณผ ํจ๊ป ์์ํ๋ฉด์ Merge Requests๋ฅผ ์งํํ๋ค.
- Merge Requests๋ฅผ ์งํํ๋ ํ์์ด ์น์์ค์ ํ๋ฉด ๊ณต์ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
๋๋ฒจ๋กญ์ ๋จธ์งํ ๋ ๋ผ๋ฒจ๋ก FE/BE์ธ์ง ๋ฌ์์ฃผ๊ธฐ
๋จธ์ง ๋์คํฌ๋ฆฝ์
MASTER์ ํ ๋๋ ๋ฌ๊ณ
- ์์ฑํด์ mergeํ ๋ธ๋์น๋ ์ญ์
1) git checkout dev
: dev ๋ธ๋์น๋ก ์ฎ๊ฒจ๊ฐ์ ์ญ์
2) git branch -d [merge์ํจ๋ธ๋์น ์ด๋ฆ]
ex) git branch -d feature/login
: ์์ฑํด์ mergeํ ๋ธ๋์น ์ญ์
- EPIC
์ฃผ์ ๊ธฐ๋ฅ๋ณ๋ก ์นดํ
๊ณ ๋ฆฌ๋ฅผ ๋๋ ์ ์์ฑํ๋ค.
- STORY
EPIC์ ์ธ๋ถ๋ด์ฉ ์์ฑ ํ ๋ด๋น์์ค์ ๋ฐ ๋งค์ฃผ Sprint์ ์ฌ๋ฆฌ๊ธฐ
#๋ฏธ๋ฆฌ Story ์ ๋ถ ์์ฑ์ ๋งค ์ฃผ ์์์ผ ๋ด๋น์์ ๊ทธ ์ฃผ์ ํด์ผํ ์ผ ๊ฒฐ์ ํ ๊ทธ ์ฃผsprint๋ก ๋๊ธฐ๊ธฐ & ๊ธฐ๊ฐ ์ค์ & ํฌ์ธํธ ๋ฐฐ์
npm install
npm run serve
- main server
- live server
# ์ธํ๋ผ ๋ฌธ์ v1.3 ์ ์คํ ํ์
docker-compose up -d