Skip to content

prgrms-be-devcourse/NBE7-9-3-Team04

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

DevStation

개발자의 성장과 취업을 지원하는 AI 기반 통합 플랫폼, DevStation

💡서비스 소개

DevStation은 개발자들이 함께 성장할 수 있도록 돕는 플랫폼입니다.

커뮤니티를 통해 팀 프로젝트와 스터디를 모집하고,

OpenAI 기반 AI 면접 시스템을 통해 기술 면접을 준비하며,

Toss Payments를 통한 구독 서비스를 통해 프리미엄 서비스를 이용할 수 있습니다.


🎯 서비스 목표

  1. 개발자 간 협업 및 네트워킹 촉진

    • 스터디 및 프로젝트 팀 매칭 기능
    • 게시판을 통한 커뮤니티 형성
  2. AI를 통한 맞춤형 면접 준비

    • 포트폴리오 기반 기술 면접 질문 제공
    • 답변 피드백 및 꼬리질문 자동 생성
  3. 지속 가능한 구독 기반 서비스 운영

    • 유료 구독자를 위한 프리미엄 AI 기능 제공
    • Toss Payments 자동결제 연동

🧑‍💻 개발 기간 & 팀원

개발 기간

2025.11.14 (금) 09:00 ~ 2025.11.20 (목) 18:00

팀원

김은경 김규섭 서명진 이유찬 조영주 최병준
팀장 팀원 팀원 팀원 팀원 팀원

🧩 핵심 기능

1. 회원 관리 시스템 (JWT 인증 / Redis 기반)

2. OAuth 2.0 인증 기반 소셜 로그인

3. 게시판 및 커뮤니티 기능

4. AI 면접 지원 시스템 (OpenAI API 기반)

5. 랭킹 시스템(Redis 기반)

6. QnA 게시판

7. 결제 및 구독 서비스 (Toss Payments 연동)

8. Elasticsearch 기반 검색 기능

9. 마이페이지

10. 관리자 페이지

11. Slack WebHook을 통한 OpenAI API 토큰 사용 비용 모니터링

12. Discord WebHook을 통한 서버 ERROR 로그 및 GitHub 저장소 이벤트를 실시간 알림


⚙️ 환경 변수 설정

BACKEND (IntelliJ 환경 변수 설정)

# Database
DB_JDBC_URL=jdbc:mysql://localhost:3306/dev_station
DB_USER=your_db_user
DB_PASSWORD=your_db_password

# Email
MAILGUN_API_KEY=your_mailgun_api_key
MAILGUN_DOMAIN=your_mailgun_domain
MAILGUN_FROM=your_mailgun_sender

# OpenAI
OPENAI_API_KEY=your_openai_api_key
OPENAI_API_URL=https://api.openai.com/v1/chat/completions

# OpenAI ADMIN (OpenAI 사용량 조회 API)
OPENAI_ADMIN_API_KEY=your_openai_admin_key
OPENAI_ADMIN_API_URL=https://api.openai.com/v1/organization/costs

# Payment
PAYMENT_SECRET_KEY=your_payment_secret_key

# JWT
SECRET_PATTERN=your_secret_pattern

# GitHub OAuth
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret

# Slack / Discord Webhook
SLACK_WEBHOOK_URL=your_slack_webhook_url
DISCORD_WEBHOOK_URL=your_discord_webhook_url

FRONTEND (.env)

NEXT_PUBLIC_API_BASE_URL ="http://localhost:8080"

# Payment
NEXT_PUBLIC_TOSS_CLIENT_KEY = your_payment_secret_key

🧾 API 명세서 (Swagger)

http://localhost:8080/swagger-ui/index.html


🔗 ERD

Image

☁️ 시스템 아키텍처

Image

🧱 기술 스택

Frontend

Next.js React TypeScript TailwindCSS

Backend

Kotlin Spring Boot Spring Security Spring Data JPA QueryDSL Gradle Swagger MySQL H2 Database Redis Docker OpenAI API Toss Payments Mailgun

Test & Monitoring

JMeter InfluxDB Grafana

Search

Elasticsearch

Webhook

Slack Discord


🤖 Github Actions CI 자동화 Test

Workflow 개요

  • 트리거 조건
    • 브랜치: main, feature/*, fix/*, refactor/*
    • 경로: backend/**
  • 실행 환경
    • JDK 21
  • CI 단계
    1. 저장소 체크아웃
    2. Java 환경 세팅
    3. Gradle 실행 권한 부여
    4. 테스트 프로파일(spring.profiles.active=test)로 빌드 및 테스트 실행
    5. 테스트 결과를 PR 코멘트로 출력
    6. 실패한 코드 라인에 체크 코멘트 등록

💬 개발 컨벤션

🚀 GitHub Flow

  • main
    • 실제 서비스에 배포되는 안정화 브랜치
    • 직접 커밋 금지 (feature, fix, refactor 브랜치를 통해 반영)
    • 브랜치 보호 규칙 적용 : PR을 통해 최소 1명의 리뷰 승인 후 머지 가능
  • feature/ & fix/ & refactor/
    • 개별 기능 개발, 버그 수정, 코드 리팩토링용 브랜치
    • 이슈 단위로 생성하여 작업
    • 작업 완료 후 PR을 통해 main에 머지

🔄 작업 순서

  1. 이슈 생성 → 작업 단위 정의
  2. 브랜치 생성 → main 브랜치에서 이슈별 작업 브랜치 생성
  3. Commit & Push
  4. PR 생성 & 코드 리뷰 → 최소 1명 승인 필요
  5. Merge & 브랜치 정리
    • 리뷰 완료 후 main 브랜치로 Merge
    • Merge 후 이슈별 작업 브랜치 삭제

⚙️ 네이밍 & 작성 규칙

  1. 이슈

    • 제목 규칙 : [타입] 작업내용
    • 예시 : [feat] 로그인 기능 추가
    • 본문은 템플릿에 맞춰서 작성
  2. PR

    • 제목 규칙 : [타입] 작업내용
    • 예시 : [feat] 로그인 기능 추가
    • 본문은 템플릿에 맞춰서 작성 + close #이슈넘버
  3. 브랜치

    • 생성 기준 : main 브랜치에서 생성
    • 명명 규칙 : 타입/#이슈번호
    • 예시: feature/#1
  4. Commit Message 규칙

    타입 의미
    feat 새로운 기능 추가
    fix 버그 수정
    docs 문서 수정 (README, 주석 등)
    style 코드 스타일 변경 (포맷팅, 세미콜론 등. 기능 변화 없음)
    refactor 코드 리팩토링 (동작 변화 없음)
    test 테스트 코드 추가/수정
    chore 빌드, 패키지 매니저, 설정 파일 등 유지보수 작업(환경 설정)
    remove 파일, 폴더 삭제
    rename 파일, 폴더명 수정
    • 타입 : 작업내용 #이슈번호
    • 예시: feat : 로그인 기능 추가#1

About

프로그래머스 데브코스 7기 9회차 4팀 3차 프로젝트입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6