익숙한 컨트롤러와 서비스
컨트롤러는 요청을 받고 서비스는 업무를 처리합니다. Go의 구조체와 메서드로 각 역할을 나눕니다.
컨트롤러 작성법 보기
NestJS와 Spring에서 사용하던 컨트롤러와 서비스 구조로 Go 앱을 구성하세요. 생성자 주입과 인터셉터를 사용하고, 같은 자원에서 측정한 처리량과 메모리 사용량을 확인할 수 있습니다.
go install github.com/NARUBROWN/spine-cli/cmd/spine@v0.1.4
spine new hello-spine --module example.com/hello-spine
cd hello-spine
go mod tidy
spine contract check
spine verify
spine dev
CLI로 프로젝트를 생성하고 검증한 뒤 실행합니다. 전체 절차는 첫 앱 문서에서 확인하세요.
CLI로 첫 앱 만들기NestJS/Express, Spring MVC, FastAPI/Uvicorn에 모두 3 vCPU와 3GiB 메모리를 할당해 비교했습니다.
Spine 내부 랩 테스트 / 2026.11.01
측정 조건과 전체 결과 보기163,559req/s
HTTP 처리량
포화 부하에서 측정한 중앙값
41.8MiB
관측 메모리
초당 2만 요청일 때의 사용량
1.062ms
p99 응답 지연
초당 2만 요청일 때의 지연
높을수록 좋습니다
사용자 1명이 초당 한 번 요청한다면
Spine이었다면 약 69,582명분의 요청을 더 처리할 수 있었습니다.
Spine이었다면 약 44,616명분의 요청을 더 처리할 수 있었습니다.
Spine이었다면 약 113,386명분의 요청을 더 처리할 수 있었습니다.
동시 연결 256개에서의 포화 처리량. 각 구현의 실제 처리량을 비교했습니다.
초당 처리량 차이를 1명당 초당 1회 요청으로 환산한 예시입니다. 실제 수용 인원은 요청 빈도와 앱의 작업에 따라 달라집니다.