๋ฏธ๋์ ์กธ์ ์ํ ๋ฐ ์๋ง์ถ์ด ๋์ ์์ ์ํ ๊ฑฐ๋ ํ๋ซํผ
๊ฐ๋ฐ ๊ธฐ๊ฐ: 2023.11 ~ 2024.06 (7๊ฐ์)
- ๋ฏธ๋์ ์กธ์ ์ํ์ ์ฒด๊ณ์ ์ธ ๊ฑฐ๋ ํ๊ฒฝ ์กฐ์ฑ
- ์ค์๊ฐ ์ฑํ ์ ํตํ ์ํํ ์ํต
- ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์๋น์ค ์ธํ๋ผ ๊ตฌ์ถ
| ๋๋ค์ | Github |
|---|---|
| ์นผ๋ฆฌ/๊น๋ฏผ์ (PM/ํ์ฅ) | @minjeong-kim-git |
| ๋ฐ์ค/๊ฐ์นํ (DESIGNER) | @seunghyeonKang |
| ๋๋ค์ | Github |
|---|---|
| ์ผ/๋ฐ์ธ์ (ํ๋ก ํธ ํํธ์ฅ) | @marchfirst01 |
| ๋ชฐ๋ฆฌ/์ด์์ | @EunSo0 |
| ์ฑ ๋ฆฌ/์ต์ ๋ฆฌ | @techncherry |
| ์ฃผ๋/๊นํ์ฃผ | @hanjuuuuuu |
| ๋๋ค์ | Github | ์ญํ |
|---|---|---|
| ์๋/ํ์์ (๋ฐฑ์๋ ํํธ์ฅ) | @silvarge | ์ฑํ /๊ฒฐ์ /๊ด์ฌ ์ํ ๋๋ฉ์ธ ๋ด๋น |
| ๋ง๋ฆฌ๋ถ/์ ์คํธ | @yunho0310 | ์ฌ์ฉ์, ์ธ์ฆ ๋๋ฉ์ธ ๋ด๋น |
| ์ด๋ ธ/์ฅ์์ | @eynow1159 | ์ํ ๋๋ฉ์ธ, ์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๋ด๋น |
- ์ํ ๋ฑ๋ก: ์์ธ ์ ๋ณด์ ์ด๋ฏธ์ง๋ฅผ ํตํ ์ํ ์ ๋ก๋, ํ๋งค ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด ์์ฑ์ ํตํ ์ํ ํ๋งค ๋ฑ๋ก
- ์ํ ๊ฒ์: ๋ค์ํ ์กฐ๊ฑด์ผ๋ก ์ํ ๊ฒ์ ๋ฐ ํํฐ๋ง
- ๊ด์ฌ ์ํ: ๋ง์์ ๋๋ ์ํ์ ์์๋ฆฌ์คํธ์ ์ ์ฅ
- ์ค์๊ฐ ์ฑํ : Socket.io ๊ธฐ๋ฐ ๋ฉ์์ง ์ก์์ , ๊ตฌ๋งค ์์ฌ ํํ ๋ฐ ๊ฑฐ๋ ๋ ผ์
- ์ฑํ ๋ฐฉ ๊ด๋ฆฌ: ๊ฑฐ๋ ๋ฐ ์ ์ ๋ณ ๋ ๋ฆฝ์ ์ธ ์ฑํ ๊ณต๊ฐ ์ ๊ณต
- ๋ฉ์์ง ํ์คํ ๋ฆฌ: ๊ณผ๊ฑฐ ๋ํ ๋ด์ฉ ์ ์ฅ ๋ฐ ์กฐํ
- ๊ฒฐ์ : ํ ์ค ๊ฒฐ์ API๋ฅผ ์ด์ฉํ ๊ฒฐ์ ์์คํ ๊ตฌํ (ํ ์คํธ ๊ฑฐ๋๊น์ง๋ง ๊ตฌํ)
- ๊ฑฐ๋ ๋ด์ญ: ๊ณผ๊ฑฐ ๊ฑฐ๋ ๊ธฐ๋ก ์กฐํ
- ํ์๊ฐ์ /๋ก๊ทธ์ธ: JWT ๊ธฐ๋ฐ ์ธ์ฆ ์์คํ
- ์์ ๋ก๊ทธ์ธ: Kakao, Google ์์ ๋ก๊ทธ์ธ
- ํ๋กํ ๊ด๋ฆฌ: ๊ฐ์ธ์ ๋ณด ๋ฐ ์ํ ์ด๋ ฅ ๊ด๋ฆฌ
์์ธ ๊ธฐ์ ์คํ
- Backend: JavaScript(Node.js), Express.js, MySQL(AWS RDS)
- Infrastructure: AWS Elastic Beanstalk, AWS RDS, AWS S3, AWS Route 53, AWS Certificate Manager
- DevOps: Docker, GitHub Actions
- Libraries: Socket.io, Swagger-jsdoc, Swagger-ui-express, Multer/Multer-s3, JWT, Bcrypt, Cookie-parser, Express-session, CORS, Dotenv, Moment-timezone, UUID
graph TB
subgraph "Client"
A[Frontend]
end
subgraph "DNS & SSL"
B[AWS Route 53]
C[AWS Certificate Manager]
end
subgraph "AWS Elastic Beanstalk"
D[Load Balancer]
E[Node.js Application Server<br/>Express.js + Socket.io]
end
subgraph "Storage Layer"
F[AWS RDS MySQL]
G[AWS S3]
end
subgraph "CI/CD Pipeline"
H[GitHub Actions<br/>Build by babel]
end
A --> B
B --> C
C --> D
D --> E
E --> F
E --> G
H --> D
๐ฆbrushwork_be
โฃ ๐config
โ โฃ ๐db.connect.js
โ โฃ ๐error.js
โ โฃ ๐response.js
โ โ ๐response.status.js
โฃ ๐public
โ โ ๐favicon.ico
โฃ ๐src
โ โฃ ๐controllers
โ โฃ ๐dtos
โ โฃ ๐middleware
โ โฃ ๐models
โ โฃ ๐providers
โ โฃ ๐routes
โ โ ๐services
โฃ ๐.env
โฃ ๐.gitignore
โฃ ๐babel.config.json
โฃ ๐index.js
โฃ ๐package.json
โฃ ๐README.md
โฃ ๐swagger-output.json
โฃ ๐swagger.js
โ ๐yarn.lock
Git Flow ๊ธฐ๋ฐ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ธ๋์น ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
์๊ตฌ ๋ธ๋์น
main: ์ ํ ์ถ์์ฉ ์์ ๋ธ๋์นdevelop: ๊ฐ๋ฐ ํตํฉ ๋ธ๋์น (์ฐจ๊ธฐ ๋ฐฐํฌ ์ค๋น)
์์ ๋ธ๋์น
feature/{์ด์๋ฒํธ}: ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ- ์:
feature/123,feature/login-api
- ์:
refactor/{์ด์๋ฒํธ}: ๊ธฐ์กด ๊ธฐ๋ฅ ๋ฆฌํฉํฐ๋ง- ์:
refactor/456,refactor/auth-service
- ์:
hotfix/{์ด์๋ฒํธ}: ์ด์ ํ๊ฒฝ ๊ธด๊ธ ๋ฒ๊ทธ ์์ - ์:
hotfix/789,hotfix/critical-error
- ์:
release/{๋ฒ์ }: ๋ฐฐํฌ ์ค๋น ๋ธ๋์น- ์:
release/v1.2.0
- ์:
main โ hotfix โ develop โ feature
โ refactor
์ฐธ๊ณ : Git Flow ์์ธ ๊ฐ์ด๋
[Type] ์ ๋ชฉ (50์ ์ด๋ด)
๋ณธ๋ฌธ (์ ํ์ฌํญ - 72์ ๋จ์๋ก ์ค๋ฐ๊ฟ)
๊ผฌ๋ฆฌ๋ง (์ ํ์ฌํญ)
โจ [Feat] ์ฌ์ฉ์ ๋ก๊ทธ์ธ API ๊ตฌํ
JWT ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ์์คํ
๊ตฌํ
- ์ด๋ฉ์ผ/๋น๋ฐ๋ฒํธ ๊ฒ์ฆ ๋ก์ง ์ถ๊ฐ
- ํ ํฐ ๋ง๋ฃ ์๊ฐ ์ค์ (24์๊ฐ)
Resolves: #123
Ref: #456