컨텐츠로 건너뛰기

소개

Gin은 Go(Golang)로 작성된 웹 프레임워크입니다. httprouter 덕분에 최대 40배 더 빠른 성능과 함께 Martini와 유사한 API를 제공합니다. 성능과 높은 생산성이 필요하다면, Gin을 좋아하게 될 것입니다.

이 섹션에서는 Gin이 무엇인지, 어떤 문제를 해결하는지, 그리고 프로젝트에 어떻게 도움이 될 수 있는지 살펴봅니다.

또는 프로젝트에 Gin을 바로 사용할 준비가 되었다면, 빠른 시작을 방문하세요.

기능

빠름

기수 트리(Radix tree) 기반 라우팅으로 메모리 사용량이 적습니다. 리플렉션을 사용하지 않습니다. 예측 가능한 API 성능을 제공합니다.

미들웨어 지원

수신되는 HTTP 요청은 미들웨어 체인과 최종 액션으로 처리할 수 있습니다. 예를 들어: 로거, 인증, GZIP, 그리고 최종적으로 DB에 메시지를 게시합니다.

크래시 방지

Gin은 HTTP 요청 중 발생한 패닉을 포착하고 복구할 수 있습니다. 이를 통해 서버는 항상 가용 상태를 유지합니다. 예를 들어 - 이 패닉을 Sentry에 보고하는 것도 가능합니다!

JSON 유효성 검사

Gin은 요청의 JSON을 파싱하고 유효성을 검사할 수 있습니다 - 예를 들어, 필수 값의 존재 여부를 확인합니다.

라우트 그룹화

라우트를 더 잘 구성할 수 있습니다. 인증 필요 vs 불필요, 다른 API 버전 등… 또한, 그룹은 성능 저하 없이 무한히 중첩할 수 있습니다.

오류 관리

Gin은 HTTP 요청 중 발생한 모든 오류를 수집하는 편리한 방법을 제공합니다. 최종적으로, 미들웨어가 이를 로그 파일, 데이터베이스에 기록하고 네트워크를 통해 전송할 수 있습니다.

내장 렌더링

Gin은 JSON, XML 및 HTML 렌더링을 위한 사용하기 쉬운 API를 제공합니다.

확장 가능

새로운 미들웨어를 만드는 것은 매우 쉽습니다. 샘플 코드를 확인해 보세요.

Gin v1. 안정 버전

  • 제로 할당 라우터.
  • 여전히 가장 빠른 HTTP 라우터이자 프레임워크. 라우팅부터 응답 작성까지.
  • 완전한 단위 테스트 모음.
  • 실전 검증 완료.
  • API 동결, 새로운 릴리스가 기존 코드를 깨뜨리지 않습니다.