[Golang으로 백엔드 개발하기] 1. 웹 프레임워크 선정

이미 잘나가던 gin, echo vs. 혜성처럼 등장한 fiber

기존의 언어 백엔드 프레임워크 상황은?

기존의 언어 같은 경우 각 언어마다 누구나 알만하고 절대적인 입지를 가진 프레임워크가 존재한다.

  • 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은 Websocket이나 Sesstion 때문에 아래 있는 3개 프레임워크를 사용할지라도 사용한다

Star History

Star History Chart

gin은 가장 오랫동안 개발되어 왔으며 현재 Star 수도 압도적 1위이지만 한국에서는 무겁다는 이유로(Benchmark에서 다른 2개의 프레임워크보다 뒤쳐진다) 잘 사용되지는 않는 것 같다.

echo가 한국 기준에서는 널리 사용되는 것 같은데 문서가 친절하진 않다. 물론 Golang의 코드는 정말 간결하고 알아보기 쉽기 때문에 어느 정도 백엔드를 이해하고 있는 사람이라면 상관 없겠지만 입문자에게는 조금 불친절할 수도 있다.

fiberfasthttp를 기반으로 하고 있기 때문에 현재 Golang 프레임워크 Benchmark를 휩쓸고 있다. 위 사진에서도 보이겠지만 2020년에 나왔지만 1년도 안되서 10k를 넘기고 현재 echo와 비슷한 Star 개수를 달성했다. 또한 공식 문서의 내용도 탄탄하기 때문에 개발하기 편해보였다.

2년전 대입때 동아리 활동을 위해서 echo를 사용해봤고 요즘 핫한 프레임워크를 사용해고 싶은 마음도 있어서 이번에는 fiber를 사용해 볼 것이다.