Skip to content

Repository files navigation

TodayEng Backend

오늘의 나를 아는 질문으로 시작하는 영어 스피킹

오늘의 기록과 일상을 바탕으로 나만의 영어 질문을 만들고, 영어로 하루를 회고할 수 있도록 돕는 TodayEng의 Backend Repository입니다.



🛠 Tech Stack

Backend

AI & External Services

Infrastructure & DevOps


✨ Features

Feature Description
🧠 Personalized Questions 오늘의 기록과 과거 회고를 활용해 개인화된 영어 질문을 생성합니다.
🎙️ AI Speaking Reflection 음성·텍스트 답변을 분석하고 자연스러운 영어 표현과 교정 이유를 제공합니다.
🔗 External Context Google Calendar, Spotify, 날씨, 사진 등의 데이터를 회고 소재로 활용합니다.
📖 Diary & Memory 완성된 회고를 기록하고 과거 회고에서 추출한 사용자 기억을 다음 질문 생성에 활용합니다.
🔔 Web Push 작성 기록과 리마인더를 통해 꾸준한 영어 회고를 지원합니다.

🏗 System Architecture

system-architecture

Backend는 Google Compute Engine의 Blue / Green 두 환경에서 운영되며, GCP Load Balancer를 통해 활성 환경으로 트래픽을 전달합니다.

정형 데이터는 Cloud SQL for MySQL, 사진과 음성 등의 비정형 데이터는 Amazon S3에 저장합니다.


👩‍💻 Backend Team

홈 · 회고 아카이브
웹 푸시 알림
회고 컨텍스트 · 사용자 메모리
외부 서비스 연동 · CI/CD
인증 · 마이페이지
음성 회고 · 실시간 응답


🔥 Convention

🛠 Build Info

  • Language : Java 17
  • Framework : Spring Boot 3.3.4
  • Database : MySQL

🔐 Environment

src/main 하위에 resources 디렉토리와 application.yml을 생성해주세요.

인증 환경 변수

  • JWT_SECRET: HS256 서명용 32바이트 이상의 비밀키
  • GOOGLE_CLIENT_ID: Google OAuth 웹 클라이언트 ID
  • 로컬 실행 시 프로젝트 루트의 .env를 자동으로 읽습니다.
  • 인증 API는 POST /api/auth/google 요청 바디로 {"idToken":"..."}을 받습니다.
오디오 저장소 설정

운영 환경에서는 private S3 버킷을 사용합니다.

AUDIO_STORAGE_TYPE=s3
AUDIO_S3_BUCKET=todayeng-prod-media
AWS_REGION=ap-northeast-2
AWS_ACCESS_KEY_ID=발급받은-access-key-id
AWS_SECRET_ACCESS_KEY=발급받은-secret-access-key
AUDIO_S3_TTS_PREFIX=tts
AUDIO_S3_STT_PREFIX=stt
AUDIO_PLAYBACK_URL_EXPIRATION=30m

운영 서버는 GCP Compute Engine을 사용하므로 AWS 자격 증명은 GCP VM의 /opt/todayeng/.env에 주입하며 저장소나 Docker 이미지에는 포함하지 않습니다.

S3 버킷은 Block Public Access가 활성화된 private 상태로 유지하며, TTS 재생 시 Presigned URL을 생성합니다.

📋 Commit Convention

type branch description
feat feat/#ISSUE_NUM ⚡️ 새로운 기능 추가
fix fix/#ISSUE_NUM 🐛 버그 수정
docs docs/#ISSUE_NUM 📝 문서 수정
refactor refactor/#ISSUE_NUM ♻️ 리팩토링
test test/#ISSUE_NUM 🧪 테스트 코드 작성
chore chore/#ISSUE_NUM 🛠️ 빌드, 패키지 관련 수정
perf perf/#ISSUE_NUM 🪄 성능 개선
ci ci/#ISSUE_NUM 🔄 CI 관련 수정
cd cd/#ISSUE_NUM 🔄 CD 관련 수정
revert revert/#ISSUE_NUM ⚠️ 특정 커밋으로 되돌리기

📌 Git Branch Strategy

branch role
main 최종 배포용 브랜치
develop에서 안정화된 버전만 병합
develop 개발용 브랜치

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages