Skip to content

Latest commit

ย 

History

History
75 lines (54 loc) ยท 2.87 KB

File metadata and controls

75 lines (54 loc) ยท 2.87 KB

Dewple Server

๋™์•„๋ฆฌ ยท ๋ชจ์ž„ ยท ์—ฐํ•ฉํšŒ๋ฅผ ํ•˜๋‚˜๋กœ ์ž‡๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋žซํผ

๐Ÿซง ์†Œ๊ฐœ

Dewple์€ ๋™์•„๋ฆฌ ๋ชจ์ง‘ ยท ์šด์˜๋ถ€ํ„ฐ ์—ฐํ•ฉํšŒ๋ฅผ ํ†ตํ•œ ์†Œ์† ๋™์•„๋ฆฌ ํ†ตํ•ฉ ์šด์˜๊นŒ์ง€, ํ•˜๋‚˜์˜ ํ”Œ๋žซํผ์—์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

๋Œ€ํ•™๊ต ยท ๊ธฐ์—… ยท ์ง€์—ญ์‚ฌํšŒ ๋“ฑ ๋‹ค์–‘ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋” ์‰ฝ๊ณ  ์ฒด๊ณ„์ ์œผ๋กœ ํ™œ๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.


โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๋„๋ฉ”์ธ ์„ค๋ช…
๐Ÿ  ๋™์•„๋ฆฌ ์ƒ์„ฑ ยท ๋ชจ์ง‘ ๊ณต๊ณ  ยท ์ง€์›์„œ ยท ํ•ฉ๊ฒฉ ์ฒ˜๋ฆฌ ยท ์—ญํ• /๊ถŒํ•œ ๊ด€๋ฆฌ
๐ŸŽฏ ๋ชจ์ž„ ๊ฐœ์ธ/๋™์•„๋ฆฌ/์—ฐํ•ฉํšŒ ๋‹จ์œ„ ๋ชจ์ž„ ์ƒ์„ฑ, ์„ ์ฐฉ์ˆœ ๋Œ€๊ธฐ์—ด, ์ถœ์„์ฒดํฌ
๐Ÿ›๏ธ ์—ฐํ•ฉํšŒ ์†Œ์† ๋™์•„๋ฆฌ ํ†ตํ•ฉ ์šด์˜, ์—ญํ• /๊ถŒํ•œ ๊ด€๋ฆฌ, ๋Œ€ํ‘œ ์œ„์ž„
๐Ÿ‘ค ํšŒ์› ์†Œ์…œ/์ž์ฒด ๋กœ๊ทธ์ธ, ํ”„๋กœํ•„ ๊ด€๋ฆฌ, ์ƒํ˜ธ ๋ณ„์  ํ‰๊ฐ€

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

๊ตฌ๋ถ„ ๊ธฐ์ˆ 
Language Java 21
Framework Spring Boot 3.5.9
Database PostgreSQL (Supabase)
Auth JWT (HS256) + RTR (Refresh Token Rotation)
Cloud AWS SQS ยท SES ยท S3
SMS SOLAPI
CI/CD GitHub Actions + Docker

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ Gradle ํ”„๋กœ์ ํŠธ. Layered Architecture + Hexagonal(Port-Adapter) ํŒจํ„ด.

dewple-backend/
โ”œโ”€โ”€ apps/
โ”‚   โ”œโ”€โ”€ app-api-auth/          # ์ธ์ฆ & REST API ์„œ๋ฒ„
โ”‚   โ””โ”€โ”€ app-worker/            # ๋น„๋™๊ธฐ ์›Œ์ปค (์Šค์ผ€์ค„๋Ÿฌ, SQS)
โ”‚
โ”œโ”€โ”€ modules/
โ”‚   โ”œโ”€โ”€ common/                # BaseEntity, ๊ณตํ†ต enum, ์˜ˆ์™ธ, QueryDSL ์„ค์ •
โ”‚   โ”œโ”€โ”€ user/                  # ์‚ฌ์šฉ์ž ๋„๋ฉ”์ธ
โ”‚   โ”œโ”€โ”€ club/                  # ๋™์•„๋ฆฌ ๋„๋ฉ”์ธ
โ”‚   โ”œโ”€โ”€ activity/              # ๋ชจ์ž„ ๋„๋ฉ”์ธ
โ”‚   โ”œโ”€โ”€ organization/          # ์—ฐํ•ฉํšŒ ๋„๋ฉ”์ธ
โ”‚   โ””โ”€โ”€ recruitment/           # ๋ชจ์ง‘ ๋„๋ฉ”์ธ
โ”‚
โ””โ”€โ”€ docs/                      # ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ, ๋„๋ฉ”์ธ๋ณ„ ๊ธฐ๋Šฅ ๋ชฉ๋ก

๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜

์‹คํ–‰ ๊ตฌ์กฐ

  • app-api-auth โ€” ์ธ์ฆ(JWT ๋ฐœ๊ธ‰, ์†Œ์…œ ๋กœ๊ทธ์ธ)๊ณผ REST API๋ฅผ ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌ (ํ–ฅํ›„ ์ธ์ฆ ์„œ๋ฒ„ ๋ณ„๋„ ๋ถ„๋ฆฌ ์˜ˆ์ •)
  • app-worker โ€” ๋ชจ์ž„ ์ž๋™์ทจ์†Œ/์ข…๋ฃŒ, ์œ ์ € ํ•˜๋“œ์‚ญ์ œ ๋“ฑ ๋น„๋™๊ธฐ ์ž‘์—… ์ „๋‹ด

๋„๋ฉ”์ธ ๋ชจ๋“ˆ

  • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ๋„๋ฉ”์ธ ๋ชจ๋“ˆ(user, club, activity, organization, recruitment)์— ๋…๋ฆฝ์ ์œผ๋กœ ๊ตฌ์„ฑ
  • ์™ธ๋ถ€ ์—ฐ๋™(SMS ยท Email ยท S3)์€ ๋„๋ฉ”์ธ์— Port ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ •์˜ํ•˜๊ณ , ์•ฑ ๋ชจ๋“ˆ์—์„œ Adapter๋กœ ๊ตฌํ˜„
  • ์ธ์ฆ์€ JWT(HS256) ๊ธฐ๋ฐ˜, refresh token์€ ์‚ฌ์šฉ ์‹œ๋งˆ๋‹ค ๊ต์ฒดํ•˜๋Š” RTR ๋ฐฉ์‹
  • ๋™์•„๋ฆฌ(18์ข…)์™€ ์—ฐํ•ฉํšŒ(14์ข…) ๊ถŒํ•œ์„ ๋น„ํŠธ๋งˆ์Šคํฌ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์Šน์ธ ์‹œ ๊ธฐ๋ณธ ์—ญํ•  ์ž๋™ ์ƒ์„ฑ

โ—๏ธ ํ˜„์žฌ ๊ฐœ๋ฐœ ์ค‘์ด๋ฉฐ, ๊ตฌ์กฐ์™€ ๊ธฐ๋Šฅ์ด ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.