1. 프로젝트 소개
2. 기술 스택
3. 아키텍처
4. 프로젝트 구조
5. 주요 기능
6. 시작하기
7. 환경 설정
8. API 문서
9. CI/CD
10. 팀원 소개
토론철(DebateSeason)은 다양한 커뮤니티의 사용자들이 모여 여러 주제에 대해 실시간 채팅을 통해 토론을 할 수 있는 플랫폼입니다. 토론철은 “결국 대화를 통해 서로를 이해하고, 갈등을 해결할 수 있다”는 신념으로 서비스를 만들고 있습니다.
src/main/java/com/debateseason_backend_v1/
├── common/ # 공통 모듈 (예외 처리, 응답 객체 등)
├── config/ # 애플리케이션 설정
├── domain/ # 도메인별 로직
│ ├── chat/ # 채팅 관련
│ ├── chatroom/ # 토론방 관련
│ ├── issueEntity/ # 이슈 관련
│ ├── profile/ # 사용자 프로필 관련
│ └── user/ # 사용자 인증 관련
├── security/ # 보안 관련 (JWT 등)
└── DebateSeasonBackendV1Application.java
- OIDC 인증 로그인(Kakao, Apple)
- JWT 기반 인증
- 토큰 재발급
- 사용자 프로필 관리
- 이슈 목록 조회
- 이슈 상세 조회
- 이슈 즐겨찾기
- 채팅방 생성
- 채팅방 상세 조회
- 찬성/반대 투표 기능
- WebSocket/STOMP 기반 실시간 메시지 전송
- 채팅 메시지 페이지네이션 조회
- JDK 17 이상
- Gradle
- MariaDB
-
저장소 클론
git clone https://github.com/your-repo/DebateSeason_Backend_V1.git
-
환경 설정 파일 생성
cd DebateSeason_Backend_V1/src/main/resources cp application-local.yml application-secret.yml -
application-secret.yml파일을 열어 데이터베이스 정보를 입력하세요. (아래 환경 설정 참고) -
프로젝트 디렉토리로 이동
cd DebateSeason_Backend_V1 -
애플리케이션 빌드
./gradlew build
-
애플리케이션 실행
./gradlew bootRun
application-local.yml: 로컬 개발 환경application-dev.yml: 개발 서버 환경application-prod.yml: 프로덕션 환경application-test.yml: 테스트 환경
로컬 환경에서 실행하려면 src/main/resources 디렉토리에 application-secret.yml 파일을 생성하고 다음 설정을 추가해야 합니다.
spring:
jpa:
hibernate:
ddl-auto: create
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://localhost:3306/YOUR_DATABASE?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
username: YOUR_USERNAME
password: YOUR_PASSWORDYOUR_DATABASE, YOUR_USERNAME, YOUR_PASSWORD 부분을 실제 MariaDB 정보로 변경하세요.
애플리케이션 실행 후 다음 URL에서 Swagger UI를 통해 API 문서를 확인할 수 있습니다.
http://localhost:8080/swagger-ui/index.html#/
GitHub Actions과 AWS를 통해 브랜치에 따라 자동 배포가 진행됩니다.
- 개발 환경: develop 브랜치에 코드가 병합되면, 빌드&테스트 후 개발 서버에 자동 배포
- 운영 환경: main 브랜치에 코드가 병합되면, 빌드&테스트 후 운영 서버에 자동 배포
팀원 정보는 추후 업데이트 예정입니다.