한국 오픈소스 프로젝트 랭킹 Top 100

huni_·2022년 7월 28일
0

개발자 플랫폼 GitHub의 데이터를 이용하여 한국 오픈소스 프로젝트를 선별하고 분석해보았습니다.

GitHub은 개발자들이 프로그램의 코드를 올리고 공유할 수 있는 플랫폼으로 오픈소스 개발자들에게는 성지와 같은 곳입니다. 세상에 존재하는 대부분의 오픈소스 프로그램들은 GitHub에서 그 코드가 공개되어 있습니다.

GitHub에는 또한 페이스북의 좋아요와 같은 Star라는 기능이 있어 내가 다른 사람이 작성한 프로젝트를 좋아한다는 표시를 할 수 있습니다. 어떤 프로젝트가 Star를 많이 받았다는 사실은 다른 개발자들에게 그만큼 인정을 받고 있다고 할 수 있습니다.

물론 페이스북에서 좋아요를 많이 받은 글이 꼭 좋은 글임을 보장하는 것이 아니듯이 GitHub에서도 Star를 많이 받았다는 사실이 꼭 그 프로젝트가 좋은 프로젝트라고 보장하는 것은 아닙니다. 그럼에도 불구하고 Star 수를 관찰하는 것은 좋은 프로젝트를 발견하는 단순하고 효율적인 방법입니다.

따라서 이번 글에서는 현재 한국에 있는 개발자, 한국 소재의 회사 혹은 그 멤버가 GitHub 상에 공개한 프로젝트를 Star 순으로 나열하여 상위 100개의 프로젝트를 추렸습니다. 전체 리스트는 글의 마지막에 있습니다.

가장 유명한 오픈소스 프로젝트는?

가장 유명한 오픈소스는 Junegunn Choi 님의 fzf 프로젝트 입니다. fzf는 개발자들이 소스 코드를 검색할 때 이용할 수 있는, 말하자면 개발자의 생산성을 향상시켜주는 도구입니다. 2018년 12월 말 기준 18,488 개의 Star를 받았는데, 이는 전 세계 모든 프로젝트 중 300 번째로 많은 수준입니다.

오픈소스 커뮤니티에 가장 기여를 많이 한 회사는?

1위 - NHN 엔터테인먼트


위의 리스트에 가장 많은 프로젝트를 올린 회사는 NHN 엔터테인먼트입니다. NHN 엔터테인먼트는 웹페이지의 UI를 개선하는 Toast UI 시리즈를 연달아 히트시키며 많은 주목을 받았습니다. 관련 정보는 http://ui.toast.com/ 에서 확인하실 수 있습니다.

2위 - 네이버

네이버는 서비스의 상태를 모니터링하는 도구인 Pinpoint와 기타 웹 관련 프로젝트로 리스트에 이름을 올렸습니다. 다른 네이버의 오픈소스 프로젝트는 https://naver.github.io/ 에서 확인하실 수 있습니다.

3위 - 삼성, 데브시스터즈

삼성은 IoT 플랫폼 iot.js 와 머신 러닝 플랫폼 veles 를 공개했습니다.

데브시스터즈는 구글의 오픈소스 프로젝트 chromium의 네트워크 관련 일부 기능 (QUIC)을 분리해서 포장한 라이브러리 libquic 과 강화 학습 관련 구현체 DQN-tensorflow 를 공개했습니다.

오픈소스 커뮤니티에 가장 기여를 많이 한 인물은?

1위 - Junegunn Choi 님 (8 개의 프로젝트)

위에서 가장 유명한 프로젝트를 만드신 분으로 꼽힌 Junegunn Choi 님이 상위 100개의 프로젝트 중 가장 많은 프로젝트를 만드신 분으로 꼽혔습니다.

Junegunn 님은 한국의 가장 유명한 오픈소스인 fzf 외에도 개발자들이 많이 쓰는 텍스트 에디터 vim 의 여러 플러그인 관련 프로젝트를 공유하셨습니다 (vim-plug, fzf.vim, vim-easy-align, goyo.vim 등). 개발자의 개발 경험 향상을 위해 기여하신 분입니다.

2위 - Jeon Suyeol 님 (6 개의 프로젝트)

두 번째로 많은 기여는 Jeon Suyeol 님이 해주셨습니다. Suyeol 님의 작업물들은 iOS와 iOS를 개발할 때 사용하는 언어 Swift에 관한 것입니다. 주요 작업물로 iOS 개발에 이용할 수 있는 Then, URLNavigator, Toaster, RxTodo 등이 있습니다.

3위 - Kyubyong Park 님 (5 개의 프로젝트)

세 번째로 많은 기여를 해주신 분은 Kyubyong Park 님입니다. Kyubyong 님은 A. I. 연구자로서 자연어 처리 관련 주제 큐레이션 nlp_tasks, Tenserflow를 이용한 언어 처리 기능 구현체 (transformer, tacotron) 등을 공유해주셨습니다.

가장 많이 등장한 주제는?

프로젝트 관리자가 직접 등록한 주제 목록
GitHub에서는 프로젝트 관리자가 해당 프로젝트의 관련 주제를 위와 같이 등록하는 기능이 있습니다. 다음은 상위 100개의 프로젝트에서 가장 많이 등장한 주제입니다 (등장 횟수 순으로 내림차순):

  • Deep learning (7 회)
  • Tensorflow (6 회)
  • JavaScript (6 회)
  • iOS (6 회)
  • Awesome Lists (5 회)
  • Natural language processing (5 회)
  • Vim (5 회)
  • Monitoring (4 회)
  • Neural Network (3 회)

인공지능 관련 주제가 눈에 많이 띕니다. Tensorflow, Natural language processing, Machine learning, Deep learning, Neural Network 모두 인공지능 관련 주제로, 인공지능 관련 프로젝트들이 크게 주목받고 있습니다.

iOS 가 상위권에 노출되었습니다. 한국에 좋은 iOS 엔지니어 분들이 많이 계신 것으로 생각됩니다.

Awesome Lists는 주제를 막론하고 좋은 컨텐츠를 모아놓은 큐레이션 프로젝트를 의미합니다. 정보가 넘쳐나는 시대에 큐레이션 저작물들이 호응을 받고 있습니다.

Vim은 사실 조사 전에는 이 리스트에 오를 것이라 기대하지 않았던 주제입니다. Vim이 많이 쓰이는 에디터이기는 하지만 이것보다 많은 관심을 받는 주제들도 많이 있기 때문입니다. 아마도 Junegunn Choi 님의 탁월한 기여가 이 주제의 순위를 이렇게 올려 놓은 것으로 보입니다. 한 명의 영향력에 전체 지표가 영향을 받을 만큼 아직 한국 오픈소스의 저변이 넓지 않다는 추측도 해보게 됩니다.

종합하면 인공지능iOS가 강세인데, 웹 개발 작업이 더욱 많을 것이라는 저의 추측과는 다른 결과였습니다. 한국에서 이 두 분야에 강점이 있다는 생각을 해볼 수 있지만 이것도 아직은 섣부른 추측입니다. 다음에는 세계적인 추세와 국내의 상황을 제대로 비교해봐야겠습니다.

가장 많이 사용되는 언어는?

각 프로젝트는 해당 프로젝트에서 사용된 주 프로그램 언어가 있습니다. 상위 100개의 프로젝트에서 가장 많이 사용된 언어는 다음과 같습니다 (많이 사용된 순으로 내림차순):

  • Python (19 회)
  • JavaScript (15 회)
  • Swift (13 회)
  • Java (11 회)
  • Vim script (6 회)
  • C (4 회)
  • Objective-C (4 회)
  • C++ (3 회)
  • Jupyter Notebook (3 회)

주요 언어가 어떤 목적으로 사용되는지를 분석해본 결과,

  • Python은 Tensorflow, Machine learning, Deep learning, Natural language processing, Neural Network, Database 등의 머신 러닝에 사용되었습니다. Django 등의 웹 개발 용도로 사용하는 사례도 예상되었지만 발견하지 못했습니다 (물론 오늘 다루고 있지 않은 상위 100 개 프로젝트 이외의 한국의 프로젝트 중에는 웹 개발용으로 Python을 쓰는 사례가 많을 것입니다).
  • JavaScript는 Front end, Data visualization, jQuery 등 웹 프론트엔드에 사용되었습니다.
  • SwiftiOS 앱 개발에 사용되었습니다.
  • JavaAndroid 앱 개발, 애플리케이션 모니터링에 사용되었습니다.

분석의 한계

한국에서 시작한 좋은 프로젝트들이 누락되었습니다

한국에서 시작했지만 세계적으로 성장하여 더 이상 한국의 오픈소스라고 하기에는 해외 참여자가 많아진 Apache TajoZeplApache Zeppelin과 같은 프로젝트들은 위 리스트에 포함되지 않았습니다.

다루지 않은 한국의 데이터가 많습니다

GitHub에 등록된 한국에 있는 개발자, 혹은 한국 회사가 소유한 프로젝트는 30만 여 개가 됩니다. 이번 분석에서 겨우 상위 100개의 프로젝트를 대상으로 분석한 것이라 같은 분석을 전체 데이터에 대해 다시 수행하면 다른 결과물이 나올 수 있습니다.

최신 프로젝트가 상대적으로 저평가되었습니다

한 프로젝트가 GitHub에서 Star 수를 모으기 위해서는 어느 정도 시간이 걸리기 마련입니다. 즉, 만들어진 지 오래된 프로젝트가 오랫동안 Star 수를 모았을 것이고 반대로 최신 프로젝트는 Star 수를 충분히 받을 시간이 지나지 않아 위 리스트에 오르지 못했을 가능성이 높습니다.

앞으로 위의 한계를 넘어서는 분석을 진행하면서 한국의 개발 생태계를 보다 자세히 조감해 볼 계획입니다. 다음과 같은 주제들을 검토중입니다:

  • 2018년도 주목받은 한국의 오픈소스 프로젝트 Top 100
  • 한국의 오픈소스 프로젝트에서 많이 사용되는 언어는? 그리고 그 용도는?
  • 한국 개발자들의 관심 주제는?
    또 다른 글로 찾아뵙겠습니다. 긴 글을 읽어주셔 감사합니다 :)

[부록] 전체 상위 100 개의 오픈소스 리스트 (2018년 말 기준)

profile
FrontEnd Developer

0개의 댓글