Skip to content

๐Ÿš™ ํ˜„๋Œ€์ž๋™์ฐจ๊ทธ๋ฃน ์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ Team 3. caecaeย 

Notifications You must be signed in to change notification settings

j2noo/Team3-Caecae-BE

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

55 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Team: ๋‚œ๋Œ€ํ•™์‹œ์ ˆํ˜„๋Œ€์ฐจ๋ฅผ์ „๊ณตํ–ˆ๋‹จ์‚ฌ์‹ค๐Ÿ‘จโ€๐ŸŽ“

ํ˜„๋Œ€์ž๋™์ฐจ๊ทธ๋ฃน ์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ 4๊ธฐ Team 3๏ธโƒฃ

Project Name: ์บ์Šคํผ๊ฐ€์บ๋ฆฌํ•ด(Caecae)

์บ์Šคํผ ์ผ๋ ‰ํŠธ๋ฆญ ์ถœ์‹œ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€ : Caecae

๐Ÿ”— http://www.caecae.kro.kr/

๐Ÿ”Ž ์ด๋ฒคํŠธ ์†Œ๊ฐœ : ๋‚˜๋ฅผ ์ฐพ์•„๋ด (์ˆจ์€ ์บ์Šคํผ ์ฐพ๊ธฐ ๊ฒŒ์ž„)

  • ๋งค์ผ ์˜คํ›„ 3์‹œ15๋ถ„ ์˜คํ”ˆ๋˜๋Š” ์„ ์ฐฉ์ˆœ ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค.
  • ์บ์Šคํผ ์ผ๋ ‰ํŠธ๋ฆญ์˜ ๋‚ด๋ถ€์— ์ˆจ๊ฒจ์ง„ ํ”ฝ์…€/๋ฑƒ์ง€ ๋””์ž์ธ์„ ๋ˆ„๊ตฌ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋ณด์„ธ์š”!
  • ์„ ์ฐฉ์ˆœ ์ธ์› ๋‚ด์— ์„ ์ •๋˜๋ฉด, ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ƒํ’ˆ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
image

๐Ÿš— ์ด๋ฒคํŠธ ์†Œ๊ฐœ : ์ „๋ ฅ์œผ๋กœ 315km (๋ ˆ์ด์‹ฑ ๊ฒŒ์ž„)

  • ์ผ์ฃผ์ผ๊ฐ„ ํ”Œ๋ ˆ์ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ด์‹ฑ ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.
  • 315km์— ๊ทผ์ ‘ํ•˜๊ฒŒ ๋ฉˆ์ถ”๋ฉด ๋‹น์ฒจ ํ™•๋ฅ ์ด ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.
  • ์นœ๊ตฌ์—๊ฒŒ ๊ณต์œ ํ•˜๊ธฐ๋ฅผ ํ†ตํ•ด ๊ฒฝ์Ÿ์‹ฌ์„ ์œ ๋ฐœํ•˜์„ธ์š”!
  • ๊ธฐ๋ก์ด ๋งˆ์Œ์— ๋“ ๋‹ค๋ฉด, ์‘๋ชจํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ธฐ๋ก์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ตœ๊ณ ์ ์ˆ˜๋งŒ ๊ธฐ๋ก๋˜๋ฉฐ, ์ปค์Šคํ…€ ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ๋‹น์ฒจ ํ™•๋ฅ ์ด ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.
image

โญ ํŒ€์› ์†Œ๊ฐœ

์„œ์ฐฝ๊ต ์กฐ๋ฏผํ™˜ ์˜ค์ต์ค€ ๋ฐ•์ง„์šฐ
FE FE BE BE
@dunkkk @minani-0621 @putdata @j2noo

๐Ÿ“•ย ๊ทธ๋ผ์šด๋“œ ๋ฃฐ

๐Ÿ‘จโ€๐Ÿ’ปย ๊ฐœ๋ฐœ ๋ฐ ํ˜‘์—…๋ฐฉ์‹

  • ๋ชจ๋“  ์—ํ”ฝ, ์Šคํ† ๋ฆฌ, ํ…Œ์Šคํฌ, ์ž‘์—…, ๋ธŒ๋žœ์น˜๋Š” JIRA๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ
  • ๋งค์ฃผ ์Šคํ”„๋ฆฐํŠธ ์‹œ์ž‘ ์‹œ ๋ฐฑ๋กœ๊ทธ ์ž‘์„ฑ
  • ํ˜„์žฌ ๊ฐœ๋ฐœ ํ”ผ์ฒ˜์—์„œ ํ•ฉ์˜๊ฐ€ ํ•„์š”ํ•˜๋ฉด ๋ฐ”๋กœ ๋Œ€ํ™”ํ•˜๊ธฐ
  • git flow ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌํ•˜๊ธฐ
  • ์ฝ”๋“œ๋ฆฌ๋ทฐ ์—ด์‹ฌํžˆ ํ•˜๊ธฐ

๐Ÿ“… Daily Scrum & Daily Review

  • ๋งค์ผ ์•„์นจ 10์‹œ์— ์Šคํฌ๋Ÿผ ์ž‘์„ฑํ•˜๊ธฐ
  • ๋งค์ผ ํ‡ด๊ทผํ•˜๊ธฐ ์ „ ํšŒ๊ณ  ์ž‘์„ฑํ•˜๊ธฐ
  • ํšŒ์˜ ๋•Œ ์ ๊ทน์ ์œผ๋กœ ์ฐธ์—ฌํ•˜๊ธฐ (์˜๊ฒฌ ๋งŽ์ด ๋‚ด๊ธฐ)

โค๏ธโ€๐Ÿ”ฅย ํŒ€ ๋ฌธํ™”

  • ์ง€๊ฐํ•  ๊ฒฝ์šฐ, ๊ณผ์ž ํ•œ ๋ฐ•์Šค ์‚ฌ์˜ค๊ธฐ
  • ์›ƒ์œผ๋ฉด์„œ ํ™”๋‚ด๊ธฐ/์งœ์ฆ๋‚ด๊ธฐ
  • ์‰ฌ๊ณ ์‹ถ์„ ๋• ๋ˆˆ์น˜๋ณด์ง€ ์•Š๊ณ  ์‰ฌ๊ธฐ
  • ์•„๋‹ˆ / ๊ทผ๋ฐ / ์ง„์งœ ๋กœ ๋Œ€ํ™” ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ธฐ

๐Ÿš ์ ์‹ฌ๋ฉ”๋‰ด

  • ์•„์นจ 10์‹œ ์Šคํฌ๋Ÿผ ์ „, ์ ์‹ฌ๋ฉ”๋‰ด ๋จผ์ € ์ •ํ•˜๊ธฐ
  • ์ผ์ฃผ์ผ์— ํ•œ ๋ฒˆ์€ ์ฐธ๋ง›์‹๋‹น ๊ฐ€๊ธฐ

๐Ÿ“ ์•„์นด์ด๋น™


๐Ÿ’ปTech - Backend ๊ฐœ๋ฐœ ๋ชฉํ‘œ

1. Redis ๋„์ž…์„ ํ†ตํ•œ ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ ๋ฐ ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ

  • ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„ ๊ธฐ๋Œ€
  • ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๋™์ž‘ ๋ฐฉ์‹์œผ๋กœ ์ธํ•ด ๋™์‹œ์„ฑ ์ œ์–ด ๊ฐ€๋Šฅ

2. ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•œ ๋ณ‘๋ชฉ ์ง€์  ํŒŒ์•… ๋ฐ ์„ฑ๋Šฅ๊ฐœ์„ 

  • ์„œ๋ฒ„์˜ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ ์œ ๋ฐœ
  • ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์› ์‚ฌ์šฉ๋Ÿ‰ ํŒŒ์•… ๋ฐ ์„ฑ๋Šฅ ๊ฐœ์„ 

3. ์ ๊ทน์ ์ธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

  • ์ฃผ์š” ๋ฉ”์„œ๋“œ๋“ค์— ๋Œ€ํ•œ ๋‹จ์œ„ํ…Œ์ŠคํŠธ ๋ฐ ํ†ตํ•ฉํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  • ๋ชฉํ‘œ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ 50%

๐Ÿ“˜Backend ๊ธฐ์ˆ  ์Šคํƒ

Application

  • Spring boot 3.3.2
  • Spring Data Jpa
  • Java 17
  • MySQL 8.0
  • Redis

Infra

  • AWS EC2
  • AWS S3
  • AWS Parameter store
  • Github-actions
  • Docker

Monitoring

  • Node-exporter
  • Grafana
  • Prometheus
  • Spring Actuator

Test Tool

  • AssertJ
  • Mockito
  • nGrinder

๐Ÿ–ฅ๏ธServer Architecture

image

๐Ÿ“„ERD

image


๐Ÿ”–Naming Rules

  • Packages
    • ํ•ญ์ƒ ์†Œ๋ฌธ์ž๋กœ ์ƒ์„ฑํ•˜๊ธฐ
  • Classes
    • ๋ช…์‚ฌ์—ฌ์•ผ ํ•œ๋‹ค.
    • ๋ณตํ•ฉ ๋‹จ์–ด์˜ ๊ฒฝ์šฐ ๊ฐ ๋‹จ์–ด์˜ ์ฒซ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž.
    • ์™„์ „ํ•œ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋‘ ๋ฌธ์ž์–ด์™€ ์•ฝ์–ด๋Š” ํ”ผํ•œ๋‹ค.
  • Interfaces
    • ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„๋„ ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๊ฐ™์€ ๋Œ€๋ฌธ์ž ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค.
  • Methods
    • ๋™์‚ฌ์—ฌ์•ผ ํ•œ๋‹ค.
    • ๋ณตํ•ฉ ๋‹จ์–ด์˜ ๊ฒฝ์šฐ ์ฒซ ๋‹จ์–ด๋Š” ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค.
  • Constants
    • ํด๋ž˜์Šค ์ƒ์ˆ˜๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋“ค๊ณผ ์ƒ์ˆ˜๋“ค์˜ ์ด๋ฆ„์€ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ์“ฐ๊ณ  ๊ฐ ๋‹จ์–ด๋Š” ์–ธ๋”๋ฐ” ("_")๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค. -Variables
    • ๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž์—ฌ์•ผ ํ•œ๋‹ค.
    • ์–ธ๋”๋ฐ” ๋˜๋Š” ๋‹ฌ๋Ÿฌ ํ‘œ์‹œ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ํ—ˆ์šฉ ๋˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž.
    • ์งง์ง€๋งŒ ์˜๋ฏธ์žˆ๊ฒŒ ์ง“๋Š”๋‹ค.
    • ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ ์˜๋„๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์˜๋ฏธ์ ์œผ๋กœ ์ง“๋Š”๋‹ค.
    • ํ•œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ณ€์ˆ˜๋Š” ์•”์‹œ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๋ฒ„๋ฆด ๋ณ€์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ํ”ผํ•œ๋‹ค.
    • ์ž„์‹œ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์€ integer๋Š” i,j,k,m,n ์„ ์‚ฌ์šฉํ•˜๊ณ  character๋Š” c,d,e๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ETC
    • DB ํ…Œ์ด๋ธ”:ย lower_snake_case
    • ENUM, ์ƒ์ˆ˜:ย Upper_snake_case
    • ์ปฌ๋ ‰์…˜(Collection):ย ๋ณต์ˆ˜ํ˜•์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ย ์ปฌ๋ ‰์…˜์„ ๋ช…์‹œํ•œ๋‹ค. (Ex. userList, users, userMap)
    • LocalDateTime: ์ ‘๋ฏธ์‚ฌ์—ย Date๋ฅผ ๋ถ™์ธ๋‹ค.

๐Ÿ—‚๏ธย Commit Convention

git commit -m "feat : ์ „์ฒด ๋“ฑ์ˆ˜ ์กฐํšŒ api ์ถ”๊ฐ€ (CC-83)"

  • featย : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • fixย : ๋ฒ„๊ทธ ์ˆ˜์ •
  • choreย : ๋นŒ๋“œ ์—…๋ฌด, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, dependencies ์„ค์ •
  • docsย : ๋ฌธ์„œ ์ˆ˜์ • -ย README.md, .github, ..etc
  • designย : ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ -ย CSS
  • styleย : ๊ธฐ๋Šฅ ์ˆ˜์ • ์—†๋Š” ์ฝ”๋“œ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ
  • refactorย : ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง
  • testย : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŽ™ํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
  • ciย : ci ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •
  • perfย : ์„ฑ๋Šฅ ๊ฐœ์„ 
  • renameย : ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช… ๋ณ€๊ฒฝ

๐Ÿฌย Git Flow

๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ :ย CC-83

  • mainย : ์ถœ์‹œ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ์˜ ๋ธŒ๋žœ์น˜
  • develop : ๊ฐœ๋ฐœ ๋‚ด์šฉ ํ†ตํ•ฉ ๋ธŒ๋žœ์น˜
  • featureย : ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • hotfixย : ์ถœ์‹œ ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ธŒ๋žœ์น˜

๐Ÿ“‚ย ํด๋” ๊ตฌ์กฐ

ai.softeer.caecae
โ”œโ”€โ”€ domain(racingGame..)
โ”‚   โ”œโ”€โ”€ api(controller)
โ”‚   โ”œโ”€โ”€ service
โ”‚   โ”œโ”€โ”€ domain
โ”‚   โ”‚   โ”œโ”€โ”€ dto
โ”‚   โ”‚   โ”‚    โ”œโ”€โ”€ request
โ”‚   โ”‚   โ”‚    โ””โ”€โ”€ response
โ”‚   โ”‚   โ”œโ”€โ”€ entity
โ”‚   โ””โ”€โ”€ repository
โ””โ”€โ”€ global
     โ”œโ”€โ”€ api
     โ”œโ”€โ”€ config
     โ”œโ”€โ”€ dto
     โ”œโ”€โ”€ entity
     โ”œโ”€โ”€ enums
     โ”œโ”€โ”€ exception
     โ””โ”€โ”€ utils

About

๐Ÿš™ ํ˜„๋Œ€์ž๋™์ฐจ๊ทธ๋ฃน ์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ Team 3. caecaeย 

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.9%
  • Dockerfile 0.1%