- Spring Boot 3.5.2 + Spring Security + JPA + PostgreSQL - Google OAuth2 ID Token 검증 (google-api-client) - JWT 인증 (jjwt 0.12.6) - H2 인메모리 DB (로컬) / PostgreSQL (운영) 프로필 분리 - Nexus 프록시 경유 Maven 빌드 설정 - 팀 워크플로우 템플릿 (common + java-maven) 적용
57 lines
1.6 KiB
Markdown
57 lines
1.6 KiB
Markdown
# gc-guide-api — 가이드 사이트 백엔드 API
|
|
|
|
## 프로젝트 개요
|
|
gc-guide 프론트엔드의 백엔드 API. Google OAuth2 인증, 사용자 관리, 이슈 트래커 제공.
|
|
|
|
## 기술 스택
|
|
- Spring Boot 3.5 + JDK 17
|
|
- Spring Security (JWT 기반 인증)
|
|
- Spring Data JPA + PostgreSQL (운영) / H2 (로컬)
|
|
- Google API Client (ID Token 검증)
|
|
- Lombok
|
|
|
|
## 빌드 & 실행
|
|
|
|
```bash
|
|
./mvnw -s .mvn/settings.xml clean compile # 컴파일
|
|
./mvnw -s .mvn/settings.xml spring-boot:run # 로컬 실행 (H2)
|
|
./mvnw -s .mvn/settings.xml package -DskipTests # JAR 패키징
|
|
```
|
|
|
|
## 프로필
|
|
- `local` (기본): H2 인메모리 DB, 디버그 로깅
|
|
- `prod`: PostgreSQL (gc_guide DB), validate 모드
|
|
|
|
## API 엔드포인트
|
|
|
|
### 인증
|
|
- `POST /api/auth/google` — Google ID Token 검증 → JWT 발급
|
|
- `GET /api/auth/me` — 현재 사용자 정보
|
|
- `POST /api/auth/logout` — 세션 무효화
|
|
|
|
### 활동 기록
|
|
- `GET /api/activity/login-history` — 로그인 이력
|
|
- `POST /api/activity/track` — 페이지 조회 기록
|
|
|
|
### 이슈 관리
|
|
- `GET/POST /api/issues` — 이슈 목록/생성
|
|
- `GET/PUT /api/issues/:id` — 이슈 상세/수정
|
|
- `POST /api/issues/:id/comments` — 코멘트 추가
|
|
|
|
### 관리자
|
|
- `GET /api/admin/users` — 사용자 목록
|
|
- `GET /api/admin/stats` — 통계
|
|
|
|
## DB (운영)
|
|
- Host: 211.208.115.83:5432
|
|
- Database: gc_guide
|
|
- Username: gcguide
|
|
|
|
## 배포
|
|
- Docker (eclipse-temurin:17-jre)
|
|
- guide.gc-si.dev/api/* → Nginx 프록시
|
|
|
|
## 관련 프로젝트
|
|
- gc-guide: 프론트엔드 (React + TypeScript)
|
|
- Gitea: https://gitea.gc-si.dev/gc/gc-guide-api
|