{"id":30933497,"url":"https://github.com/bossm0n5t3r/jvm-web-framework-benchmark","last_synced_at":"2026-04-07T07:47:34.503Z","repository":{"id":310716629,"uuid":"1037876063","full_name":"bossm0n5t3r/jvm-web-framework-benchmark","owner":"bossm0n5t3r","description":"Spring MVC(가상 스레드 vs. 플랫폼 스레드)와 Spring WebFlux 간의 API 성능을 벤치마킹하기 위한 멀티 모듈 프로젝트입니다. Kotlin, Spring Boot, JPA, R2DBC, Gatling을 사용하여 블로킹/논블로킹 모델의 성능을 비교 분석합니다.","archived":false,"fork":false,"pushed_at":"2026-01-04T06:19:33.000Z","size":2173,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-07T07:47:31.693Z","etag":null,"topics":["docker","gatling","jpa","kotlin","performance-benchmark","postgresql","project-loom","r2dbc","reactive-programming","spring-boot","spring-mvc","spring-webflux","virtual-threads","web-framework"],"latest_commit_sha":null,"homepage":"https://bossm0n5t3r.github.io/jvm-web-framework-benchmark/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bossm0n5t3r.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-14T09:00:01.000Z","updated_at":"2026-01-04T06:19:40.000Z","dependencies_parsed_at":"2025-08-19T21:18:51.261Z","dependency_job_id":"56857d9c-9d47-4859-9255-2e539eb5d3e1","html_url":"https://github.com/bossm0n5t3r/jvm-web-framework-benchmark","commit_stats":null,"previous_names":["bossm0n5t3r/jvm-web-framework-benchmark"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bossm0n5t3r/jvm-web-framework-benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossm0n5t3r%2Fjvm-web-framework-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossm0n5t3r%2Fjvm-web-framework-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossm0n5t3r%2Fjvm-web-framework-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossm0n5t3r%2Fjvm-web-framework-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bossm0n5t3r","download_url":"https://codeload.github.com/bossm0n5t3r/jvm-web-framework-benchmark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossm0n5t3r%2Fjvm-web-framework-benchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31504897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","gatling","jpa","kotlin","performance-benchmark","postgresql","project-loom","r2dbc","reactive-programming","spring-boot","spring-mvc","spring-webflux","virtual-threads","web-framework"],"created_at":"2025-09-10T15:00:49.470Z","updated_at":"2026-04-07T07:47:34.490Z","avatar_url":"https://github.com/bossm0n5t3r.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JVM Web Framework Benchmark\n\nSpring MVC와 Spring WebFlux의 성능을 비교하기 위한 멀티 모듈 벤치마크 프로젝트입니다.\n\nMVC(virtual thread 유무)와 WebFlux(코루틴 유무) 조합을 동일한 API/DB/외부 호출 조건에서 비교하고, Gatling 리포트로 결과를 남깁니다.\n\n## 구성\n\n- `common`: 공통 DTO/테이블/유틸\n- `mvc-app`: Spring MVC + JPA + Virtual Thread (8080)\n- `mvc-without-virtual-thread-app`: Spring MVC + JPA (8083)\n- `webflux-app`: Spring WebFlux + R2DBC (8081)\n- `external-app`: 외부 API 시뮬레이터 (8082)\n- `benchmark-app`: Gatling 시뮬레이션 및 커스텀 벤치마크\n- `reports`: Gatling 리포트 결과\n\n## 빠른 시작\n\n```bash\n# MVC (Virtual Thread)\n./gradlew mvc-app:bootRun\n\n# MVC (Virtual Thread 미사용)\n./gradlew mvc-without-virtual-thread-app:bootRun\n\n# WebFlux\n./gradlew webflux-app:bootRun\n\n# 외부 API 시뮬레이터\n./gradlew external-app:bootRun\n```\n\n애플리케이션 실행 시 Spring Boot Docker Compose가 PostgreSQL을 자동으로 띄웁니다. 수동 관리가 필요하면 `docker-compose.yaml`을 사용하세요.\n\n## 벤치마크\n\n```bash\n# Gatling 시뮬레이션 실행\n./gradlew gatlingRun\n```\n\n- 시뮬레이션 상세 설명: `benchmark-app/README.md`\n- 최신 결과 요약: `benchmark.md`\n- HTML 리포트: `reports/gatling/`\n  - [external-app](/reports/gatling/external-app/index.html)\n  - [mvc](/reports/gatling/mvc/index.html)\n  - [mvc-without-virtual-thread](/reports/gatling/mvc-without-virtual-thread/index.html)\n  - [webflux](/reports/gatling/webflux/index.html)\n  - [webflux-without-coroutines](/reports/gatling/webflux-without-coroutines/index.html)\n\n## 기술 스택\n\n- Kotlin 2.3.0, Spring Boot 4.0.1, JDK 25\n- Spring MVC, Spring WebFlux\n- PostgreSQL 18, JPA(Hibernate), R2DBC\n- Gatling, Docker Compose\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbossm0n5t3r%2Fjvm-web-framework-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbossm0n5t3r%2Fjvm-web-framework-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbossm0n5t3r%2Fjvm-web-framework-benchmark/lists"}