개발자

구글러의 실력과 창의성을 고루 키우는 '코드 골프'

Phil Johnson | ITWorld 2015.07.27
얼마 전에는 세계 최고의 골퍼들이 연중 치러지는 최대 골프 이벤트 중 하나인 브리티시 오픈에 참여하기 위해 스코틀랜드로 모여들었다. 물론 골프는 미국에서 가장 인기 있는 여가 스포츠 중 하나다. 특히 소프트웨어 개발자, 구체적으로 구글 엔지니어들도 골프를 정말 좋아한다고 한다. 단, 이들의 골프는 공과 클럽이 아닌 프로그래밍 코드와 알고리즘을 사용해 진행된다.

잘 모르는 사람을 위해 설명하자면 코드 골프는 1990년대 후반 펄 커뮤니티에서 처음 개발됐다. 최대한 적은 양의 코드로 주어진 프로그래밍 과제를 해결해야 하는 일종의 코딩 경쟁이다. 총 바이트를 기준으로 가장 적은 수치를 기록한 사람이 우승한다는 점에서 골프와 비슷하다. 코드 골프를 전문적으로 다루는 사이트도 여럿 있다. 특정 언어만 다루는 사이트도 있고 언어를 제한하지 않는 사이트도 있다.

이 코드 골프가 최근 구글러 사이에서 폭발적인 인기를 끌고 있는데, 이는 한 전직 구글 엔지니어의 영향이다. 작년 구글에서 2주 동안 휴가를 낸 젠 왕은 구글에서 사용 중인 큰 코딩 프레임워크가 프로그래밍의 재미를 반감시킨다는 생각에 내부 코드 골프 플랫폼을 구축하기 위한 ‘20% 프로젝트’를 시작했다. 왕이 블로그에 쓴 내용을 옮기자면, 기본 개념은 “구글 엔지니어가 자신의 재치를 드러낼 수 있는 놀이터, 공부하는 사람을 위한 프로그래밍 기법 참고서, 그리고 구글에 만연한 기술적 복잡함이라는 추세에 대한 저항의 상징”을 만들어 코딩의 재미를 되찾자는 데 있다.

왕은 2주의 휴가 기간 동안 코드 골프 플랫폼을 제작해서 2014년 6월에 공식적으로 출범시켰다. 구글 직원만 접근할 수 있는 이 플랫폼은 소수의 언어(자바스크립트, 고, 파이썬, C++, 하스켈)를 사용한 솔루션 작성만 허용한다. 자동 테스트를 모두 통과하여 제출된 솔루션에는 총 바이트 크기를 기준으로 점수가 부여된다. 각 언어별로 낮은 점수를 기록한 사람이 우승한다.

엔지니어들 사이에서 큰 인기
이 플랫폼은 구글 엔지니어 사이에서 이내 인기를 끌기 시작했다. 왕에 따르면 얼마 지나지 않아 주별 도전 과제에 수백 명의 구글 직원이 솔루션을 제출했다. 정답에 부합하는 솔루션은 각 언어별로 약 20개였다고 한다. 코드 골프가 구글에서 인기를 끌게 된 이유는 무엇일까? 왕은 “코드 골프는 자신의 창의성을 드러내고 서로 배울 수도 있는 재미있는 게임을 통해 재능 있는 엔지니어들의 경쟁심을 자극한다고 생각한다”며 “80년대의 DEC에도 이것과 비슷한 언어 경쟁이 있었다. 강력한 기술 인력을 보유한 구글은 현 시대의 DEC다. 여기서 코드 골프가 인기를 끌게 된 것은 우연이 아니다”라고 말했다.

창의성을 드러내는 구글 직원들
왕을 놀라게 한 점은 무엇보다 우승 솔루션의 품질이다. 왕은 블로그에 “스택 익스체인지에서 가장 많은 투표를 받은 솔루션도 구글에서 내가 본 최고의 솔루션에 비할 수는 없다. 다른 곳에서는 찾아보기 어려운 한 차원 높은 창의성과 솜씨를 볼 수 있다”고 썼다.

특별히 기억에 남는 기발한 솔루션이 있는지에 대한 질문에 왕은 다음과 같이 답했다.

“지금 구글에서 ‘python roman numerals’를 검색하면 파이썬으로 작성된, 정수-로마 숫자 변환 루틴을 엄청나게 많이 찾을 수 있을 것이다. 그러나 그 중에서 구글의 한 베테랑 파이썬 골퍼가 공들여 만든 84바이트의 단 한 줄짜리 코드만큼 짧고 기발한 루틴은 없다. 그런데 더욱 놀라운 사실은 formatter.AbstractFormatter의 극히 모호한 내장 라이브러리 함수를 활용한 74바이트 솔루션이 그 루틴을 물리치고 새롭게 왕좌를 차지했다는 것이다.”

유용한 채용 도구
코드 골프의 주 용도는 재미지만 왕은 자신의 프로젝트를 개발자 채용에도 활용할 수 있을 것이라고 말했다. 코드 골프의 도전 과제들이 엔지니어링 채용 후보자에 대한 면접 질문 라이브러리가 되고, 테스트 사례는 후보자의 코드를 자동으로 검증하는 데 사용할 수 있다는 것이다.

물론 면접 과정에서 중요한 것은 코드의 길이가 아닌 올바른 솔루션이다. 왕은 채용 심사에서 지원자 솔루션의 크기는 “화이트보드의 글씨체만큼 무의미한 평가 기준”이라며 “현실 세계의 프로그래밍에서 코드 골프에 사용되는 기법이 필요하거나 그러한 기법이 이점으로 작용하는 경우는 극히 드물기 때문에 바이트 크기 줄이기에 능숙하지 않다고 해서 감점을 적용한다면 터무니없는 일이 될 것”이라고 말했다.

한편 왕은 코드 골프에서의 성공이 프로그래밍 기술의 한 지표는 될 수 있다고 생각한다. 왕은 “코드 골프 마스터는 IT 기업들이 찾아야 할 고도의 기술을 가진 개발자라고 생각한다”면서 “탁월한 코드 골프 실력은 곧 프로그래밍 언어에 대한 전문 기술과 뛰어난 창의적 사고 능력을 반영한다”고 말했다.

왕은 이후 구글을 떠나 현재 독립 앱 개발자로 일하고 있지만(최근 서카디(Circadi)라는 앱을 만들었음) 코드 골프는 여전히 구글에서 인기다. 왕은 새로운 참가자와 고품질의 솔루션들이 계속해서 몰린다는 소식을 전해 들었다고 한다. 물론 그렇다고 구글 직원이 조만간 브리티시 오픈의 우승컵을 들어올릴 일은 없을 것이다. editor@itworld.co.kr

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.