자바 대안 코틀린을 대하는 우리의 자세

구글의 새 공식 앱 개발 언어 코틀린 탐구(하)

컴퓨팅입력 :2017/06/14 10:21    수정: 2017/06/14 10:36

---------------------------------------

*글 싣는 순서

(상) 코틀린, 안드로이드 생태계 사로잡나

(하) 자바 대안 코틀린을 대하는 우리의 자세

---------------------------------------

“이제 코틀린이 대세가 될까? 자바에서 코틀린으로 갈아타야 할까?” 최근 많은 개발 커뮤니티에서 오가는 얘기다. 최근 열린 구글의 연례 개발자행사 구글I/O에서 코틀린이 안드로이드 공식 개발 언어 지위를 얻었다는 발표 이후 반응이다.

그렇지 않아도 코틀린의 인기는 점차 늘어나고 있는 상황이다. 모바일 영역에서 자바 대안으로 사용하기에 충분히 많은 장점을 가진 언어로 평가받으면서다. 자바가 품고 있는 한계로 가장 개발자들의 골치를 아프게 하는 '널포인트 오류’는 코틀린에서 말끔히 해결됐다.

코틀린 공식 지원을 발표하고 있는 모습

이제 구글이 코틀린을 공식 지원하겠다고 밝힌이상 '자바는 지는 해, 코틀린은 뜨는 해’가 될 것이란 전망이 설득력 있어 보인다. 하지만, 전문가들은 좀 더 조심스러운 접근이 필요하다고 조언한다. 안드로이드 세계에 이제 막 입문하는 개발자라도, 코틀린만 배워야 한다는 생각은 접어두는 게 좋다는 얘기다. 코틀린의 언어적 성숙도가 높더라도, 구글이 얼마나 강하게 지원할지는 좀 더 지켜봐야 할 문제라는 게 이유다.

구글에게 퍼스트클래스 랭귀지란

구글에게 퍼스트클래스 랭귀지란 무슨 의미일지 먼저 살펴 볼 필요가 있다. ‘코틀린이 자바를 밀어내고 대세가 될 수도 있겠구나’라고 짐작하는 이유가 여기에 있기 때문이다. 이번 발표로 안드로이드 퍼스트 클래스 랭귀지는 자바와 코틀린 두 개가 됐다.

구글과 젯브레인은 공식 블로그를 통해 안드로이드 팀이 코틀린을 '공식 지원’ 또는 '우선 지원'하는 언어로 선택했다고 소개하고 있다. 그 시작으로 구글은 안드로이드 공식 개발도구인 안드로이드스튜디오 최신버전(3.0)에 코틀린 플러그인을 기본 탑재했다.

하지만 공식 지원 언어 전과 후를 비교해, 극적인 변화가 있다고 보긴 어렵다. 모바일DB 개발사 렘의 개발자 김용욱 씨는 “젯브레인이 만든 도구는 이전에도 다 코틀린을 지원해 왔기 때문에 개발 툴에 있어서 큰 변화는 없을 것”이라고 예상했다.

안드로이드 마스코트 버그드로이드. [사진=Pixabay]

선언적인 의미가 더 크다고 보는 게 김용욱 씨의 생각이다. 코틀린의 장점을 알고도, 회사 입장에선 신생언어인 만큼 채택하기 쉽지 않았다. 그는 “이제 안드로이드에서 코틀린을 써도 문제가 없다는 확신을 줄 것으로 보인다”며 “코틀린을 쓰고 싶은 개발자들이 회사를 설득하기가 보다 수월해 질 수 있다”고 말했다.

코틀린, 제2의 스위프트될까

구글이 공식 지원하겠다고 얘기했지만, 얼마나 강하게 밀어붙일지는 아직 미지수다. 과연 스위프트를 강조하는 애플에 버금갈까? 애플은 빨리 오브젝티브C에서 스위프트로 전환해야 한다는 분위기를 강하게 몰아 가고 있다.

하지만 구글은 애플과 꽤 다른 문화를 보여왔다. 결정 사항을 개발자들에 하향식(톱다운)으로 강하게 요구한 전례가 드물다. 이런 분위기는 구글 내에서도 마찬가지다. 김용욱 씨에 따르면 구글서도 자신들이 주도해 만든 웹앱 프레임워크 ‘앵귤러'나 웹앱 UI 도구 ‘폴리머'를 전사적으로 쓰지 않는다고 한다. 부서별로 쓰고 싶은 언어, 개발도구들을 자유롭게 선택해 쓰는 분위기라고 그는 전했다.

구글이 가지고 있는 이런 문화적 특성을 감안하면, 코틀린이 자바를 빠르게 대체하리라 예상하긴 어려워 보인다.

구글이 코틀린으로 전환을 요구하지 않더라도, 언어적 장점이 큰 코틀린을 지금 선택하는 것은 현명한 일일까? 특히 이제 안드로이드 개발에 입문하는 학생들은 코틀린을 우선 순위에 두는 게 좋지 않을까?

이 역시 구글의 행보를 봐가면서 결정하는 게 현명하다. 지금으로썬, 구글이 공식 지원 언어라고 ‘발표’만 했지 큰 변화가 있는 상황은 아니기 때문이다. 아직은 코틀린만 알아선 개발하는 데 어려움이 크다.

김용욱 씨는 “구글이 만든 코드 샘플, 문서 등 다 자바로 되어 있기 때문에 (안드로이드 입문 개발자들이) 코틀린을 배우더라도 자바를 당연히 알고 있어야 한다”고 답했다.

렘 개발자 박민우 씨는 “애플은 지금 스위프트가 최우선이기 때문에 모든 공식 코드, 문서를 다 스위프트로 먼저 제공하지만 구글은 코틀린에 대해 이런 극적인 변화는 없는 상태다”며 “지금 당장 (자바에서) 코틀린으로 바꾸기엔 위험한 면이 많다”고 조언했다.

심지어 구글도 코틀린을 어디에 쓰고 있는지 정확히 밝히지 않았다.

젯브레인은 코틀린이 안드로이드뿐만 아니라 iOS나 맥OS용 네이티브 애플리케이션 개발도 가능하다고 얘기한다. 그렇다면, ‘멀티플랫폼 개발을 위한 도구로 코틀린을 배워두면 의미가 있지 않을까’란 생각도 든다.

코틀린의 장점을 소개하는 장표

하지만, “아무도 가지 않는 길을 혼자 갈 이유가 없다"는 게 되돌아온 답이다. 박민우 씨는 코틀린으로 iOS앱을 만드는 과정에서 수 많은 에러가 날텐데 그에 해결방법을 찾기 어렵다는 게 문제"라고 말했다. 문제에 부딪히면 검색이라도 해봐할 텐데, 검색해도 이런 경우의 문제는 나오지 않을 가능성이 크다는 얘기다. 따라서 모든 문제를 혼자서 해결할 수 있는 자신감과 실력을 갖춘 사람이 아니라면 추천하고 싶지 않다고 한다.

그럼에도, 개발자가 코틀린을 탐구해야 하는 이유

스퀘어 소속으로 안드로이드 스타 개발자인 제이크 와튼(Jake Wharton)은 코틀린 전도사로 유명하다. 코틀린이 지금까지 나름의 인기를 끌어오는데 그의 활동이 적지않은 영향을 줬다. 그는 2015년 코틀린 가이드 문서를 발표하기도 했다. 그의 전도(?)에 넘어가, 코틀린으로 ‘헬로월드’를 찍어봤을 개발자들이 많을 것이라고 한다.

그는 왜 코틀린에 열광할까? 코틀린이 안드로이드의 새 희망라고 보기 때문일 것이다. 어떤 개발자는 그냥 자바 쓰듯 코틀린을 쓰겠지만, 제이크 와튼은 “마법을 부리듯 쓴다”고 김용욱 씨는 표현했다. 모던 언어로 세대교체는 현재 진행중이고 느리더라도 언젠가, 코틀린이 안드로이드 개발에 패러다임을 바꿀 수 있다.

관련기사

이런 거창한 미래를 떠나서, 새로운 언어를 취미로 배워보고 싶은 사람에게 코틀린은 추천하고 싶은 언어라고 한다. 일본이나, 유럽만 해도 비주류 언어도 커뮤니티 규모가 크고 다루는 지식의 깊이도 깊은데, 한국의 사정은 그렇지 못하다.

업무와 관련이 없더라도 새로운 언어에 지적호기심을 갖고 배우고자 시도해 보는 일은 왜 중요할까? 박민우 씨는 “(다른 언어에 대한 관심이 없다면) 성냥갑 같은 빌딩은 만들 수 있겠지만, 창의적인 빌딩은 만들기 어려울 것”이라고 지적했다. 김용욱 씨는 “언어 오타쿠(한 분야에 열중하는 사람)가 우리나라엔 좀 적은 편”이라며 “새 언어를 배울 마음의 여유를 가지는 개발자들이 늘어나야, 그 언어가 실제 성숙했을 때 그렇지 안았던 사람들과 차이가 크게 벌어지고 또 많은 환경을 바꾸는 일을 주도할 수 있게 된다”고 말했다.