빠름
기수 트리(Radix tree) 기반 라우팅으로 메모리 사용량이 적습니다. 리플렉션을 사용하지 않습니다. 예측 가능한 API 성능을 제공합니다.
Gin은 Go(Golang)로 작성된 웹 프레임워크입니다. Martini와 유사한 API를 제공하지만, Martini보다 최대 40배 빠른 성능을 자랑합니다. 성능과 생산성이 필요하다면, Gin을 좋아하게 될 것입니다.
빠름
기수 트리(Radix tree) 기반 라우팅으로 메모리 사용량이 적습니다. 리플렉션을 사용하지 않습니다. 예측 가능한 API 성능을 제공합니다.
미들웨어 지원
수신되는 HTTP 요청은 미들웨어 체인과 최종 액션으로 처리할 수 있습니다. 예를 들어: 로거, 인증, GZIP, 그리고 최종적으로 DB에 메시지를 게시합니다.
크래시 방지
Gin은 HTTP 요청 중 발생한 패닉을 포착하고 복구할 수 있습니다. 이를 통해 서버는 항상 가용 상태를 유지합니다. 예를 들어 이 패닉을 Sentry에 보고하는 것도 가능합니다!
JSON 유효성 검사
Gin은 요청의 JSON을 파싱하고 유효성을 검사할 수 있으며, 예를 들어 필수 값의 존재 여부를 확인할 수 있습니다.
라우트 그룹화
라우트를 더 잘 구성할 수 있습니다. 인증 필요 vs 불필요, 다른 API 버전 등. 또한, 그룹은 성능 저하 없이 무한히 중첩할 수 있습니다.
오류 관리
Gin은 HTTP 요청 중 발생한 모든 오류를 수집하는 편리한 방법을 제공합니다. 최종적으로, 미들웨어가 이를 로그 파일, 데이터베이스에 기록하고 네트워크를 통해 전송할 수 있습니다.
내장 렌더링
Gin은 JSON, XML 및 HTML 렌더링을 위한 사용하기 쉬운 API를 제공합니다.
확장 가능
새로운 미들웨어를 만드는 것은 매우 쉽습니다. 샘플 코드를 확인해 보세요.