๋์๋ฆฌ ยท ๋ชจ์ ยท ์ฐํฉํ๋ฅผ ํ๋๋ก ์๋ ์ปค๋ฎค๋ํฐ ํ๋ซํผ
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์ข ) ๊ถํ์ ๋นํธ๋ง์คํฌ๋ก ๊ด๋ฆฌํ๋ฉฐ, ์น์ธ ์ ๊ธฐ๋ณธ ์ญํ ์๋ ์์ฑ
โ๏ธ ํ์ฌ ๊ฐ๋ฐ ์ค์ด๋ฉฐ, ๊ตฌ์กฐ์ ๊ธฐ๋ฅ์ด ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.