Skip to content

cocos-pet/cocos-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

๋ฐ˜๋ ค์ธ์˜ ๊ฐ„์ ˆํ•จ์ด ๋ชจ์ด๋Š” ๊ณต๊ฐ„, ์ฝ”์ฝ”์Šค

Image ๐Ÿ”— https://cocos-pet.kr โ€” ์šด์˜ ์ค‘

์ฝ”์ฝ”์Šค๋Š” ๋ฐ˜๋ ค์ธ์„ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋ฐ˜ ๋™๋ฌผ๋ณ‘์› ๋ฆฌ๋ทฐ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์•„ํ”ˆ ๋ฐ˜๋ ค๋™๋ฌผ์˜ ์ฆ์ƒ ๊ณ ๋ฏผ์„ ๋‚˜๋ˆ„๊ณ , ์‹ค์ œ ๋ณ‘์› ํ›„๊ธฐ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š” ๋ณ‘์›์„ ํ•จ๊ป˜ ์ฐพ๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.


๐Ÿถ Main Feature

  1. ๋ฐ˜๋ ค๋™๋ฌผ ์ฆ์ƒ ๊ณ ๋ฏผ๊ณผ ๋ณ‘์› ํ›„๊ธฐ๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ
  2. ์ฆ์ƒ/์งˆ๋ณ‘ ์ค‘์‹ฌ ๋ณ‘์› ๋ฆฌ๋ทฐ
  3. ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋ณ‘์› ๋ฆฌ๋ทฐ ์—ฐ๊ฒฐ๋กœ ํƒ์ƒ‰ ํ”Œ๋กœ์šฐ ๋‹จ์ˆœํ™”

๐Ÿฑ Authors

๊น€์˜์ง„ @sansan20535 ์„œ์—ฐ์ง„ @seoyeonjin
๋‹ด๋‹น API
  • ํšŒ์› ๊ด€๋ จ API
  • ๋ณ‘์› ๊ด€๋ จ API
  • ๋ฐ˜๋ ค๋™๋ฌผ ๊ด€๋ จ API
  • ๊ฒŒ์‹œ๋ฌผ ๊ด€๋ จ API
  • ํšŒ์› ๊ด€๋ จ API
  • ๋ณ‘์› ๊ด€๋ จ API
  • ๋ฐ˜๋ ค๋™๋ฌผ ๊ด€๋ จ API
  • ๋Œ“๊ธ€ ๊ด€๋ จ API
์ฃผ์š” ์ž‘์—…
  • ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์ธ์ฆ ๊ตฌํ˜„
  • HTTPS ์„ค์ • ๋ฐ CORS ์„ค์ •
  • S3 Presigned Url ๋กœ์ง ๊ตฌํ˜„
  • ์—๋Ÿฌ ์ถ”์ ์„ ์œ„ํ•œ Sentry ์„ค์ •
  • ๋ธ”๋ฃจ๊ทธ๋ฆฐ ๋ฐฐํฌ ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ
  • Cursor ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ ์šฉ
  • API ๊ณตํ†ต ์‘๋‹ต ํ˜•์‹ ๋ฐ Global Exception ์„ธํŒ…

๐Ÿญ Architecture

  • GitHub Actions๋ฅผ ํ™œ์šฉํ•œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด, main, dev ๋ธŒ๋žœ์น˜ ๋จธ์ง€ ์‹œ ์ž๋™์œผ๋กœ Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๋ฐ ์„œ๋ฒ„ ๋ฐ˜์˜์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
  • ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ๋ธ”๋ฃจ๊ทธ๋ฆฐ ๋ฐฐํฌ ์ „๋žต์„ ์ ์šฉํ•˜์—ฌ, ์ƒˆ ๋ฒ„์ „ ๋ฐฐํฌ ์‹œ์—๋„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ํ–ฅ ์—†์ด ์„œ๋น„์Šค๊ฐ€ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.

    Image

๐Ÿน ERD

  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์‹œ ์ •๊ทœํ™”๋ฅผ ํ†ตํ•ด ๋ฐ˜๋ณต ํ•„๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , N:M ๊ด€๊ณ„๋Š” ์กฐ์ธ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ด 34๊ฐœ ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ณ‘์› ํ›„๊ธฐ, ์‚ฌ์šฉ์ž ์ •๋ณด, ๋ฐ˜๋ ค๋™๋ฌผ, ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๊ธ€ ๋ฐ ๋Œ“๊ธ€ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Image

๐Ÿฐ Git convention

COCOS Git Convention


๐ŸฆŠ Code convention

COCOS Code Convention


๐Ÿป Stack

Stack Description
Java 21 Language
Spring Boot 3.4.1, Gradle Framework
Spring Data JPA ORM
MySQL DB
JWT Auth
AWS EC2 / RDS / Nginx Infra
GitHub Actions CI/CD

๐Ÿผ Folder Structure

๐Ÿ“ฆ src
 โ”ฃ ๐Ÿ“‚ api              # ์ปจํŠธ๋กค๋Ÿฌ, ์š”์ฒญ/์‘๋‹ต DTO, ์„œ๋น„์Šค ๋ชจ๋“ˆ
 โ”ฃ ๐Ÿ“‚ db               # ์—”ํ‹ฐํ‹ฐ, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, JPA ๊ด€๋ จ
 โ”ฃ ๐Ÿ“‚ common           # ์˜ˆ์™ธ, ๊ณตํ†ต ์‘๋‹ต
 โ”ฃ ๐Ÿ“‚ config           # CORS, ์‹œํ๋ฆฌํ‹ฐ, Swagger ์„ค์ • ๋“ฑ
 โ”ฃ ๐Ÿ“‚ auth             # JWT, ํ•„ํ„ฐ, ์ธ์ฆ ๊ด€๋ จ
 โ”ฃ ๐Ÿ“‚ enums            # Enum ๋ฐ ๋ฉ”์‹œ์ง€ ์ •์˜
 โ”ฃ ๐Ÿ“‚ util             # ์œ ํ‹ธ ๋ฐ ์ปจ๋ฒ„ํ„ฐ
 โ”ฃ ๐Ÿ“‚ validation       # ์ปค์Šคํ…€ Validator
 โ”ฃ ๐Ÿ“‚ external         # ์™ธ๋ถ€ API(S3, ์†Œ์…œ ๋กœ๊ทธ์ธ) ํด๋ผ์ด์–ธํŠธ
 โ”— ๐Ÿ“„ CocosApplication.java

About

๐Ÿพ COCOS ์„œ๋ฒ„ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๐Ÿพ

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages