Skip to content

over-time-worker/backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

675 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Owl-Express

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

OwlExpress

MSA(Microservices Architecture) ๊ธฐ๋ฐ˜์˜ ๊ตญ๋‚ด ๋ฌผ๋ฅ˜ ๊ด€๋ฆฌ ๋ฐ ๋ฐฐ์†ก ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.
B2B(Business to Business) ํ™˜๊ฒฝ์—์„œ ๋ฌผ๋ฅ˜์™€ ๋ฐฐ์†ก์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ์ง€์—ญ์— ํ—ˆ๋ธŒ์„ผํ„ฐ๋ฅผ ๋‘๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ ํ—ˆ๋ธŒ ์„ผํ„ฐ๋Š” ์—ฌ๋Ÿฌ ์—…์ฒด์˜ ๋ฌผ๊ฑด์„ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค. ์—…์ฒด์˜ ์ƒํ’ˆ์€ ํ•„์š”์— ๋”ฐ๋ผ ํ—ˆ๋ธŒ๋กœ ์ „๋‹ฌ๋˜๋ฉฐ, ๋ฐฐ์†ก ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๋ชฉ์ ์ง€ ํ—ˆ๋ธŒ๋กœ ๋ฌผํ’ˆ์„ ์ด๋™์‹œ์ผœ ์ตœ์ข… ๋ฐฐ์†ก์ง€์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“„ ํ”„๋กœ์ ํŠธ ์„ค๊ณ„

  • MSA ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋กœ ๋…๋ฆฝ์ ์ธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ
  • ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„๋ฅผ ๊ณ ๋ คํ•œ Layered Architecture ์ ์šฉ
  • ํ™•์žฅ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ณ ๋ คํ•œ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ๊ตฌ์กฐ

๐Ÿšฉ ํ”„๋กœ์ ํŠธ ๋ชฉ์ 

  • MSA ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„์„ ํ†ตํ•œ ์‹ค๋ฌด ์—ญ๋Ÿ‰ ๊ฐ•ํ™”
  • ์„œ๋น„์Šค ๊ฐ„ API ์—ฐ๋™ ๋ฐ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€
  • Gemini API๋ฅผ ํ™œ์šฉํ•œ AI ๊ธฐ๋Šฅ ํ†ตํ•ฉ
  • ๊ถŒํ•œ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด ์‹œ์Šคํ…œ ๊ตฌํ˜„
  • ๋…ผ๋ฆฌ์  ์‚ญ์ œ(soft delete) ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ

โš™๏ธ ์„œ๋น„์Šค ๊ตฌ์„ฑ

๐Ÿ—๏ธ ํ—ˆ๋ธŒ ๊ด€๋ฆฌ

  • ํ—ˆ๋ธŒ ์œ„์น˜: ์ „๊ตญ 17๊ฐœ ์ง€์—ญ(์„œ์šธ, ๊ฒฝ๊ธฐ, ๋ถ€์‚ฐ ๋“ฑ)์— ํ—ˆ๋ธŒ์„ผํ„ฐ ์šด์˜
  • ํ—ˆ๋ธŒ๊ฐ„ ์ด๋™์ •๋ณด: ํ—ˆ๋ธŒ ๊ฐ„ ๊ฒฝ๋กœ ๋งคํ•‘์œผ๋กœ ํšจ์œจ์ ์ธ ๋ฌผ๋ฅ˜ ์ด๋™ ์ง€์›
  • ํ—ˆ๋ธŒ ๊ฒ€์ƒ‰: ์ง€์—ญ๋ณ„ ํ—ˆ๋ธŒ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ

๐Ÿ‘จโ€๐Ÿ’ผ ๋ฐฐ์†ก ๋‹ด๋‹น์ž ๊ด€๋ฆฌ

  • ํ—ˆ๋ธŒ ๋ฐฐ์†ก ๋‹ด๋‹น์ž: ํ—ˆ๋ธŒ ๊ฐ„ ๋ฌผํ’ˆ ์ด๋™ ๋‹ด๋‹น (์ „์ฒด ์‹œ์Šคํ…œ์— 10๋ช…)
  • ์—…์ฒด ๋ฐฐ์†ก ๋‹ด๋‹น์ž: ํ—ˆ๋ธŒ์—์„œ ์ˆ˜๋ น ์—…์ฒด๊นŒ์ง€ ๋ฐฐ์†ก ๋‹ด๋‹น (ํ—ˆ๋ธŒ๋‹น 10๋ช…)
  • ๋‹ด๋‹น์ž ๊ฒ€์ƒ‰: ๋‹ด๋‹น์ž ์ •๋ณด ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ

๐Ÿข ์—…์ฒด ๊ด€๋ฆฌ

  • ์—…์ฒด ์†Œ์†: ๋ชจ๋“  ์—…์ฒด๋Š” ํŠน์ • ํ—ˆ๋ธŒ์— ์†Œ์†
  • ์—…์ฒด ํƒ€์ž…: ์ƒ์‚ฐ์—…์ฒด์™€ ์ˆ˜๋ น์—…์ฒด๋กœ ๊ตฌ๋ถ„
  • ์—…์ฒด ๊ฒ€์ƒ‰: ์—…์ฒด๋ช…, ์ง€์—ญ์œผ๋กœ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ

๐Ÿ“ฆ ์ƒํ’ˆ ๊ด€๋ฆฌ

  • ์ƒํ’ˆ ์†Œ์†: ๋ชจ๋“  ์ƒํ’ˆ์€ ํŠน์ • ์—…์ฒด์™€ ํ—ˆ๋ธŒ์— ์†Œ์†
  • ์ƒํ’ˆ ๊ฒ€์ƒ‰: ์ƒํ’ˆ๋ช…, ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ
  • ์žฌ๊ณ  ๊ด€๋ฆฌ: ํ—ˆ๋ธŒ๋ณ„ ์ƒํ’ˆ ์žฌ๊ณ  ๊ด€๋ฆฌ

๐Ÿ“‹ ์ฃผ๋ฌธ ๊ด€๋ฆฌ

  • ์ฃผ๋ฌธ ์ƒ์„ฑ/์ทจ์†Œ: ์ฃผ๋ฌธ ์ƒ์„ฑ ์‹œ ์žฌ๊ณ  ๊ฐ์†Œ, ์ทจ์†Œ ์‹œ ์žฌ๊ณ  ๋ณต์›
  • ์žฌ๊ณ  ํ™•์ธ: ํ—ˆ๋ธŒ์— ์žฌ๊ณ  ์—†์„ ๊ฒฝ์šฐ ์ฃผ๋ฌธ ์‹คํŒจ ์ฒ˜๋ฆฌ
  • ์ฃผ๋ฌธ ๋‚ด์—ญ: ์ฃผ๋ฌธ ์ƒํƒœ ์ถ”์  ๋ฐ ์กฐํšŒ

๐Ÿšš ๋ฐฐ์†ก ๊ด€๋ฆฌ

  • ๋ฐฐ์†ก ๋ฐ์ดํ„ฐ: ์ฃผ๋ฌธ ์ƒ์„ฑ ์‹œ ๋ฐฐ์†ก ๋ฐ ๊ฒฝ๋กœ ๊ธฐ๋ก ์ž๋™ ์ƒ์„ฑ
  • ๋ฐฐ์†ก ์ถ”์ : ํ˜„์žฌ ๋ฐฐ์†ก ์ƒํƒœ ์‹ค์‹œ๊ฐ„ ์กฐํšŒ
  • ๋ฐฐ์†ก ๋‹ด๋‹น์ž ๋ฐฐ์ •: ๋ฐฐ์†ก ์œ ํ˜•์— ๋”ฐ๋ฅธ ๋‹ด๋‹น์ž ์ž๋™ ๋ฐฐ์ •

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

  • ๊ถŒํ•œ ๊ด€๋ฆฌ: ๋งˆ์Šคํ„ฐ ๊ด€๋ฆฌ์ž, ํ—ˆ๋ธŒ ๊ด€๋ฆฌ์ž, ๋ฐฐ์†ก ๋‹ด๋‹น์ž, ์—…์ฒด ๋‹ด๋‹น์ž ์—ญํ•  ๊ตฌ๋ถ„
  • ๊ณ„์ • ๊ด€๋ฆฌ: ์‚ฌ์šฉ์ž ์ •๋ณด ๊ด€๋ฆฌ ๋ฐ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

โš™๏ธ ์‹คํ–‰ ๋ฐฉ๋ฒ•

  • ์„œ๋ฒ„: Spring Boot 3.x
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: PostgreSQL
  • ๋นŒ๋“œ ํˆด: Gradle
  • API ๊ฒŒ์ดํŠธ์›จ์ด: Spring Cloud Gateway
  • ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ: Spring Cloud Eureka
  • ์ถ”๊ฐ€ ์„ค์ • ํŒŒ์ผ: application-prod.yml, application-eureka.yml

์„œ๋น„์Šค ์‹คํ–‰ ๋ช…๋ น์–ด

# ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ ์„œ๋ฒ„ ์‹œ์ž‘
java -jar eureka-server-1.0.0.jar --spring.profiles.active=prod

# API ๊ฒŒ์ดํŠธ์›จ์ด ์‹œ์ž‘
java -jar api-gateway-1.0.0.jar --spring.profiles.active=prod

# ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์‹œ์ž‘
java -Xms256M -Xmx256M -jar hub-service-1.0.0.jar --spring.profiles.active=prod > hub.log 2>&1 &
java -Xms256M -Xmx256M -jar delivery-service-1.0.0.jar --spring.profiles.active=prod > delivery.log 2>&1 &
java -Xms256M -Xmx256M -jar order-service-1.0.0.jar --spring.profiles.active=prod > order.log 2>&1 &
java -Xms256M -Xmx256M -jar user-service-1.0.0.jar --spring.profiles.active=prod > user.log 2>&1 &

๐Ÿ“œ ERD

Owl-Express )

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ API ๋ช…์„ธ์„œ

API ๋ช…์„ธ์„œ


Jmeter ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ

image

โš™ ๊ธฐ์ˆ  ์Šคํƒ

Back-end

Spring Cloud

Infra

Tools


๐Ÿ› ๏ธ ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜

image

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages