처음에 golang 프레임워크를 찾아보고 8가지 찾았고, 이 중에서 선택하는 과정을 거쳐보았다.
깃 허브 스타는 사람들이 얼마나 해당 프레임워크에 관심이 있는지를 뜻한다. (범용성)
echo | beego | gin | martini | fiber | fasthttp | atreugo | gnet |
---|---|---|---|---|---|---|---|
23k | 28.6k | 61.5k | 11.5k | 21.2k | 18.2k | 912 | 6.7k |
해당 기준에서 atreugo는 너무 낮기 때문에 0점, gnet은 1점, gin은 압도적인 5점, beego, echo, fiber는 3점, gnet은 1점, 나머지는 2점을 주었다.
쉽게 볼 수 있는 Docs가 있는가?
echo | beego | gin | martini | fiber | fasthttp | atreugo | gnet |
---|---|---|---|---|---|---|---|
✅ | ✅ | ⚠ | ⚠ | ✅ | ⚠ | ⚠ | ⚠ |
모두 Docs는 있다. 하지만 쉽게 정리되어 있는 Docs가 있는 것은 echo, beego, fiber 였다. 이들에게 모두 5점을 주고, 문서가 있던 gin, martini, fasthttp는 3점을 준다. atreugo와 gnet은 그마저도 부실했기에 1점을 준다.
echo | beego | gin | martini | fiber | fasthttp | atreugo | gnet |
---|---|---|---|---|---|---|---|
3 | 4 | 5 | 3 | 5 | 4 | 4 | 1 |
밑의 검색어에 구글 1페이지에 스택오버플로우나 블로그 글이 뜨는가? 를 기준으로 점수를 매겨 보았다.
echo | beego | gin | martini | fiber | fasthttp | atreugo | gnet |
---|---|---|---|---|---|---|---|
22.3 ⚠ | 22.7 ✅ | 22.6 ✅ | 14.5 ❌ | 22.7✅ | 22.6 ✅ | 22.7 ✅ | 22.2 ⚠ |
martini 0점, echo, gnet 4점, 그 외 5점을 준다.
echo | beego | gin | martini | fiber | fasthttp | atreugo | gnet |
---|---|---|---|---|---|---|---|
MIT ✅ | Apache License 2.0 - Copyright 2014 astaxie ✅ | MIT ✅ | MIT ✅ | MIT ✅ | MIT ✅ | Apache License 2.0 ✅ | Apache License 2.0 ✅ |
모두 5점을 주었다.
echo | beego | gin | martini | fiber | fasthttp | atreugo | gnet |
---|---|---|---|---|---|---|---|
43 | 제일 하위 | 63 | plaintext(297 - 2021년) | 9 | plaintext(156) | 13 | plaintext(9) |
성능 순위를 따졌을 때, 밑과 같이 점수를 주게 되었다.
fiber, atreugo - 5
gnet, echo, gin - 4
fasthttp - 3
martini - 2
beego - 1
echo | beego | gin | martini | fiber | fasthttp | atreugo | gnet |
---|---|---|---|---|---|---|---|
21 | 20 | 22 | 13 | 25 | 20 | 20 | 15 |
위의 내용을 보았을 때, fiber의 사용성과 생산성을 먼저 확인해볼 필요가 있고,
그 다음엔 gin, 그 다음은 echo 순으로 확인해 보아야 한다.
사실 이걸 한 이유는 새로운 사이드 프로젝트에 golang을 써볼 계획으로 조사했었지만, 아쉽게도 익숙함과 생산성을 기반으로 fastAPI를 선정하게 되었다. 다음에 golang을 쓰게 될 때 이 글을 참고해서 프레임워크를 조사해봐야 겠다.