Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证MMRTR 조회 서비스
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗리그 오브 레전드 전적 검색 서비스의 회원·커뮤니티·듀오 백엔드. OAuth/RSO 로그인, 커뮤니티, 듀오 찾기와 (이전 전까지) 챔피언 통계를 제공합니다.
Riot 데이터(소환사·전적·리그/랭킹·게임 데이터)는 lol-repository 가 소유하고 서빙하며, lol-server 는 DB 가 아니라 그 API 로만 받습니다 (app 스키마만 소유 — docs/db-split/README.md).
STATS_DATASOURCE=bigquery)local 프로파일은 다음 외부 서비스가 필요합니다.
localhost:5432 (DB postgres, user postgres, password 1234 기본)localhost:6379http://localhost:8112 — 듀오 글·신청에 붙일 Riot 계정 통계 조회. 없으면 통계 없이 만들어진다stats.datasource=bigquery 사용 시)로컬 인프라는 docker/docker-compose-local.yml 로 한 번에 기동할 수 있습니다.
# postgres / redis
docker compose -f docker/docker-compose-local.yml up -d
모니터링 스택 (Prometheus / Grafana / Loki / Promtail + 앱 컨테이너 통합) 은 별도 compose 로 분리되어 있습니다.
docker compose -f docker/docker-compose.monitoring.yml up -d
# Grafana http://localhost:3010 (admin/admin), Prometheus :9090, Loki :3100
운영 이미지는
docker/Dockerfile(JDK 21 멀티스테이지 빌드).
# 로컬 실행 (Docker 인프라 기동 후)
./gradlew bootRun -Dspring.profiles.active=local
# 단일 모듈 실행 가능 jar (bootJar 산출은 app:application 모듈에만 활성)
./gradlew :module:app:application:bootJar
# 전체 테스트
./gradlew test
# 단일 클래스만 실행
./gradlew :module:<모듈경로>:test --tests <클래스명>
# RestDocs HTML 재생성 (RestDocs 테스트 변경 시 필수)
./gradlew :module:infra:api:asciidoctor
# 클린 빌드
./gradlew clean build
run-local.sh 는 build → JAR 실행을 한 번에 수행하며, .env 의 DB_HOST/DB_PORT/DB_NAME/DB_USERNAME/DB_PASSWORD 를 system property 로 주입합니다.
local, prod, test<module>-<profile>.yml) 을 module/app/application/src/main/resources/application-<profile>.yml 에서 importSTATS_DATASOURCE=bigquery, DB_*, LOL_REPOSITORY_INTERNAL_URL(prod, lol-repository 내부 포트 8081), RSO 클라이언트 자격증명, BigQuery 서비스 계정 경로헥사고날 (Ports & Adapters) 기반의 Gradle 멀티 모듈 구조. 컨텍스트마다 domain + application(port.in·port.out) + adapter(in/web · out) 를 갖고, 의존은 adapter → application → domain 단방향입니다. app:application 만 bootJar 를 산출하며 모든 모듈을 implementation 으로 묶어 컴포지션 루트 역할을 합니다.
module/
├── app/application/ # Spring Boot 진입점, 컴포지션 루트, bootJar, app 스키마 Flyway 체인
├── common/ # 공유 커널 (web·error·security + JPA·Redis·S3 config, testFixtures)
├── shared/ # Tier, Platform, TierFilter (championstats 용)
├── support/logging/ # @LogExecutionTime AOP 등 횡단 유틸
└── domain/
├── member/ # 회원 + RSO/OAuth2 로그인 (RefreshToken / JWT)
├── community/ # 게시글 / 댓글 / 투표 / 이미지
├── duo/ # 듀오 모집글 / 신청 (Riot 계정 통계는 lol-repository 내부 API)
└── championstats/ # 챔피언 통계 OLAP (BigQuery) — lol-repository 로 이전 예정
자세한 모듈 가이드는 CLAUDE.md 와 각 모듈의 CLAUDE.md 참조.
GET /internal/v1/summoners/{puuid}/duo-profile(lol-repository 내부 포트)로 받아 글·신청 생성 시점에 스냅샷으로 저장하되, 받지 못하면(무응답·장애·색인 없음) 통계 없이 만든다(티어 UNRANKED 표식, 언랭 검증 생략). 듀오는 RSO 연동 회원만 쓰므로 매칭 상대에게 보여 줄 Riot ID 는 lol-repository 에 묻지 않고 연동 때 저장한 값을 쓴다. 그 값이 없는 예전 연동이면 다시 연동하라고 막는다(RIOT_ACCOUNT_RELINK_REQUIRED).STATS_DATASOURCE=bigquery). lol-repository 로 이전 예정.상세 규칙은 각 모듈 CLAUDE.md. 공통 베이스라인:
@RequiredArgsConstructor + private final (생성자 주입)@Transactional(readOnly = true), 변경 @TransactionalResponseEntity<ApiResponse<T>>, RESTful 상태 코드 (POST 201 / GET·PUT 200 / DELETE 204)validate* guard 가 직접 던진다 (서비스에서 boolean+throw 금지)*ReadModel.of(domain) 정적 팩토리에서만OAuthProvider.RIOT.name(), DuoPostStatus.ACTIVE.name() 등 enum 사용<type>: <한글 설명> (타입 feat, fix, refactor, docs, chore)feature/*, fix/*, refactor/* (<type>/<kebab 설명>) → develop → main; hotfix 는 hotfix/* → main → developCloses MP-<번호> (일부만 다루면 Part of MP-<번호>)CLAUDE.md — 모듈 라우팅 / 작업 별 진입점docs/ARCHITECTURE.md — 모듈 의존 그래프 + 데이터 흐름 (mermaid) + 변경 영향 표docs/workflow.md — 브랜치 / 커밋 규칙, PR 본문 기반 Linear (MP-*) 이슈 연결 · 생명주기docs/docs-maintenance.md — CLAUDE.md / 문서 동기화 절차 (PR 시점 / 분기 리뷰 / CI 게이트)docs/oauth2-login.md, docs/rso-oauth2-troubleshooting.md — OAuth/RSO 흐름 디테일module/infra/api/src/docs/asciidoc/index.adoc — 생성된 API 문서 entry이 프로젝트는 비공개 저장소입니다.