코딩 문제 풀이와 스니펫 공유를 위한 웹 플랫폼입니다.
- AI 코드 평가: OpenAI API를 활용한 코드 품질 분석
- 문제 풀이: 다양한 프로그래밍 문제 제공
- 스니펫 공유: 코드 스니펫 작성 및 공유
- OAuth2 로그인: Google, Kakao 소셜 로그인 지원
- 실시간 알림: WebSocket을 통한 실시간 알림
- 포인트 시스템: 활동에 따른 포인트 적립 및 뱃지 시스템
- Spring Boot 3.x
- Spring Security + JWT
- Spring Data JPA
- MySQL 8.0
- WebSocket
- AWS S3
- React 18
- React Router
- Axios
- WebSocket
- AWS EC2
- AWS RDS
- AWS S3
- CloudFront
- Application Load Balancer
- Java 17+
- Node.js 18+
- MySQL 8.0+
- AWS 계정
git clone https://github.com/your-username/SnippetHub.git
cd SnippetHubbackend/src/main/resources/application.properties 파일을 생성하고 다음 환경 변수들을 설정하세요:
# JWT Configuration
jwt.secret=your-jwt-secret-key-here
# Database Configuration
spring.datasource.url=jdbc:mysql://your-database-host:3306/snippethub_db
spring.datasource.username=your-database-username
spring.datasource.password=your-database-password
# Email Configuration
spring.mail.username=your-email@gmail.com
spring.mail.password=your-app-password
# AWS Configuration
cloud.aws.credentials.access-key=your-aws-access-key
cloud.aws.credentials.secret-key=your-aws-secret-key
cloud.aws.s3.bucket=your-s3-bucket-name
# OAuth2 Configuration
spring.security.oauth2.client.registration.kakao.client-id=your-kakao-client-id
spring.security.oauth2.client.registration.kakao.client-secret=your-kakao-client-secret
spring.security.oauth2.client.registration.google.client-id=your-google-client-id
spring.security.oauth2.client.registration.google.client-secret=your-google-client-secret
# AI API Configuration
ai.openai.api.key=your-openai-api-key
ai.claude.api.key=your-claude-api-keyfrontend/.env 파일을 생성하고 다음 환경 변수들을 설정하세요:
REACT_APP_API_URL=http://localhost:8080/api
REACT_APP_WS_URL=ws://localhost:8080/wsMySQL에서 데이터베이스를 생성하세요:
CREATE DATABASE snippethub_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;cd backend
./gradlew bootRuncd frontend
npm install
npm start- EC2 인스턴스 생성
- RDS MySQL 데이터베이스 생성
- S3 버킷 생성
- CloudFront 배포 설정
- Application Load Balancer 설정
자세한 배포 가이드는 DEPLOYMENT.md를 참조하세요.
API 문서는 API_DOCUMENTATION.md를 참조하세요.
- 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 파일을 참조하세요.
프로젝트에 대한 문의사항이 있으시면 이슈를 생성해 주세요.
- 민감한 정보(API 키, 비밀번호 등)는 절대 코드에 하드코딩하지 마세요
- 환경 변수를 사용하여 민감한 정보를 관리하세요
- 프로덕션 환경에서는 HTTPS를 사용하세요