Skip to content

UMC-BRUSHWORK/backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽจ BRUSHWORK

๋ฏธ๋Œ€์ƒ ์กธ์—… ์ž‘ํ’ˆ ๋ฐ ์•„๋งˆ์ถ”์–ด ๋Œ€์ƒ ์˜ˆ์ˆ  ์ž‘ํ’ˆ ๊ฑฐ๋ž˜ ํ”Œ๋žซํผ

๐Ÿ“ฝ๏ธ ์‹œ์—ฐ ์˜์ƒ

๐Ÿ’ป ๋ฐœํ‘œ ์ž๋ฃŒ

๐ŸŽฏ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๊ฐœ๋ฐœ ๊ธฐ๊ฐ„: 2023.11 ~ 2024.06 (7๊ฐœ์›”)

๐ŸŒŸ ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

  • ๋ฏธ๋Œ€์ƒ ์กธ์—… ์ž‘ํ’ˆ์˜ ์ฒด๊ณ„์ ์ธ ๊ฑฐ๋ž˜ ํ™˜๊ฒฝ ์กฐ์„ฑ
  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ํ†ตํ•œ ์›ํ™œํ•œ ์†Œํ†ต
  • ์•ˆ์ •์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค ์ธํ”„๋ผ ๊ตฌ์ถ•

๐Ÿ™‹ ํŒ€์›

PM & DESIGNER

๋‹‰๋„ค์ž„ Github
์นผ๋ฆฌ/๊น€๋ฏผ์ • (PM/ํŒ€์žฅ) @minjeong-kim-git
๋ฐ•์Šค/๊ฐ•์Šนํ˜„ (DESIGNER) @seunghyeonKang

FRONTEND

๋‹‰๋„ค์ž„ Github
์„ผ/๋ฐ•์„ธ์€ (ํ”„๋ก ํŠธ ํŒŒํŠธ์žฅ) @marchfirst01
๋ชฐ๋ฆฌ/์ด์€์ˆ˜ @EunSo0
์ฑ ๋ฆฌ/์ตœ์œ ๋ฆฌ @techncherry
์ฃผ๋‹ˆ/๊น€ํ•œ์ฃผ @hanjuuuuuu

BACKEND

๋‹‰๋„ค์ž„ Github ์—ญํ• 
์„€๋„Œ/ํ•œ์ƒ์€ (๋ฐฑ์—”๋“œ ํŒŒํŠธ์žฅ) @silvarge ์ฑ„ํŒ…/๊ฒฐ์ œ/๊ด€์‹ฌ ์ž‘ํ’ˆ ๋„๋ฉ”์ธ ๋‹ด๋‹น
๋ง๋ฆฌ๋ถ€/์ •์œคํ˜ธ @yunho0310 ์‚ฌ์šฉ์ž, ์ธ์ฆ ๋„๋ฉ”์ธ ๋‹ด๋‹น
์ด๋…ธ/์žฅ์˜ˆ์› @eynow1159 ์ž‘ํ’ˆ ๋„๋ฉ”์ธ, ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๋‹ด๋‹น

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ–ผ๏ธ ์ž‘ํ’ˆ ๊ด€๋ฆฌ

  • ์ž‘ํ’ˆ ๋“ฑ๋ก: ์ƒ์„ธ ์ •๋ณด์™€ ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•œ ์ž‘ํ’ˆ ์—…๋กœ๋“œ, ํŒ๋งค ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด ์ž‘์„ฑ์„ ํ†ตํ•œ ์ž‘ํ’ˆ ํŒ๋งค ๋“ฑ๋ก
  • ์ž‘ํ’ˆ ๊ฒ€์ƒ‰: ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์œผ๋กœ ์ž‘ํ’ˆ ๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ๋ง
  • ๊ด€์‹ฌ ์ž‘ํ’ˆ: ๋งˆ์Œ์— ๋“œ๋Š” ์ž‘ํ’ˆ์„ ์œ„์‹œ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ

๐Ÿ’ฌ ์‹ค์‹œ๊ฐ„ ์†Œํ†ต(DM)

  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…: Socket.io ๊ธฐ๋ฐ˜ ๋ฉ”์‹œ์ง€ ์†ก์ˆ˜์‹ , ๊ตฌ๋งค ์˜์‚ฌ ํ‘œํ˜„ ๋ฐ ๊ฑฐ๋ž˜ ๋…ผ์˜
  • ์ฑ„ํŒ…๋ฐฉ ๊ด€๋ฆฌ: ๊ฑฐ๋ž˜ ๋ฐ ์œ ์ €๋ณ„ ๋…๋ฆฝ์ ์ธ ์ฑ„ํŒ…๊ณต๊ฐ„ ์ œ๊ณต
  • ๋ฉ”์‹œ์ง€ ํžˆ์Šคํ† ๋ฆฌ: ๊ณผ๊ฑฐ ๋Œ€ํ™” ๋‚ด์šฉ ์ €์žฅ ๋ฐ ์กฐํšŒ

๐Ÿค ๊ฒฐ์ œ

  • ๊ฒฐ์ œ: ํ† ์Šค ๊ฒฐ์ œ API๋ฅผ ์ด์šฉํ•œ ๊ฒฐ์ œ ์‹œ์Šคํ…œ ๊ตฌํ˜„ (ํ…Œ์ŠคํŠธ ๊ฑฐ๋ž˜๊นŒ์ง€๋งŒ ๊ตฌํ˜„)
  • ๊ฑฐ๋ž˜ ๋‚ด์—ญ: ๊ณผ๊ฑฐ ๊ฑฐ๋ž˜ ๊ธฐ๋ก ์กฐํšŒ

๐Ÿ” ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ

  • ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ: JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ
  • ์†Œ์…œ ๋กœ๊ทธ์ธ: Kakao, Google ์†Œ์…œ ๋กœ๊ทธ์ธ
  • ํ”„๋กœํ•„ ๊ด€๋ฆฌ: ๊ฐœ์ธ์ •๋ณด ๋ฐ ์ž‘ํ’ˆ ์ด๋ ฅ ๊ด€๋ฆฌ

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

Backend

Node.js Express.js MySQL Socket.io

Infrastructure

AWS GitHub Actions

Tools & Libraries

JWT Swagger

์ƒ์„ธ ๊ธฐ์ˆ  ์Šคํƒ

  • 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
Loading

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ - Layered Architecture

๐Ÿ“ฆ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

Ground Rules

๐Ÿ“‹ ๋ชฉ์ฐจ

๐ŸŒฟ Branch ์ „๋žต

Branch ์ข…๋ฅ˜

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

Branch Workflow

main โ† hotfix โ† develop โ† feature
                     โ†– refactor

์ฐธ๊ณ : Git Flow ์ƒ์„ธ ๊ฐ€์ด๋“œ

๐Ÿ’ฌ Commit Message ๊ทœ์น™

๊ธฐ๋ณธ ๊ตฌ์กฐ

[Type] ์ œ๋ชฉ (50์ž ์ด๋‚ด)

๋ณธ๋ฌธ (์„ ํƒ์‚ฌํ•ญ - 72์ž ๋‹จ์œ„๋กœ ์ค„๋ฐ”๊ฟˆ)

๊ผฌ๋ฆฌ๋ง (์„ ํƒ์‚ฌํ•ญ)

์‹ค์ œ ์˜ˆ์‹œ

โœจ [Feat] ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ API ๊ตฌํ˜„

JWT ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ ๊ตฌํ˜„
- ์ด๋ฉ”์ผ/๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฒ€์ฆ ๋กœ์ง ์ถ”๊ฐ€
- ํ† ํฐ ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ์„ค์ • (24์‹œ๊ฐ„)

Resolves: #123
Ref: #456

About

BRUSHWORK-backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages