<aside> 📌
서버는 Java 21과 Spring Boot를 사용하며, 빌드 자동화 도구로 Gradle을 사용합니다.
| 카테고리 | 라이브러리 / 프레임워크 |
|---|---|
| Core | Spring Web MVC, Security, Data JPA, Validation |
| Database | MySQL(Runtime), H2(Test), Redis, Flyway |
| Search | Spring Data Elasticsearch |
| Auth | JJWT(0.12.6), OAuth2 Client |
| Infrastructure | AWS S3 SDK, Firebase Admin, CoolSMS |
| Observability | Actuator, Micrometer Prometheus |
| 변수명 | 설명 |
|---|---|
| SERVER_NAME | 도메인 이름입니다(예: |
| www.domain.com). | |
| ES_PASSWORD | Elasticsearch elastic 사용자 비밀번호입니다. |
| MEDIAMTX_MIXER_TOKEN | 내부 GStreamer mixer 인증을 위한 공유 시크릿입니다. |
| FRONT_REDIRECT_ORIGIN | HLS/WebRTC를 위한 CORS 허용 origin입니다. |
| LOKI_URL | Grafana Loki 로그 수집 엔드포인트입니다. |
운영 환경은 bscene 브리지 네트워크로 연결된 서비스들로 구성된 Docker Compose를 사용합니다.
지속적 통합 및 배포를 위해 GitHub Actions를 사용합니다. 파이프라인은 main 브랜치에서 CI 워크플로가 성공적으로 완료되었을 때 트리거됩니다.
.env 파일이 동적으로 생성됩니다../gradlew build 명령을 실행합니다.docker compose up -d redis를 실행하고, 검색 기능이 필요하면 docker compose up -d elasticsearch를 추가로 실행합니다.-Dspring.profiles.active=dev로 설정하면 서버가 8080 포트에서 시작됩니다.