๐ Naming : ์๋น์ค์ ์ฌ๋ก๊ฑด์ธ "๊น๋ ๋ด๊ฐ ๊น"์ ์ด๊ฐ์ ์ด๋ ค์ ๋ง๋ ํํ.
- ๊ธฐ๊ฐ: 24.01.08 ~ 24.02.16 (6์ฃผ)
- ์ธ์: 6๋ช (BE_3, FE_3)
- ํธ๋: ์น๋์์ธ
์น๊ตฌ ๋๋ฆฌ๊ธฐ SNS ๐คช
- ๋กค ์ฑ๋ด ๋ผ์ด๋ธ ์ค๊ณ
- ์ค์๊ฐ ์ฑํ
- ์นํจ ์์ธก ํตํ ํฌ์ธํธ ์ ๋ฆฝ
- ๋๋ฆฌ๊ธฐ ์์ดํ ๊ตฌ๋งค์ ์ฌ์ฉ
- ๋ชปํ ๋๊ฐ ์ ๋ก๋
- ์ผ์ฑ์ฒญ๋ SW์์นด๋ฐ๋ฏธ 2ํ๊ธฐ ๊ณตํต ํ๋ก์ ํธ ์ฐ์์ (24.02.16)
- Visual Studio Code(IDE) `1.81.1`
- HTML5, CSS3, Javascript(ES6)
- React : `18.2.0`
- Electron `28.1.4`
- Stompjs `2.3.3`
- Vite `5.0.8`
- Typescript `5.2.2`
- Tailwind CSS `3.4.1`
- Zustand `4.4.7`
- Tanstack React Query `5.17.15`
- Nodejs `20`
- Intellij : `2023.3.2`
- JVM OpenJDK : `17`
- JWT : `0.11.5`
- Spring Boot : `3.0.13`
- JAVA Spring Data JPA
- Spring Security
- SSEEmitter
- OAuth : `6.8.0`
- Lettuce : `6.2.7`
- spring-boot-WebSocket : `10.1.16`
- Gradle
- ORM : JPA
- AWS EC2
- Nginx : `1.18.0`
- Ubuntu : `20.04 LTS`
- Docker : `25.0.2`
- Jenkins :`2.443`
- Docker Hub
(์ฑ์์์ ์ฑํ ์ด OS๋ ์ด์ด๋ฅผ ํตํด ๊ฒ์ ๋ ์ด์ด ์๋จ์ผ๋ก ๋ ธ์ถ๋ฉ๋๋ค.)
- [๋ผ์ด๋ธ์ค๊ณ๋ฐฉ - ๊ฒ์ํ๋ ์ด์ด] ์ฑํ ๋ด์ฉ์ด ๊ฒ์ ๋ ์ด์ด ์๋จ์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค.
(ํฌํ์ด ์๋๋ฏผ๋์ ์ฒ์นํ์ต๋๋ค.)
(์ ์ฃฝ์๋๋ฐ?)
- [๊ฒ์ํ๋ ์ด์ด - ๋ผ์ด๋ธ์ค๊ณ๋ฐฉ] ์ธ๊ฒ์ ์ด๋ฒคํธ๊ฐ ๋ด ๋ฉ์์ง๋ก ์ฑํ ๋ฐฉ์ ์ค๊ณ๋ฉ๋๋ค.
- ํ์ฌ ๊ฒ์์ค์ธ ์น๊ตฌ์ ๋ผ์ด๋ธ ์ฑํ ๋ฐฉ ์ ์ฅ
- ์น๊ตฌ๋ค์ ์๋ก ์ฌ๋ผ์จ ๋๊ฐ ํ์ธ
- ํ๋กํ ํ์ด์ง, ์์ดํ ์ต, ๋ฉ์ธ์งํจ, ์๋ฆผ ํ์ธ
- ์ฑ ๋ค์ด๋ก๋ ๋ฐ ์๋น์ค ์ฝ๊ด ํ์ธ
- ์น๊ตฌ ์ฐพ๊ธฐ
- ์ผ๋ฐ ์ฑํ
- ์ฌ์ง ์ฑํ
- ์น๊ตฌ ๋๊ฐ ์ฑํ
- ์ฑํ ์ ์น๊ตฌํํ window ์๋ฆผ ๊ธฐ๋ฅ
- ํ๋กํ ์ฃผ์ธ ๋๊ฐ ํ์ธ
- ํ๋กํ ์ฃผ์ธ ๋ช ์์ ์ ๋น(์นญํธ) ํ์ธ
- ํ๋กํ ํธ์ง
- ์ ๋๊ฐ ์๋ฆผ์ ๋๊ฐ์ผ๋ก ์ด๋
- ์ ์นญํธ ์๋ฆผ์ ํ๋กํ๋ก ์ด๋
- ์ ๋๊ธ ์๋ฆผ์ ๋๊ฐ์ผ๋ก ์ด๋
- ์น๊ตฌ ์์ฒญ์ ์น๊ตฌ ํ๋กํ๋ก ์ด๋
- ์น๊ตฌ๋ค์ ํ๋กํ ํ์ธ
- ์น๊ตฌ ์นด์นด์ค ์ด๋ฉ์ผ๋ก ๊ฒ์
- ์นญํธ ์ง์ ๊ถ ์ฌ์ฉ
- ๊ฐ์ ์นญ์ฐฌ๊ถ ์ฌ์ฉ
- ํ์ฑ๊ธฐ ์ฌ์ฉ
- 1:1 ์ฑํ
- ์ด๊ธด๋ค, ์ง๋ค๋ก ๋ฐฐํ ๊ฐ๋ฅ
- ์นํจ์ ๋ฐ๋ผ ์ ์ฐ
- ์น๊ตฌ์ ์๊ธด ๋๊ฐ์ ์ซ์ด์
- ์น๊ตฌ์ ๋๊ฐ์ ๋๊ธ ๋ฌ๊ธฐ
- https
- certbot๊ณผ Nginx๋ฅผ ํตํ SSL ์ธ์ฆ
- EC2 ์ ๊ณต ๋๋ฉ์ธ 'http://i10D110.p.ssafy.io/' ์ฌ์ฉํ์ฌ ์ธ์ฆ
- ์๋ ๋ฐฐํฌ
- Gitlab์์ web hook ์ค์ ์ ํตํด jenkins ๋น๋ ์ ๋ฐ
- jenkins์ shell script ์คํ ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ git pull -> docker build -> run
- Nginx๋ก reverse proxy ์ค์
- Git
- Jira
- Notion
- Mattermost
- Discord
- Gerrit
- Jenkins
# Feat : #์ด์๋ฒํธ ๊ธฐ๋ฅ
##### ์ ๋ชฉ์ ์ต๋ 50 ๊ธ์๊น์ง๋ง ์
๋ ฅ ############## -> |
# ๋ณธ๋ฌธ์ ์์ ์์ฑ
######## ๋ณธ๋ฌธ์ ํ ์ค์ ์ต๋ 72 ๊ธ์๊น์ง๋ง ์
๋ ฅ ########################### -> |
- ๋ณธ๋ฌธ ๋ด์ฉ
# issue close๋ ๋ณธ๋ฌธ ์ตํ๋จ์ ๊ณต๋ฐฑ ํ๋ ์๋์ ์์ฑ
# --- COMMIT END ---
# <ํ์
> ๋ฆฌ์คํธ
# Feat : ๊ธฐ๋ฅ (์๋ก์ด ๊ธฐ๋ฅ)
# Fix : ๋ฒ๊ทธ (๋ฒ๊ทธ ์์ )
# Refactor: ๋ฆฌํฉํ ๋ง
# Test : ํ
์คํธ (ํ
์คํธ ์ฝ๋ ์ถ๊ฐ, ์์ , ์ญ์ : ๋น์ฆ๋์ค ๋ก์ง์ ๋ณ๊ฒฝ ์์)
# Chore : ๊ธฐํ ๋ณ๊ฒฝ์ฌํญ (๋น๋ ์คํฌ๋ฆฝํธ ์์ ๋ฑ ์์ํ ์์ ๋ค)
# Style : ์ธ๋ฏธ์ฝ๋ก ์ถ๊ฐ, ๋ณ์๋ช
๋ณ๊ฒฝ, ์ฃผ์ ์ถ๊ฐ/์ ๊ฑฐ
# Docs : ํ์ผ, ๋ฌธ์(์ด๋ฏธ์ง ๋ฑ) ์ถ๊ฐ, ์ญ์
# Build : ๋น๋ ๊ด๋ จ ํ์ผ ์์
# CI : CI ๊ด๋ จ ์ค์ ์์
# ------------------
# ๋ชจ๋ ๋ด์ฉ์ ํญ์ ํ๊ธ๋ก ์์ฑ (ํ์
์ ์์ ์์ด๋ก)
# ์ ๋ชฉ์ ๋ช
๋ น๋ฌธ์ผ๋ก
# ์ ๋ชฉ ๋์ ๋ง์นจํ(.) ๊ธ์ง
# ์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ ํ ์ค ๋์ ๋ถ๋ฆฌํ๊ธฐ
# ๋ณธ๋ฌธ์ "์ด๋ป๊ฒ" ๋ณด๋ค "๋ฌด์์", "์"๋ฅผ ์ค๋ช
ํ๋ค.
# ๋ณธ๋ฌธ์ ์ฌ๋ฌ์ค์ ๋ฉ์์ง๋ฅผ ์์ฑํ ๋ "-"๋ก ๊ตฌ๋ถ
# ------------------
ex1) Feat : S10P12D110-17 ๋ก๊ทธ์ธ ๊ตฌํ
๋ด์ฉ ...
S10P12D110-53 #done #comment ๋ซ๊ธฐ
ex2) Feat/๋ก๊ทธ์ธ : ํจ์ค์๋ ์ํธํ
๋ด์ฉ ...
S10P12D110-53 #done #comment ๋ซ๊ธฐ
## ๐ ์ ๋ชฉ
## ๐ ์์
๋ด์ฉ
### PR ํ์
- [ ] ๊ธฐ๋ฅ ์ถ๊ฐ
- [ ] ๊ธฐ๋ฅ ์ญ์
- [ ] ๋ฒ๊ทธ ์์
- [x] ์ฝ๋ ๋ฆฌํฉํ ๋ง
### ๋ฐ์ ๋ธ๋์น
feat/S10P12D110-17-signup -> develop
### ๋ณ๊ฒฝ ์ฌํญ
- ๊ธฐ์กด username๋ง ๋ฐ๋ก ๊ฐ์ ธ๊ฐ๋ ํํ์์ ๊ด๊ณ๋ฅผ ๋งคํํ์ฌ User ๊ฐ์ฒด๋ฅผ ํต์งธ๋ก ์ฐธ์กฐํ๋๋ก ๋ณ๊ฒฝ
- ๊ฒ์๊ธ, ๋๊ธ ๋ชจ๋ ์์ /์ญ์ ์ username๊ณผ ์ผ์นํ๋๊ฒ ์๋ userId์ ์ผ์นํ๋ ๊ฐ์ ์กฐํ
### ํ
์คํธ ๊ฒฐ๊ณผ
[] Postman ํ
์คํธ ๊ฒฐ๊ณผ ์ด์ ์์ต๋๋ค.
[] local ci ํ
์คํธ ๊ฒฐ๊ณผ ์ด์ ์์ต๋๋ค.
์ค์ธ์ | ์ ์๋ฏผ | ์ด์๋ฏผ | ๊น์ํ | ๊น์ง์ฐ | ์ดํด๊ฑด |
---|---|---|---|---|---|
Contributors | Role | Position |
---|---|---|
ใ์ค์ธ์ | ํ์ฅ, Backend Lead |
- ์ ์ ํ๋ก์ฐ ์์ฑ - ์คํ๋ง ์ํ๋ฆฌํฐ ์ ์ฉ - JWT filter ์ ์ฉ - ๊ณตํต ์๋ต API ์์ฑ - ๊ณตํต ์๋ฌ ์๋ต API ์์ฑ - ์นด์นด์ค ์์ ๋ก๊ทธ์ธ ๊ตฌํ - ๋๊ฐ ๊ด๋ จ API ์์ฑ - ์ ์ ๋ฐ์ดํฐ ๊ด๋ จ API ์์ฑ - ๊ฐ๋จํ Front API ์์ฑ - Infra ๊ตฌ์ฑ ( AWS RDS, EC2, Nginx Reverse Proxy, Jenkins Pipeline, Dockerfile) |
ใ์ ์๋ฏผ | ํ์, Backend, ๋ฐํ์ |
- WebSocket ์ฑํ
์๋ฒ ๊ตฌํ(STOMP ์ ์ฉ) - ๋กค API ๋ด๋นํ์ฌ ๋ช ์ธ์ ์์ฑ - ๋กค LOCAL API ์ด์ฉํ ํฌ๋กค๋ง - socket s3๋ฅผ ์ด์ฉํ ์ด๋ฏธ์ง ์ ๋ก๋ ๋ฐ ์์ผ ํต์ ์ ์ด๋ฏธ์ง๋ ๋ณด๋ผ ์ ์๋๋ก ๊ตฌํ - ์ฑํ ๊ด๋ จ API ์์ฑ - ๋ฐฐํ ๊ด๋ จ API ๊ตฌํ(์คํ๋ง ์ค์ผ์ค๋ฌ ์ด์ฉ) - ์ฑํ Front ํ๋ฉด ๊ฒฌ๋ณธ ๊ตฌํ - ๋ฐฐํ Front ํ๋ฉด ๊ฒฌ๋ณธ ๊ตฌํ |
ใ์ด์๋ฏผ | ํ์, Backend, PM |
- SSE ์ด์ฉํ ์ค์๊ฐ ์๋ฆผ, ํ์ฑ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํ(Backend SseEmitter ์ ์ฉ, Frontend EventSourcePolyfill ์ ์ฉ) - ์์ดํ ์ต ๊ตฌ์ (์นญํธ, ๊ฐ์ ์นญ์ฐฌ๊ถ, ํ์ฑ๊ธฐ) ๊ด๋ จ API ์์ฑ - ์นญํธ ๊ด๋ จ API ์์ฑ - ์น๊ตฌ ๊ด๋ จ API ์์ฑ - JUnit ์๋น์ค๋จ ๋จ์ ํ ์คํธ ์์ฑ |
ใ๊น์ํ | ํ์, Frontend Lead |
- ์ผ๋ ํธ๋ก ํฌํ
๋ฐ ๊ฐ๋ฐ & PWA ํฌํ
- ํด๋ผ์ด์ธํธ & ๋ผ์ด๋ธ ์ฑํ ์ฐฝ ์ฐ๋ - ์ ํ๊ธฐ์ ์ฐ๊ตฌ - UCC ์ ์ |
ใ๊น์ง์ฐ | ํ์, Frontend, ์๊ธฐ |
- Notion ์ ํตํด ํ์
๋ฌธ์ ๊ด๋ฆฌ ๋ฐ ํ์๋ก ์์ฑ - Figma ํ์ฉํ์ฌ ๋์์ธ ๋ฐ ์์ด์ดํ๋ ์ ์์ฑ - react-ga4 ํ์ฉํ์ฌ google analytics ์ ์ฉ - ์นด์นด์ค ๋ก๊ทธ์ธ API ํ์ฉํ์ฌ ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ ๊ตฌํ - ๋๊ฐ, ๋๊ธ CRUD ๊ฐ๋ฐ - React-Query ์ฌ์ฉํ์ฌ ๋ฌดํ ์คํฌ๋กค ๊ตฌํ - UI, UX ๊ฐ์ |
ใ์ดํด๊ฑด | ํ์, Frontend, ์ด๋ฌด |
- WebSocket ์ฑํ
ํ๋ก ํธ - ์น UI/UX - PWA ๋ฐ์ํ ๋ชจ๋ฐ์ผ UI |