Skip to content

depromeet/ssolv-server

Repository files navigation

image

Tech Stack

Category Stack
Language Kotlin 1.9.25, Java 21
Framework Spring Boot 3.4.9, Spring Cloud 2024.0.1
Database MySQL, Redis 7
ORM Spring Data JPA / Hibernate, Kotlin-JDSL 3.8.0
Auth JWT, OAuth2 (Kakao, Apple)
HTTP Client Ktor Client 2.3.12
Push Firebase FCM
Observability Micrometer, OpenTelemetry, Sentry, Prometheus
Build Gradle 8 (Kotlin DSL), Jib

Infrastructure

스크린샷 2026-04-07 오전 1 05 51
[ Instance A ] ap-northeast-2a / EIP: 3.34.32.206
  ├── nginx (80/443, Let's Encrypt)
  └── app-server (Spring Boot, -Xmx400m)

[ Instance B ] ap-northeast-2c / EIP: 52.79.62.33
  ├── nginx (80/443 — api + registry)
  ├── app-server (Spring Boot, -Xmx400m)
  ├── redis:7-alpine
  ├── registry (registry.ssolv.site)
  └── alloy + node/nginx/redis-exporter

[ RDS ] MySQL 8.0.43 / db.t3.micro / private subnet
[ Route53 ] api.ssolv.site — Multivalue Answer + 헬스체크 기반 failover

IaC: Terraform (terraform/) — app_instance_count 변수로 단일↔멀티 서버 전환

cd terraform
terraform plan
terraform apply

인프라 설계 배경 및 의사결정: .claude/infra/DECISIONS.md


Multi-Modules

ssolv-server
├── ssolv-api-core        # 메인 API 서버 (인증, 미팅, 설문, 알림)
├── ssolv-api-place       # 장소 추천 서비스 (Google Places API 연동)
├── ssolv-api-common      # 공통 컨트롤러, 보안, 테스트 유틸
├── ssolv-domain          # 도메인 모델 및 Repository 인터페이스
├── ssolv-infrastructure  # JPA Entity, 외부 API 클라이언트, DB 어댑터
├── ssolv-global-utils    # 공통 응답/예외, Jackson 설정
└── ssolv-batch           # Redis Stream 기반 비동기 배치 처리

의존 방향

ssolv-api-core  ──┐
                  ├──▶ ssolv-api-common ──▶ ssolv-domain ──▶ ssolv-global-utils
ssolv-api-place ──┘                     ──▶ ssolv-infrastructure

About

디프만 17기 3팀 백엔드 레포

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors