Skip to content

SSAFY-HOMEGGU/homeggu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

HOMEGGU - ์‚ผ์„ฑ ์ฒญ๋…„ SW ์•„์นด๋ฐ๋ฏธ(SSAFY) 11๊ธฐ 2ํ•™๊ธฐ ์ž์œจ ํ”„๋กœ์ ํŠธ



โœ…ย ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๊ธฐํš ๋ฐฐ๊ฒฝ

  • ์ตœ๊ทผ ๊ณ ๋ฌผ๊ฐ€์™€ ์นœํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ๋งž๋ฌผ๋ ค ์ค‘๊ณ  ๊ฐ€๊ตฌ ์‹œ์žฅ์ด ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์ด์™€ ๊ด€๋ จ๋œ ์„œ๋น„์Šค๊ฐ€ ์•„์ง ๋ˆˆ์— ๋„์ง€ ์•Š๋Š” ์‹ค์ •์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ํ‹ˆ์ƒˆ์‹œ์žฅ์„ ๊ณต๋žตํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ณ  ๊ฐ€๊ตฌ ๊ฑฐ๋ž˜ ํ”Œ๋žซํผ 'ํ™ˆ๊พธ(HOMEGGU)'๋ฅผ ๊ธฐํšํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ง„ํ–‰ ๊ธฐ๊ฐ„

๐Ÿ“… 2024.10.14 ~ 2024.11.18 (5์ฃผ)


๋‹ด๋‹น ์—ญํ• 


์ด๋ฆ„
ย ย ย ย ย ย ย ย ย ย ย ย ย ย 

์—ญํ• 
ย ย ย ย ย ย ย ย ย ย ย ย ย ย 

๊ฐœ๋ฐœ ๋‚ด์šฉ

์ด๊ทœ๋นˆ ํŒ€์žฅ, BackEnd - MSA ์„ค๊ณ„(Gateway, Discovery, FeignClient ๋“ฑ)
- pay ์„œ๋น„์Šค(๋จธ๋‹ˆ ์ถฉ์ „ ๋ฐ ์†ก๊ธˆ, ์‚ฌ์šฉ๋‚ด์—ญ ์กฐํšŒ, ๋ฐ์ดํ„ฐ ๋™์‹œ์„ฑ ์ œ์–ด ๋“ฑ)
๊น€ํƒœ์„ฑ BackEnd
์•ˆํ•ด์ฐฌ BackEnd
์ตœ์œค์„ BackEnd, Infra
๋ฐ•์„ ๋ฏผ FrontEnd
์žฅ์œ ์ง„ FrontEnd



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

FrontEnd
BackEnd
Database
Infra
Tools



๐Ÿ› ย ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

FrontEnd

react : 18 / redux : 5.0.1 / next.js : 14.2.16 / tailwind CSS : 3.4.1 / shadcn-ui : 0.9.2 / three.js : 0.170.0 / stomp.js : 2.3.3

BackEnd

JDK17 / SpringBoot : 3.3.4 / JPA : 3.2.7 / Querydsl : 5.0.0 / JWT : 0.12.5 / RabbitMQ : 4.0.3 / FastAPI

Spring Cloud openfeign : 4.1.3 / Spring Cloud netflix-eureka-client : 4.1.3

Database

Mysql : 9.1.0 / MongoDB : 8.0.3 / Redis : 7.4.1

Infra

Ubuntu : 20.4.6 / Docker : 27.3.1 / NginX : 1.27.2 / Jenkins : 2.484



๐Ÿ ย ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ณ

Next.js

  • ๋‹ค์–‘ํ•œ ๋ Œ๋”๋ง ๋ฐฉ์‹(SSR, SSG, CSR ๋“ฑ)์„ ํ™œ์šฉํ•˜๊ณ  ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”(SEO)๋ฅผ ์œ„ํ•ด, ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋ฒ„๋กœ Next.js๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

MSA(Micro Service Architecture)

  • ์‹œ์Šคํ…œ์˜ ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋„๋ชจํ•˜๊ธฐ ์œ„ํ•ด ์•„ํ‚คํ…์ฒ˜๋ฅผ MSA๋กœ ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ์„œ๋น„์Šค๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ/๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ์žฅ์•  ๊ฒฉ๋ฆฌ ํšจ๊ณผ๋„ ๊ธฐ๋Œ€ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ปจ๋Œ€ pay ์„œ๋น„์Šค์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ user, goods ๋“ฑ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋Š” ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘๋˜๋„๋ก ํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.



โœ…ย ์ฃผ์š”๊ธฐ๋Šฅ ์†Œ๊ฐœ

์ค‘๊ณ  ๊ฐ€๊ตฌ ์‡ผํ•‘

๋ฉ”์ธ ์ƒํ’ˆ ์ƒ์„ธ ๊ตฌ๋งค

์ƒํ’ˆ ๋“ฑ๋ก ๋ฐ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜

์ƒํ’ˆ ๋“ฑ๋ก ์ด๋ฏธ์ง€ ๋ณ€ํ™˜ (2D to 3D) ๋ณ€ํ™˜ ์™„๋ฃŒ
  • ํŒ๋งค์ž๋Š” ์ค‘๊ณ ๊ฐ€๊ตฌ ์ƒํ’ˆ ๋“ฑ๋ก์‹œ ์ด๋ฏธ์ง€๋ฅผ ์ฒจ๋ถ€ํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ 3D๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๋Š” ํ† ์ŠคํŠธ ์•Œ๋ฆผ์„ ํ†ตํ•ด ๋ณ€ํ™˜ ์ง„ํ–‰๋ฅ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์ค‘๊ฐ„ ์‚ฌ์ง„ ์ขŒ์ธก ํ•˜๋‹จ). ์ด๋ฅผ ํ†ตํ•ด ๋ณ€ํ™˜ ์ค‘ ๋‹ค๋ฅธ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋ณ€ํ™˜์ด ์™„๋ฃŒ๋˜๋ฉด 3D ๋ชจ๋ธ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ์ด๋ฅผ ๋‹ค์‹œ ์—…๋กœ๋“œํ•˜์—ฌ 3D ๊ฐ€๊ตฌ๋ฐฐ์น˜์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3D ๊ฐ€๊ตฌ๋ฐฐ์น˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

๋ฒฝ/๋ฐฉ ์ƒ˜ํ”Œ ๊ฐ€๊ตฌ ์ƒ˜ํ”Œ

๋นˆ ๋„๋ฉด ๋ฐฐ์น˜ ๊ฒฐ๊ณผ (2D) ๋ฐฐ์น˜ ๊ฒฐ๊ณผ (3D)
  • ์‚ฌ์šฉ์ž๋Š” ๋นˆ ๋„๋ฉด์— ๋ฒฝ์ด๋‚˜ ๋ฐฉ ์ƒ˜ํ”Œ์„ ๋ฐฐ์น˜ํ•ด ๋ณธ์ธ ์ง‘๊ณผ ์œ ์‚ฌํ•œ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๊ธฐ์— ์œ„์—์„œ ๋ณ€ํ™˜๋œ 3D ๊ฐ€๊ตฌ ํŒŒ์ผ์„ ๋ฐฐ์น˜ํ•˜์—ฌ, ๊ตฌ๋งค ์ „ ๋ฏธ๋ฆฌ ๋ฐฐ์น˜ ๊ฒฐ๊ณผ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งž์ถคํ˜• ์ƒํ’ˆ ์ถ”์ฒœ

ํšŒ์›๊ฐ€์ž…์‹œ ์„ค๋ฌธ์กฐ์‚ฌ ์ƒํ’ˆ ์ถ”์ฒœ
  • ํšŒ์›๊ฐ€์ž…์‹œ ์„ค๋ฌธ์กฐ์‚ฌ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ธํ…Œ๋ฆฌ์–ด ์ทจํ–ฅ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค(cold start). ์ด๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ์ทจํ–ฅ ๋ฐœ๊ฒฌ์ด ์–ด๋ ค์šด ์ปจํ…์ธ  ๊ธฐ๋ฐ˜ ํ•„ํ„ฐ๋ง์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒํ’ˆ ์กฐํšŒ์‹œ ๋ˆ„์ ๋œ ๋ฐ์ดํ„ฐ(๊ตฌ๋งค, ์กฐํšŒ, ์ข‹์•„์š” ๋“ฑ)์™€ ์œ„ ์„ค๋ฌธ์กฐ์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ, ์‚ฌ์šฉ์ž ๋งž์ถคํ˜•์œผ๋กœ ์ถ”์ฒœ์ƒํ’ˆ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ฑ„ํŒ…

์ฑ„ํŒ… ์‹œ์ž‘ (๊ตฌ๋งค์ž) ์ฑ„ํŒ… ํ™•์ธ (ํŒ๋งค์ž)
  • ๊ตฌ๋งค์ž๋Š” ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ํŒ๋งค์ž์—๊ฒŒ ์ฑ„ํŒ…์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒ๋งค์ž๋Š” ๊ตฌ๋งค์ž๋“ค์˜ ์ฑ„ํŒ…์„ ๋ชจ์•„์„œ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋จธ๋‹ˆ ์ถฉ์ „ ๋ฐ ์†ก๊ธˆ

์ด์šฉ๋‚ด์—ญ ์กฐํšŒ ์•ˆ์ „๊ฑฐ๋ž˜ ํ™•์ •
  • ์‚ฌ์šฉ์ž์˜ ๊ณ„์ขŒ๋ฅผ ์ด์šฉํ•ด ํ™ˆ๊พธ๋จธ๋‹ˆ๋ฅผ ์ถฉ์ „ํ•˜๊ณ , ์ด ๋จธ๋‹ˆ๋ฅผ ํŒ๋งค์ž์—๊ฒŒ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์†ก๊ธˆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฐ์ดํ„ฐ ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์œ„ํ•ด ๋น„๊ด€์  ๋ฝ์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ๊ตฌ๋งค์ž๊ฐ€ ์ƒํ’ˆ์„ ๋จผ์ € ํ™•์ธํ•œ ๋’ค ๊ตฌ๋งค ํ™•์ •์„ ํ•ด์•ผ๋งŒ ๋น„๋กœ์†Œ ํŒ๋งค์ž์—๊ฒŒ ์ž…๊ธ‰๋˜๋„๋ก ํ•˜๋Š” ์•ˆ์ „๊ฑฐ๋ž˜(์—์Šคํฌ๋กœ) ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ƒย ์‚ฐ์ถœ๋ฌผ

ERD

  • MSA์˜ ์žฅ์ ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ์„œ๋น„์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ FeignClient์„ ํ™œ์šฉํ•˜์—ฌ ์กฐํšŒํ–ˆ์Šต๋‹ˆ๋‹ค.

erd_user_goods erd_pay_chat


API ๋ช…์„ธ์„œ

  • ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ์˜ ํšจ์œจ์ ์ธ ์˜์‚ฌ์†Œํ†ต์„ ์œ„ํ•ด, Notion์œผ๋กœ ๊ฐ API์˜ ์ฃผ์†Œ์™€ ์š”์ฒญ/์‘๋‹ต ํ˜•์‹์„ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
  • API ์ฃผ์†Œ์˜ ์ฒซ ๋ถ€๋ถ„์— ์„œ๋น„์Šค๋ช…์„ ๋ช…์‹œํ•ด, Spring Cloud Gateway๊ฐ€ ํ•ด๋‹น ์„œ๋น„์Šค๋กœ ์š”์ฒญ์„ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

api user api goods api_pay api_chat



๐Ÿ’ฏย ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

โค ์ด๊ทœ๋นˆ

  • ํŒ€์žฅ์„ ์ฒ˜์Œ ๋งก์€๋ฐ๋‹ค 5์ฃผ๋ผ๋Š” ์งง์€ ๊ธฐ๊ฐ„ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์„ฑํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ์˜€๋˜ **"๊ธฐ์ˆ ์  ์„ฑ์žฅ"**์„ ์œ„ํ•ด ํŒ€์› ๋ชจ๋‘ ์—ด์‹ฌํžˆ ์ž„ํ•ด์ค€ ๋•๋ถ„์— ์˜๋ฏธ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
  • MSA ์„ค๊ณ„ ๊ณผ์ •์—์„œ๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์—๋Ÿฌ๋“ค์ด ๋งŽ์ด ๋ฐœ์ƒํ•ด ์–ด๋ ค์›€์ด ์žˆ์—ˆ์ง€๋งŒ, ๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ MSA์˜ ์žฅ์ ์ธ ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ์–ด ๊ฐ’์ง„ ๊ฒฝํ—˜์ด์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ‰์†Œ ์‹œ๋„ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๋ฐ์ดํ„ฐ ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์‹ค์ œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ์ถ”ํ›„ ํ•™์Šต์„ ํ†ตํ•ด Redis๋ฅผ ํ™œ์šฉํ•œ ๋ถ„์‚ฐ ๋ฝ๋„ ์ ์šฉํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงก ๊น€ํƒœ์„ฑ


๐Ÿ’› ์•ˆํ•ด์ฐฌ


๐Ÿ’š ์ตœ์œค์„


๐Ÿ’™ ๋ฐ•์„ ๋ฏผ


๐Ÿ’œ ์žฅ์œ ์ง„

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages