Consultants Blogger

러시아의 IT capability - SW개발, 프로그래밍 본문

Russia & CIS Talk/Russia Talking

러시아의 IT capability - SW개발, 프로그래밍

Jeffrey.C 2019. 2. 17. 06:04

여전히 많은 한국 사람들이 러시아와 구 소련권 (이하 'CIS') 국가들을 미개한 개발도상국가로 여기는 경우가 많다. 물론, 아직 낙후한 나라들이 대부분이나, 러시아의 대도시는 상황이 많이 다르다. 

러시아 모스크바의 경우, 완전 다른 이야기가 될 수 있다는 것이다. 


그 중에서 오늘은 러시아와 일부 CIS 국가들의 우수한 IT 역량에 대해 알아보고자 한다. IT 역량이라 함은 매우 광범위한 논의가 될 수 있으므로, 알고리즘 및 프로그램 코딩 수준을 중심으로 한 S/W 개발 역량에 촛점을 두도록 한다. 




1. HackerRank - International Coding Olympics


HackerRank의 2016년 Study - Coding Olympics in Rio


HackerRank(이하 '해커랭크') 는 프로그래밍 competition 을 시행하는 기술기업(HackerRank is a technology company that focuses on competitive programming challenges for both consumers and businesses, where developers compete by trying to program according to provided specifications. HackerRank's programming challenges can be solved in a variety of programming languages including Java, C++, PHP, Python, SQL, JavaScript) and span multiple computer science domains.)이다. 


쉽게 설명하면, 해커랭크는 100만명 이상의 코드 개발자로 구성된 커뮤니티를 운영하며, 정기적으로 프로그래밍 대회를 제안하고 기업들에게 양질의 프로그래머 인재 채용 서비스를 제공하는 업체이다. 



해커랭크의 2016년 국제 코딩 올림픽 결과 보고서에는 다음 결과들이 기술되어 있다.


Which Country has the Best Developers?

(Source: HackerRank)


국제 코딩 올림픽의 국가별 결과는 위 테이블과 같다.  러시아는 99.9점으로 프로그래머 랭킹 2위, 우크라이나는 88.7점으로 11위, 한국 은 81.7점으로 22위이다. 


중국에 대해서는 이제 많은 사람들이 다양한 인식을 가지고 있어 그럴 수 있겠다 생각할 것이지만, 러시아와 폴란드, 우크라이나(11위) 는 의외라고 생각할 것이다. 


조금 더 구체적으로 각 개발영역별 top 5 국가를 살펴보면, 아래 테이블과 같다.


(Source: HackerRank)


알고리즘 분야에서 러시아는 1위를 차지하였다. 이 뿐만이 아니라, Java 5위, 데이터 구조 4위, C++ 2위, 파이톤 5위, SQL 4위, AI(인공지능) 4위 등 각 부문별로 선두권에 포함되어 있으며, 보안이나 mathematics, 분산 시스템 등 분야에서는 우크라이나 역시 top 5 내 포함되어 있다.



세계 대학교 해커 랭킹

(Source : wikipedia.org)


해커랭크에서 평가 및 선정된 세계 대학교의 해커 랭킹에서 1위를 차지한 곳은 러시아의 ITMO IT기계광학 대학 (Information Technologies, Mechanics and Optics ITMO University is one Russia's leading higher education and research institutions, specializing in Information Technology) 이다. 


러시아 명문대학교 상트 국립대학교는 7위, 우크라이나의 키예프 대학교는 8위에 선정되어 있다. 




2. Google Code Jam


구글 코드 잼 웹 페이지


구글 코드 잼은 구글에서 주관하는 세계 프로그래밍 경진대회로 2003년 부터 매년 개최되고 있다. 


제한 시간 내에 주어진 수학 문제를 해결하는 코드를 작성해야 하며(프로그래밍 언어에 제한은 없음), 소스 코드와 함께 답을 제출하면 채첨이 되고 순위가 매겨지는 시스템으로 전 세계 우수한 프로그래머들이 참가하는 대표적 프로그래밍 경진대회이다. 



이 대회는 개인자격으로 출전을 하는 방식으로 국가별 순위가 매겨지지는 않으며, 참가자의 국적을 기반으로 순위가 매겨진다. 


2018년 코드 잼 결과, 1위 벨라루스, 4위, 7위, 8위, 10위는 러시아인이 선정되었다. 

(참고로, 한국인 최고성적은 21위) 


2018년 구글 코드 잼 Top 10 프로그래머

(Source: Code Jam)


2017년 역시 1위 벨라루스, 2위와 3위, 5위, 8위, 9위는 러시아 인들이 휩쓸었다. 최우수 프로그래머 10명 중 6명이 러시아 & CIS 인이라는 의미이다.



2017년 구글 코드 잼 Top 3 프로그래머

(Source: Code Jam)




3. ACM International Collegiate Programming Contest



ICPC 는 1970년 Texas A&M 대학에서 처음 시작된 경연대회로 2017년 111개 국가, 3,098개 대학, 49,935 학생들이 참가하고 있는 국제대학생 코딩대회로, 

이 대회는 IBM이 후원하며, 컴퓨터 두뇌들의 최대 격전장으로 이름난 ACM (국제컴퓨터학회)에서 주최하고 있다.


대학생들 간의 올림픽으로 간접적으로 해당 국가들의 향후 SW개발 잠재능력을 가늠할 수 있는 척도가 될 수 있는 대표적인 순위이다.


각 기관(대학)별, 국가별 예선을 거쳐 참가자격을 얻은 대학들은 지역 예선을 거쳐 타 국가들과 예선을 치른다. 본선은 오프라인으로 진행되며, 각 지역별로 참가자격을 얻은 소수의 학교들이 경쟁을 하게 된다.


2019년 ICPC Finals은 3월 31일부터 4월 5일까지로 예정되어 있다. 

(참고로 2018년 Finals은 한국의 본진인 서울에서 개최되었었다.)


ACM ICPC homepage 


2018년 Final result는 다음과 같다. 


(Source: ACM ICPC)


1위와 2위를 모스크바국립대와 모스크바 물리기술대학이 차지하였으며, 이 대회의 전통적 강자인 ITMO(IT기계광학대학)은 9위를 차지, 우랄연방대학은 13위를 차지하였다. 


연도별 우승 기관들을 살펴보면, 2012년 이후로 러시아는 단 한번도 우승을 놓친적이 없으며, 2000년대 들어 항상 최다 우승을 차지하고 있음을 알 수 있다.


(Source : wikipedia.org)


아래 표의 최다수 우승 기관을 살펴보면, ITMO가 8회 (2018년 우승 포함), 상트국립대가 4회로 2위를 차지하고 있으며, 나머지는 중국, 미국 등 대학들이다. 


(Source : wikipedia.org)


단, 미국 대학들은 1970년대와 80년대에 항상 우승을 해왔다는 것을 감안해야 한다. 

1990년 이후 미국은 단 4차례 밖에 우승을 차지하지 못했다. 

(7~80년대는 거의 항상 미국 대학이 1위) 



객관적인 자료들을 바탕으로 러시아의 SW개발(프로그래밍) 능력 수준을 간략하게 살펴보았다. 러시아는 우리가 생각하는 것 보다 훨씬 더 IT 부문의 잠재력이 우수한 나라이다. 게다가 현재는 환율 devaluation 으로 인건비 수준 역시 높지 않다. 



이렇게 우수한 IT 인력들을 한국의 우수한 투자 역량과 인큐베이팅 역량을 바탕으로 활용할 수 있다면, 아주 아름다운 그림이 나올 것이라고 생각한다. 


특히 개인적으로 나는 한국의 엑셀러레이팅/인큐베이팅 역량은 정말 세계적 수준이라고 보는데, 상호 협력의 기회가 있다면, actively 서포트 하고 싶은 마음이다. 



마지막으로 2018년 ICPC Final 결과 중 14위 부터의 순위와 함께 글을 맺도록 한다. 


참고로, 한국은 서울대학교 5위, KAIST 14위 그리고 아래 테이블에는 나타나 있지 않지만, 울산과학기술원 UNIST 가 공동 31위에 올랐다.


(Source: ACM ICPC)