Vue.js 3 + Spring Boot 3 + PostgreSQL 스택으로 개발되는 Azure AKS 배포용 컨테이너 기반 해커톤 신청 플랫폼입니다.
- Vue.js 3.4.x + TypeScript + Composition API
- Vite 5.x (빌드 도구)
- Vuetify 3.x (UI 프레임워크)
- Pinia 2.x (상태 관리)
- Axios 1.6.x (HTTP 클라이언트)
- Spring Boot 3.2.x + Java 17
- Spring Security 6.2.x (JWT 기반 인증)
- Spring Data JPA 3.2.x + Hibernate
- Springdoc OpenAPI 2.x (API 문서화)
- PostgreSQL 15.x (메인 데이터베이스)
- Redis 7.x (캐싱)
- Docker + Kubernetes (컨테이너화)
- Azure AKS (클러스터 관리)
- Azure Blob Storage (파일 저장)
- Azure Redis Cache (캐싱)
hackathon-project/
├── frontend/ # Vue.js 3 프론트엔드
│ ├── src/
│ ├── public/
│ ├── package.json
│ └── vite.config.ts
├── backend/ # Spring Boot 3 백엔드
│ ├── src/main/java/
│ ├── src/main/resources/
│ ├── pom.xml
│ └── Dockerfile
├── database/ # 데이터베이스 스키마 및 마이그레이션
│ ├── migrations/
│ └── init/
├── k8s/ # Kubernetes 매니페스트
│ ├── frontend/
│ ├── backend/
│ └── database/
├── docker-compose.yml # 로컬 개발 환경
├── .gitignore
└── README.md
- Node.js 18.x 이상
- Java 17 이상
- Docker & Docker Compose
- Maven 3.8 이상
-
전체 스택 실행 (Docker Compose)
docker-compose up -d
-
개별 서비스 실행
# Frontend cd frontend npm install npm run dev # Backend cd backend ./mvnw spring-boot:run
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- API 문서: http://localhost:8080/swagger-ui.html
- Database: localhost:5432 (hackathon_db)
- ✅ 대회 소개 및 참가 안내 페이지
- ✅ 해커톤 신청 폼 (팀 정보, 팀원 정보)
- ✅ 파일 업로드/다운로드 (드래그 앤 드롭)
- ✅ 실시간 팀명 중복 검사
- ✅ 신청 조회 및 수정
- ✅ 접수 기간 관리
- ✅ 신청 현황 대시보드
- ✅ 신청 팀 목록 및 상세 조회
- ✅ 데이터 내보내기 (Excel, CSV)
- ✅ 시스템 설정 관리
- 개인정보 암호화: AES-256 암호화
- 보안 헤더: XSS, CSRF 방지
- 입력값 검증: 프론트엔드 + 백엔드 이중 검증
- 파일 보안: 바이러스 스캔, 확장자 검증
- 개인정보보호법 준수: 1년 보관 후 자동 삭제
# Kubernetes 매니페스트 적용
kubectl apply -f k8s/
# 서비스 확인
kubectl get services
kubectl get pods# .env 파일 생성
cp .env.example .env
# 필요한 환경 변수 설정
DATABASE_URL=postgresql://...
REDIS_URL=redis://...
AZURE_STORAGE_CONNECTION_STRING=...- 동시 접속: 최대 100명
- 페이지 로딩: 3초 이내
- 파일 업로드: 50MB 파일 5분 이내
- 가용성: 99.9% 이상
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
프로젝트 관련 문의사항이 있으시면 이슈를 생성해 주세요.
개발 기간: 2025.09.11 ~ 2025.10.11 (4주)
배포 환경: Azure AKS
대상 사용자: 대학생 이상 (최대 5명 팀)