-
Notifications
You must be signed in to change notification settings - Fork 1
Architecture
Sechang Jang edited this page Feb 20, 2026
·
2 revisions

graph TD
subgraph Client["클라이언트"]
FE["Next.js 프론트엔드"]
DEV["개발자 / k6 부하 테스트"]
end
subgraph Infra["인프라 레이어 (Docker Compose)"]
NGINX["Nginx\nReverse Proxy\nRate Limiting (100 req/s)"]
subgraph Spring["Spring Boot (web 모듈)"]
SEC["Security Filter Chain (JWT 검증)"]
CTRL["Controller"]
FACADE["FacadeService"]
QS["QueryService"]
CS["CommandService"]
end
PG["PostgreSQL"]
subgraph Monitor["모니터링"]
PROM["Prometheus"]
GRAF["Grafana"]
end
end
FE -->|HTTPS| NGINX
DEV -->|HTTP| NGINX
NGINX --> SEC --> CTRL --> FACADE
FACADE --> QS & CS
QS & CS --> PG
Spring -->|Actuator /metrics| PROM --> GRAF
| 분류 | 기술 |
|---|---|
| Language / Framework | Java 21, Spring Boot 3.3.5 |
| 아키텍처 | 멀티모듈 Gradle (web / domain / user / jpa-common) |
| ORM / Query | Spring Data JPA, QueryDSL |
| Database | PostgreSQL |
| Security | Spring Security, JWT (RSA RS256 / RS512) |
| Build | Gradle |
| Infra | Docker Compose, Nginx |
| Monitoring | Prometheus, Grafana, Spring Actuator + Micrometer |
| Performance Test | k6 |
| CI/CD | GitHub Actions |
| Documentation | SpringDoc OpenAPI (Swagger) |
| 분류 | 기술 |
|---|---|
| Framework | Next.js 15, React 19, TypeScript |
| UI | shadcn/ui (Tailwind CSS) |
| 상태 관리 | Zustand, iron-session |
timefit-back/
├── jpa-common/ ← 공통 JPA 기반 (BaseEntity, QueryDSL 설정)
├── user/ ← User 엔티티 + RefreshToken 엔티티
├── domain/ ← 핵심 비즈니스 도메인 엔티티
└── web/ ← HTTP 레이어 (Controller, Service, Security)
의존성은 단방향으로만 흐릅니다: jpa-common → user → domain → web
자세한 내용: 멀티모듈 Gradle 설계
시스템
백엔드 포트폴리오