통합 검색어 입력폼

카카오가 메시징 서버에 자바 대신 코틀린 써본 경험담

조회수 2018. 9. 6. 08:58 수정
번역beta Translated by kaka i
번역중 Now in translation
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 다양한 분야의 재밌고 유익한 콘텐츠를 카카오 플랫폼 곳곳에서 발견하고, 공감하고, 공유해보세요.

코틀린은 최근 자바 대체제로 부상하고 있는 프로그래밍 언어다. 개발자 시장분석 회사인 레드몬크(RedMonk)는 코틀린에 대해 “스위프트를 제외하면 가장 빠르게 성장하고 있다”고 밝힌 바 있다. 레드몬크가 조사하는 프로그래밍 언어 순위에서 2017년 3분기 46위를 차지했는데, 반년만에 27위로 도약했다.


관련 기사 : 지금 뜨는 프로그래밍 언어는? ‘스위프트’와 ‘코틀린’

코틀린의 인기가 급상승 하는 것은 안드로이드 공식 언어로 지정됐기 때문이다. 코틀린은 자바와 거의 100% 호환되면서 자바보다 코드의 양이 비약적으로 줄어드는 것이 장점이다.


그렇다면 코틀린은 안드로이드 개발에만 이용될까? 그렇지 않다. 자바가 플스택 개발언어이듯 코틀린 역시 모든 영역에서 개발언어로 사용할 수 있다.


9월 4일 서울 삼성동 코엑스에서 열린 카카오 개발자 컨퍼런스인 ‘if 카카오 2018’에서는 코틀린을 서버 개발 언어로 사용한 사례가 발표돼 눈길을 끌었다.


카카오톡의 메시징 서버를 개발하는 유용하 개발자는 카카오톡의 서버 개선 프로젝트에 코틀린을 사용한 사례를 발표했다.

카카오톡의 메시징 서버를 개발하는 유용하 개발자

유 개발자에 따르면, 카카오는 2017년부터 코틀린을 활용해 서버 사이드를 개발해 2018년 운영에 반영했다.


유 개발자는 코틀린을 선택한 배경에 대해 “성능과 안정성, 개발운영 편의성을 모두 고려한 선택이었다”다고 설명했다. 다양한 목적의 서버 개발운영에 검증된 자바 생태계를 이용하면서, 생산성이 좋은 언어를 선택했다는 것이다. 그렇다고 지나치게 초기 단계의 언어를 선택하면 불확실성이 커, 어느 정도 궤도에 오른 JVM 언어 중에 선택한 것이 코틀린이다.


신생 언어의 위험성 중 하나는 업데이트 되면서 기존의 코드를 못 쓰게 되는 경우가 있다는 점이다. API(Application Programing Interface)가 바뀌기도 하고, 문법이 변경될 때도 있다. 이 때문에 버전 업데이트 한 후 마이그레이션 비용이 커질 때가 있다.


이런 점에서 코틀린은 다른 신생 언어들과는 다르다. 코틀린은 1.0 공식 버전이 나온 이후 1.3까지 API 문법이 크게 바뀌지 않았다. JVM 언어이기 때문에 크게 달라질 여지도 없었다.


코틀린의 가장 큰 장점 중 하나는 자바와의 호환성이다. 심지어 자바 코드를 코틀린에 붙여 넣으면 자동으로 코틀린 코드가 생성된다고 한다.


유 개발자는 “코틀린은 자바와 거의 100% 호환된다”면서 “자바 개발에 사용된 프레임워크나 라이브러리를 사용할 수 있어 언어에 대한 학습장벽은 약간 있지을지 몰라도, 프레임워크를 배우는 장벽은 없다”고 설명했다.

코틀린의 가장 큰 장점은 자바 대비 생산성 향상이다. 일단 코틀린은 자바보다 코드량이 확연히 줄어든다. 유 개발자에 따르면 코틀린은 자바 코드의 66% 정도로 같은 프로그램을 짤 수 있다.


물론 코틀린이 장점만 있는 것은 아니다. 바이트코드 사이즈가 늘어나고 컴파일 시간이 자바보다 코틀린이 더 길다.


이에 대해 유 개발자는 “증분 컴파일 시간의 차이는 체감상 느껴지지는 않는다”면서 “코틀린 컴파일이 느리다기 보다는 자바 컴파일 시간이 빠른 것”이라고 말했다.


유 개발자에 따르면, 성능 면에서도 자바와 코틀린은 큰 차이가 없었다. CPU 사용량이나 응답시간에 두 언어는 비슷한 성능을 보였다.


유 개발자는 “새로운 프로젝트에는 처음부터 코틀린을 도입하고, 앞으로 수정이 많을 프로젝트에는 모델, 유틸리티부터 리팩토링 할 것을 추천한다”면서 “그 외 기존에 잘 운영되는 자바 시스템을 굳이 코틀린으로 바꿀 필요는 없다”고 말했다.

이 콘텐츠에 대해 어떻게 생각하시나요?