Skip to content

๐Ÿ”„ ์•„์›ƒํ’‹์„ ์œ„ํ•œ ์ธํ’‹ [REINPUT] ๋ฐฑ์—”๋“œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ

Notifications You must be signed in to change notification settings

9oormthon-univ/2024_BEOTKKOTTHON_TEAM_24_BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

header

๐ŸŒธ REINPUT ๐ŸŒธ

์•„์›ƒํ’‹์„ ์œ„ํ•œ ์ธํ’‹, ๋ฆฌ-์ธํ’‹

๐Ÿ† ํ•œ๊ตญ์Šค๋งˆํŠธ์ •๋ณด๊ต์œก์› 24๋…„ ์ƒ๋ฐ˜๊ธฐ SW๊ฐœ๋ฐœ๊ณต๋ชจ์ „ ์ตœ์šฐ์ˆ˜์ƒ

KakaoTalk_Photo_2024-03-24-00-21-56-1

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

  • ํ”„๋กœ์ ํŠธ ๋ช… : REINPUT
  • ํ”„๋กœ์ ํŠธ ์„ค๋ช… : ํฉ์–ด์ ธ ์žˆ๋Š” ์ธ์‚ฌ์ดํŠธ๋“ค์„ ๋ฆฌ์ธํ’‹์ด ์ œ๊ณตํ•˜๋Š” AI ์ธ์‚ฌ์ดํŠธ ์ž๋™ ๋ถ„๋ฅ˜๋กœ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฆฌ๋งˆ์ธ๋“œ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ƒ๊ธฐ์‹œ์ผœ ์ธ์‚ฌ์ดํŠธ๋ฅผ ํ™œ์šฉํ•ด ๋ณด์„ธ์š”!

TechStack

Development Environment

java17 springboot mysql jpa gradle QueryDSL swagger jwt SpringSecurity

Infra

aws rds ec2 s3 route53 Nginx alb IAM

CI/CD

GithubActions Docker

๐ŸŒธ ๊ธฐ์ˆ  ์„ค๋ช…

๊ธฐ์ˆ  ์Šคํƒ

  • Spring Boot : Spring Boot๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ตฌ์ถ•
  • Spring Security : Spring Security๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ
  • JWT : JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ๊ตฌํ˜„
  • QueryDSL : QueryDSL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์  ์ฟผ๋ฆฌ ์ž‘์„ฑ
  • Swagger : Swagger๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ๋ฌธ์„œํ™”
  • AWS : AWS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ๋ฐฐํฌ
  • Docker : Docker ๋ฐ Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ๋ฐ ๋ฐฐํฌ, ์ด๋ฏธ์ง€ ๊ด€๋ฆฌ
  • Github Actions : Github Actions๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•
  • Nginx : Nginx๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ๊ตฌ์ถ•
  • RDS : RDS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•
  • S3 : S3๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์  ํŒŒ์ผ ๊ด€๋ฆฌ
  • Route53 : Route53์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ ๊ด€๋ฆฌ
  • IAM : IAM์„ ์‚ฌ์šฉํ•˜์—ฌ AWS ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ ์ œ์–ด ๋ฐ ๋ณด์•ˆ ๊ด€๋ฆฌ
  • EC2 : EC2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
  • ALB : ALB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ http ํ”„๋กœํ† ์ฝœ https ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๊ตฌํ˜„
  • Gradle : Gradle์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ ๊ด€๋ฆฌ
  • JPA : JPA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ORM ๊ตฌํ˜„
  • MySQL : ์ฝ๊ธฐ ์ž‘์—…์ด ๋นˆ๋ฒˆํ•˜๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด ์„ ํƒํ•œ MySQL์„ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•
  • ๋ฌด์ค‘๋‹จ๋ฐฐํฌ : Docker, Docker-Compose, Nginx, EC2, Target-groups, Application Load Balancer, AWS Certificate Manager, Route53, Github Action, Github Action Self-Hosted Runner, Gabia ๋ฅผ ์‚ฌ์šฉํ•œ Blue-Green ํ”„๋ฆฌํ‹ฐ์–ด ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• ๋ฐ https ์„œ๋น„์Šค ๋ฐฐํฌ

Reinput Service Architecture

image

๐ŸŒธ ํ˜‘์—…

  • Git Branch ์ „๋žต : GitHub Flow ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ
  • DDD : ๋„๋ฉ”์ธ ์ฃผ๋„ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ
  • Notion : ํ”„๋กœ์ ํŠธ ์ผ์ • ๋ฐ ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•ด Notion ์‚ฌ์šฉ
  • Scrum : ๋งค์ผ ์ €๋… 10์‹œ์— ์Šคํฌ๋Ÿผ ์ง„ํ–‰

Git Branch ์ „๋žต

  • main : ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋งŒ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • feat : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜
  • fix: ๊ธฐ๋Šฅ ์ˆ˜์ • ๋ฐ ์—…๋ฐ์ดํŠธ ๋ธŒ๋žœ์น˜
  • test : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ๋ธŒ๋žœ์น˜

Scrum

  • ๋งค์ผ ์ €๋… 10์‹œ์— ์Šคํฌ๋Ÿผ ์ง„ํ–‰
  • ์Šคํฌ๋Ÿผ ๋‚ด์šฉ : ์™„๋ฃŒ ๋œ ์ผ, ์ง„ํ–‰ ํ•œ ์ผ, ๋‚จ์€ ์ผ, ์ด์Šˆ์‚ฌํ•ญ ๊ณต์œ 
  • ์ฝ”๋“œ ์ปจ๋ฒค์…˜ : ์ฝ”๋“œ ์ปจ๋ฒค์…˜ ๋ฆฌ๋ทฐ

Notion

  • ์ผ์ • ๊ด€๋ฆฌ : ์ผ์ • ๊ด€๋ฆฌ ๋ฐ ๋ฌธ์„œํ™”
  • ๋ฌธ์„œํ™” : ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ๋ฌธ์„œํ™” ์š”๊ตฌ์‚ฌํ•ญ ๊ด€๋ฆฌ, API ๋ช…์„ธ์„œ, ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ, ERD ๋“ฑ

์ด์Šˆ ๊ด€๋ฆฌ

GitHub issues GitHub closed issues

  • ์ด์Šˆ ํ…œํ”Œ๋ฆฟ : ์ด์Šˆ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด์Šˆ ์ž‘์„ฑ
  • ์ด์Šˆ ๋‹ด๋‹น์ž : ์ด์Šˆ ๋‹ด๋‹น์ž๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ด์Šˆ ๊ด€๋ฆฌ
  • ๋ฒ„๊ทธ ๊ณต์œ  : ๋ฒ„๊ทธ ๋ฐœ์ƒ ์‹œ ์ด์Šˆ๋ฅผ ํ†ตํ•ด ๊ณต์œ 
  • ์ง„ํ–‰ ์ƒํ™ฉ : ํ˜„์žฌ ์ง„ํ–‰์ƒํ™ฉ์„ ์ด์Šˆ๋ฅผ ํ†ตํ•ด ๊ณต์œ  ๋ฐ ๊ด€๋ฆฌ

PR ๊ด€๋ฆฌ

GitHub pull requests GitHub closed pull requests

  • PR Template : PR ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ PR ์ž‘์„ฑ

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ทœ์น™

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ : ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•˜์—ฌ ์ปค๋ฐ‹

  • feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • fix: ๋ฒ„๊ทธ ์ˆ˜์ •
  • docs: ๋ฌธ์„œ ์ˆ˜์ •
  • style: ์ฝ”๋“œ ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ, ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ
  • refactor: ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
  • test: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŒฉํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
  • chore: ๋นŒ๋“œ ์—…๋ฌด ์ˆ˜์ •, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ •
  • comment: ํ•„์š”ํ•œ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ
  • rename: ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช…์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…๋งŒ์ธ ๊ฒฝ์šฐ
  • remove: ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•œ ๊ฒฝ์šฐ

์ด์Šˆ & PR ํ…œํ”Œ๋ฆฟ

## 1. ๊ธฐ๋Šฅ ์„ค๋ช…

<br>

## 2. ์ƒ์„ธ ์„ค๋ช…

<br>

## 3. ์ถ”๊ฐ€ ์‚ฌํ•ญ

๐ŸŒธ ๊ธฐํƒ€ ์‚ฌํ•ญ

Swagger API ๋ฌธ์„œ

ERD

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-03-24 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 5 03 30

ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-03-24 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 5 06 08

About

๐Ÿ”„ ์•„์›ƒํ’‹์„ ์œ„ํ•œ ์ธํ’‹ [REINPUT] ๋ฐฑ์—”๋“œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published