[Golang으로 백엔드 개발하기] 1. 웹 프레임워크 선정
이미 잘나가던 gin, echo vs. 혜성처럼 등장한 fiber
Photo by Maarten Deckers on Unsplash
기존의 언어 백엔드 프레임워크 상황은?
기존의 언어 같은 경우 각 언어마다 누구나 알만하고 절대적인 입지를 가진 프레임워크가 존재한다.
- Java -> Spring
- Python -> Django, Flask
- Node.js -> Express, Koa 이 정도가 기존에 사용하던 프레임워크 들이고
- Kotlin -> Ktor
- Python -> FastAPI
- Node.js -> Fastify, Nest.js
정도가 최신에 개발되어 널리 쓰이기 시작한 프레임워크들이다.
Golang은 다른 것에 비해 소위 잘나가는 프레임워크가 있긴하지만 Java의 Spring과 같이 절대적인 입지를 가진 프레임워크는 없기 때문에 몇 개의 프레임워크 중에서 선택해야 한다.
백엔드 프레임워크 정하기
절대적인 입지를 가진 프레임워크가 없을 뿐이지 Golang 생태계에서 널리 쓰이는 프레임워크는 4개 정도 있다.
- Gorilla Web Toolkit
- gin-gonic/gin - Star 56.8k
- labstack/echo - Star 21.9k
- gofiber/fiber - Star 19.1k
Gorilla Web Toolkit은 Websocket이나 Sesstion 때문에 아래 있는 3개 프레임워크를 사용할지라도 사용한다
Star History
gin
은 가장 오랫동안 개발되어 왔으며 현재 Star 수도 압도적 1위이지만 한국에서는 무겁다는 이유로(Benchmark에서 다른 2개의 프레임워크보다 뒤쳐진다) 잘 사용되지는 않는 것 같다.
echo
가 한국 기준에서는 널리 사용되는 것 같은데 문서가 친절하진 않다. 물론 Golang의 코드는 정말 간결하고 알아보기 쉽기 때문에 어느 정도 백엔드를 이해하고 있는 사람이라면 상관 없겠지만 입문자에게는 조금 불친절할 수도 있다.
fiber
는 fasthttp
를 기반으로 하고 있기 때문에 현재 Golang 프레임워크 Benchmark를 휩쓸고 있다. 위 사진에서도 보이겠지만 2020년에 나왔지만 1년도 안되서 10k를 넘기고 현재 echo
와 비슷한 Star 개수를 달성했다. 또한 공식 문서의 내용도 탄탄하기 때문에 개발하기 편해보였다.
2년전 대입때 동아리 활동을 위해서 echo
를 사용해봤고 요즘 핫한 프레임워크를 사용해고 싶은 마음도 있어서 이번에는 fiber
를 사용해 볼 것이다.