본문 바로가기
Programming

Golang 프레임워크 비교

by BTC_아리 2023. 6. 8.

안녕하세요 여러분 베하!

Go 언어에 관심이 있는 분들은 어떤 프레임워크를 사용할지 고민이 될 수 있습니다.

그래서 오늘은 Go 언어의 프레임워크들을 비교해볼게요.

이 비교글을 보고 자신에게 맞는 프레임워크를 잘 선택하시길 바랍니다!

 

Overview - 23년 6월 5일 기준

  Stars Forks Documentation OpenIssue
Gin 69,185 7,503 https://gin-gonic.com/docs/ 513
Beego 29,819 5,583 https://beego.gocn.vip/beego/en-US/developing/ 10
Fiber 26,573 1,330 https://docs.gofiber.io/ 44
Echo 25,794 2,150 https://echo.labstack.com/ 46
Go-zero 24,445 3,449 https://go-zero.dev/ 265
Iris 24,004 2,477 https://www.iris-go.com/docs/#/ 83
Revel 12,911 1,415 https://revel.github.io/ 86
Martini 11,585 1,131 https://pkg.go.dev/gopkg.in/martini.v0#section-documentation 12
Buffalo 7,671 561 https://gobuffalo.io/documentation/ 25

Github stars가 높은 9가지를 표로 정리해보았습니다.

상위 4개의 프레임워크에 대해 좀 더 자세히 알려드릴게요.

 

1. Gin

https://github.com/gin-gonic/gin.git

 

GitHub - gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better perf

Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin. - ...

github.com

특징

  • Gin은 Go 기본 내장된 net/http를 사용해서 만들어졌습니다.
  • Django 프레임워크와 동일한 구문을 가지고 있습니다.
  • Gin은 소규모 웹 응용 프로그램에 적합합니다.
  • 한국어 지원 문서가 존재합니다.
  • gin은 라우팅 기능이 우수해서 데이터 통신에 상당히 빠릅니다.
  • 라우팅 성능은 좋지만 대용량 데이터 처리에 관해서 fiber에 비해 상대적으로 저조한 느낌입니다.

지원라이브러리

 

2. Beego

https://github.com/beego/beego

 

GitHub - beego/beego: beego is an open-source, high-performance web framework for the Go programming language.

beego is an open-source, high-performance web framework for the Go programming language. - GitHub - beego/beego: beego is an open-source, high-performance web framework for the Go programming langu...

github.com

특징

  • Scaffold 기능을 제공합니다.
  • 내장된 ORM(Object-Relational Mapping) 기능을 통해 데이터베이스와의 상호작용이 용이합니다.
  • 중국 개발자들 중심으로 개발되어 영어, 한글 자료가 부족합니다.

⇒ 최근에는 fiber나 gin과 같은 다른 프레임워크들이 더 빠른 속도와 경량화로 인해 더 많이 사용되고 있는 추세입니다.

 

지원하는 라이브러리

 

3. Fiber

https://github.com/gofiber/fiber.git

 

GitHub - gofiber/fiber: ⚡️ Express inspired web framework written in Go

⚡️ Express inspired web framework written in Go. Contribute to gofiber/fiber development by creating an account on GitHub.

github.com

특징

  • fasthttp를 사용하여 구현했습니다.
    • 단점 : net/http, HTTP/2에 대한 지원과 잘 호환되지 않고 사용하기 번거로운 면이 존재
    • 장점 : net/http 대비 최대 10배나 빠른 퍼포먼스
  • 한국어 설명 지원
  • 가장 압도적인 performance를 추구
  • 고성능과 경량화를 중요시하며, 비동기 이벤트 처리 및 멀티 스레딩 기능을 지원
  • 제로 메모리 할당과 애플리케이션 성능을 고려하여 개발자들이 보다 빠르게 개발할 수 있도록 설계됨

지원하는 라이브러리

 

4. Echo

https://github.com/labstack/echo.git

 

GitHub - labstack/echo: High performance, minimalist Go web framework

High performance, minimalist Go web framework. Contribute to labstack/echo development by creating an account on GitHub.

github.com

특징

  • 매우 간단하고 문서가 많습니다.
  • Net/Http기반입니다.
  • httprouter를 이용합니다.
    • 최적화된 HTTP 라우터와 동적 메모리 할당을 지원하여 라우터의 우선순위를 알아서 정할 수 있습니다.
  • 미들웨어 스택을 사용하여 HTTP 요청 처리를 단계별로 실행합니다.
  • RESTful API를 이용하여 확장성이 좋으며 렛츠인크립트(Let’s Encrypt)로부터 자동적으로 TLS 인증서를 설치합니다.

지원하는 라이브러리


전체적으로 Go lang 프레임워크들은 현재까지도 활발한 개발, 업데이트가 이루어지고 있기 때문에 많은 프레임워크들이 얼마나 성숙해질지 기대됩니다.

공식 문서들을 달아두었으니, 하나씩 들어가서 살펴보는 것도 추천드립니다.

그럼 다음시간에 만나요 안녕!

'Programming' 카테고리의 다른 글

JPA란?  (0) 2023.06.14
[Vue] Vuex 개념 및 설치  (0) 2023.06.09
[C#] .NET Winform 개발환경 구성  (0) 2023.06.06
Spring이란?  (0) 2023.05.30
[C#] .NET Framework에 대한 이해  (0) 2023.05.20

댓글