[POKR] golang 프레임워크 정하는 과정

Tag·2022년 12월 1일
0

사이드 프로젝트

목록 보기
5/6

처음에 golang 프레임워크를 찾아보고 8가지 찾았고, 이 중에서 선택하는 과정을 거쳐보았다.

  • echo
  • beego
  • gin
  • martini
  • fiber
  • fasthttp
  • atreugo
  • gnet

깃 허브 스타

깃 허브 스타는 사람들이 얼마나 해당 프레임워크에 관심이 있는지를 뜻한다. (범용성)

echobeegoginmartinifiberfasthttpatreugognet
23k28.6k61.5k11.5k21.2k18.2k9126.7k

해당 기준에서 atreugo는 너무 낮기 때문에 0점, gnet은 1점, gin은 압도적인 5점, beego, echo, fiber는 3점, gnet은 1점, 나머지는 2점을 주었다.

Docs 유무

쉽게 볼 수 있는 Docs가 있는가?

echobeegoginmartinifiberfasthttpatreugognet

모두 Docs는 있다. 하지만 쉽게 정리되어 있는 Docs가 있는 것은 echo, beego, fiber 였다. 이들에게 모두 5점을 주고, 문서가 있던 gin, martini, fasthttp는 3점을 준다. atreugo와 gnet은 그마저도 부실했기에 1점을 준다.

정보의 접근성 - 서치

echobeegoginmartinifiberfasthttpatreugognet
34535441

밑의 검색어에 구글 1페이지에 스택오버플로우나 블로그 글이 뜨는가? 를 기준으로 점수를 매겨 보았다.

  • {framework} errorhandling
  • {framework} router example
  • {framework} mulipart upload
  • {framework} async sample

업데이트 유무

echobeegoginmartinifiberfasthttpatreugognet
22.3 ⚠22.7 ✅22.6 ✅14.5 ❌22.7✅22.6 ✅22.7 ✅22.2 ⚠

martini 0점, echo, gnet 4점, 그 외 5점을 준다.

상업적 사용가능한 라이센스

echobeegoginmartinifiberfasthttpatreugognet
MIT ✅Apache License 2.0 - Copyright 2014 astaxie ✅MIT ✅MIT ✅MIT ✅MIT ✅Apache License 2.0 ✅Apache License 2.0 ✅

모두 5점을 주었다.

벤치마킹 - 성능 순위

echobeegoginmartinifiberfasthttpatreugognet
43제일 하위63plaintext(297 - 2021년)9plaintext(156)13plaintext(9)

성능 순위를 따졌을 때, 밑과 같이 점수를 주게 되었다.

fiber, atreugo - 5
gnet, echo, gin - 4
fasthttp - 3
martini - 2
beego - 1

최종 선정 점수

echobeegoginmartinifiberfasthttpatreugognet
2120221325202015

실제 사용성 및 생산성

위의 내용을 보았을 때, fiber의 사용성과 생산성을 먼저 확인해볼 필요가 있고,

그 다음엔 gin, 그 다음은 echo 순으로 확인해 보아야 한다.


사실 이걸 한 이유는 새로운 사이드 프로젝트에 golang을 써볼 계획으로 조사했었지만, 아쉽게도 익숙함과 생산성을 기반으로 fastAPI를 선정하게 되었다. 다음에 golang을 쓰게 될 때 이 글을 참고해서 프레임워크를 조사해봐야 겠다.

profile
블로그 변경: https://blog.taewan.link

0개의 댓글