Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

dev.log

Go 라이브러리 검색하는 방법 본문

golang

Go 라이브러리 검색하는 방법

sh0seo 2017. 9. 28. 20:01




새로운 언어를 사용할 때 가장 걱정되는 것 중에 하나는 필요한 라이브러리가 어디에 어떤게 있을까입니다. C++, C#, Java 처럼 많이 사용되어온 것들은 개발자의 입맛에 따라 선택의 폭이 다양합니다. 하지만 Go처럼 빠르고 성장하는 언어들은 아직 안정된 라이브러리 혹은 프레임워크가 부족할 수 있습니다.


그리고 검색을 통해 찾은 라이브러리가 정말 괜찮은지도 의문입니다. 그나마 확실한 것은 github에서 star를 많이 받은 라이브러리들입니다.


오늘은 Go 라이브러리를 검색하는 방법을 정리합니다.

목차

  1. GoDoc을 이용하는 방법
  2. Github를 이용하는 방법
  3. Golanglib를 이용하는 방법

GoDoc을 이용하는 방법

godoc.org site를 이용하는 방법입니다. godoc은  다양한 Go 프로그램들을 검색할 수 있습니다. 장점으로는 Go의 공식 사이트이기 때문에 모든 Go 패키지들을 검색할 수 있습니다. 단점으로는 keyword 위주의 검색기능을 제공하기 때문에 순위, 카테고리 별로 분류 기능은 없습니다.  때문에 이미 알고 있는 특정 패키지를 검색하는 용도에 적절합니다.


또 다른 이용방법으로는 A라는 패키지를 알고 있고 A 패키지가 제공하지 않는 기능을 제공하는 다른 패키지를 검색할 때 유용합니다. 예를 들어 micro framework인 gin을 검색하면 아래와 같이 화면이 나옵니다.



gin은 beego, echo와 달리 jwt 기능을 제공하지 않습니다. 그러면 이런 기능을 제공하는 다른 패키지는 그 아래쪽으로 찾다보면 다음과 같이 찾을 수 있습니다.



Github를 이용하는 방법

Github는 몇가지 쿼리를 구성하여 검색하는 방법이 있습니다. Go 언어의 프로젝트 중에서 star를 가장 많이 받은 녀석을 검색하여 알려주는 URL 쿼리는 다음과 같습니다.


https://github.com/search?l=Go&o=desc&q=go&s=stars&type=Repositories&utf8=%E2%9C%93


눈에 띄는 것은 Go 언어보다 moby 프로젝트가 훨씬 많은 star를 보유하고 있습니다.




이 방법의 장점은 star를 보유한 순서대로 분류하여 볼 수 있다는 장점이 있습니다. 단점으로는 약 9만개의 프로젝트를 star 순서대로 찾아야합니다. 참고로 web framework 중에서 가장 많은 star를 갖고 있는 beego(https://github.com/astaxie/beego)는 12,000 정도 입니다.


Golanglib를 이용하는 방법

Golanglib는 위의 두 가지 방법의 장점을 합친 검색방법을 제공합니다. 다음 화면은 가장 많은 star를 보유하고 있는 프로젝트를 검색한 화면입니다. Github에서 검색한 결과와 같습니다.




만약, 찾고자하는 패키지가 webframework이라면 해당 카테고리를 클릭하면 다음과 같이 검색됩니다.



정리

Go가 C#처럼 거대한 framework로 발전할 가능성은 없습니다. C#의 .NET Framework가 사실 이런면이 부럽습니다. 다른 여타 라이브러리를 검색할 일이 별로 없습니다. 대부분의 기능은 .NET Framework에 있기 때문입니다. 하지만 가벼운 것이 장점이 Go에게 .NET Framework는 무리라고 생각합니다. 그러면 이렇게 좋은 라이브러리를 검색하여 이용하는 방법을 미리 숙지하고 있는 것이 좋지 않을까 생각합니다.



'golang' 카테고리의 다른 글

Go를 지원하는 nginx unit  (0) 2017.09.28
2017.09.17 GDG Seoul Meetup 자료  (0) 2017.09.28
Gin의 Watch 기능을 이용한 개발  (0) 2017.09.28
Go의 의존성 관리도구 dep  (0) 2017.09.07
Go 1.9 Release  (0) 2017.09.07