brunch

You can make anything
by writing

C.S.Lewis

by 고코더 Mar 28. 2024

체코 하면 프라하? 아니 코틀린이지!

코딩 계를 휩쓴 체코의 IT 기술

체코 하면 프라하?

체코 하면 무엇이 떠오르시나요? 저는 가장 먼저 수도 '프라하'가 떠오릅니다. 아직 가보진 못했지만 '백탑의 도시', '유럽의 음악원', '북쪽의 로마'라는 별명이 붙은 프라하는 동유럽에서 가장 아름답고 낭만이 넘치는 도시라고 합니다. 한국에서는 “프라하의 연인”이라는 드라마의 히트로 더욱 유명해져 한때 프라하에 가면 한국 대학생의 거리라고 할 정도였다고 합니다. 체코 하면 또 무엇이 유명할까요? 체코는 세게에서 맥주를 가장 많이 마시는 나라라고 합니다. '필스너 우르켈(Pilsner Urquell)'은 체코에서 가장 유명하고 대중적인 맥주라고 합니다. 고소한 몰트향과 쌉쌀한 홉향이 적절하게 조화된 맛있는 맥주라고 하는데 여행 가서 프라하에 야경을 보면서 맥주 한잔 해보시길 바랍니다.


그런데 저는 체코 하면 '젯브레인(JetBrains)' 그리고 '코틀린(Kotlin)'이 떠오릅니다. 처음 듣는 이름이라고요? 저희는 이미 이들의 제품을 살펴본 적이 있습니다. 앞서 설명한 안드로이드 스튜디오를 개발한 회사가 바로 젯브레인사 그리고 그 안드로이드 스튜디오로 어플을 개발할 때 사용하는 언어 중 하나가 바로 코틀린입니다. 오늘도 저는 젯브레인 회사가 만든 인텔리제이라는 제품을 사용하고, 코틀린으로 코딩을 하고 있습니다. 그리고 데이터 베이스를 살펴볼 때도 '데이터그립(data grip)'이라는 젯브레인사의 제품을 사용합니다. 언제부터인가 젯브레인사의 제품들은 개발자의 컴퓨터를 점령하기 시작했고 제 컴퓨터 역시 점령 당한거 같습니다.



젯브레인?

‘젯브레인(JetBrains)’사는 체코 프라하에 설립된 IT회사입니다. 개발자 및 팀을 위한 지능적인 생산성 향상 도구를 개발하는 글로벌 소프트웨어 제공업체입니다. 통합개발환경(IDE)을 전문적으로 만드는 회사로 가장 뜨거운 관심을 받고 있는 회사 중 한 곳입니다. 대표제품으로는 인텔리제이 아이디어(IntelliJ IDEA)라는 제품이 유명합니다. 젯브레인사의 발표에 따르면 2020년 기준 자바 개발자의 72%는 인텔리제이 아이디어를 사용 중이라고 합니다. 무료로 사용 가능한 이클립스보다 월단위로 돈을 지불해야 하는 유료 제품이 월등히 높은 점유율을 가지게 된 것입니다.


그리고 해당 회사에는 다양한 제품들이 준비되어 있습니다. '앱코드 (AppCode)', '씨 라이언(CLion)', '데이터그립(DataGrip)', '고 랜드(GoLand)', '파이참(PyCharm)', 'PHP스톰(PHPStorm)', '루비마인(RubyMine)'등 다양한 라인업 제품들이 IDE 시장을 사로잡고 있습니다. 미국이 아닌 동유럽의 낯선 나라에서 개발된 개발도구가 전 세계를 휩쓸고 있습니다. 그래서 저는 체코 하면 젯브레인이 떠오릅니다.



코틀린?

한국 코딩 시장에서 자바는 수요와 공급이 많은 기술입니다. 한마디로 인기가 제일 많은 언어입니다. 그 이유는 대규모 있는 서비스 개발에 적합하고 오랜 시간 동안 많은 프로젝트들이 자바로 완성되었고 충분히 검증된 안정성이 높은 서비스입니다. 젯브레인이 발표한 통계에 따르면 2021년 한국에서 자바의 점유율은 53%라고 합니다. 과반수의 대부분의 회사의 IT 시스템은 자바로 개발되고 유지보수 되고 있는 걸 알 수 있습니다. 이렇게 좋은 자바이지만 단점도 존재합니다. 개인적으로 생각하는 단점은 힘든 긴 코드가 많기 때문에 코드를 읽고 이해하는 데 어려움이 있다는 점입니다.


그런데 2011년 7월 이러한 단점을 해결한 언어코드가 탄생합니다. 바로 코틀린의 탄생으로 말이죠. 젯브레인 사는 JVM에서 동작하는 프로그래밍 언어로서, 간결하고 실용적이며 자바와의 상호운용성(interoperability)을 중시한 언어를 공개합니다. 조금 더 쉽게 설명하면 기존 자바 코드와의 호환성이 보장됩니다. 코틀린은 똑같은 자바 코드에 비해서 훨씬 직관적이고, 코드를 짜는 데 훨씬 더 빠른 코딩이 가능합니다. 그렇다고 자바와의 성능 차이도 크지 않다고 합니다. 2024년 3월 기준으로 코틀린은 티오베(TIOBE)가 발표한 프로그래밍 점유율 순위 19위에 안착했습니다. 파이썬의 라이벌 루비(Ruby)와 거의 근접한 순위를 보여주고 있습니다. 



코틀린의 장점

1. 간결성

코틀린이 얼마나 자바를 간결하게 표현하는지 살펴보겠습니다. 자바로 데이터 전송 객체를 작성하였습니다. 약 10줄의 코드가 생성되었습니다. 위아래로 늘어난 코드의 양이 한눈에 들어오지 않습니다.


public class MyClass {

   private int myField;

   public MyClass(int myField) {

      this.myField = myField;

   }

   public int getMyField() {

      return myField;

   }

   public void setMyField(int myField) {

      this.myField = myField;

   }

}


하지만 코틀린으로 표현하니 4줄로 끝났네요. 한눈에 보기도 합니다.


class MyClass(private var myField: Int) {

   fun getMyField() = myField

   fun setMyField(value: Int) { myField = value }

}


2. 안전성

안정성 또한 뛰어납니다. 코드를 완성하고 실행 시점에 오류를 발생시키기 전에 컴파일 시점 검사를 통해 오류를 더 많이 방지해 줍니다. 쉽게 설명하면 오류를 먼저 말해준다고 할 수 있습니다. 시험 보기 전에 오답을 체크한다면 좋은 점수를 받을 수 있는 것처럼 말이죠


3. Null 오류

자바에서는 NullPointerException라는 오류가 있습니다. 실제 값이 아닌 null이라는 빈값을 가지고 객체나 변수를 호출할 때 발생하는 예외입니다. 여자친구에게 선물을 줬는데 실수로 내용물을 모르고 담지 않아 상자만 주는 끔찍한 일과 비슷한 오류입니다. 하지만 코틀린은 이러한 사태를 미연에 방지하여 해당 NullPointerException를 방지하지 않게 만듭니다. 선물 상자에 내용물이 없으면 리본을 묶을 수 없게 만드는 것처럼 말이죠.


4. 호환성

코틀린은 자바와의 호환이 100% 지원됩니다. 기존의 자바 코드를 그대로 활용할 수 있고 코틀린으로 변경해 사용도 가능합니다. 그러므로 자바로 개발된 프로젝트에 쉽게 반영이 가능합니다. 개발자 입장에서 직접적으로 느낄 수 있는 가장 큰 장점일 것입니다.


5. 안드로이드 공식 언어


2017년 구글은 Google I/O 개발자 콘퍼런스에서 코틀린(Kotlin)을 공식 언어로 채택합니다. 이유는 이렇습니다.  안드로이드 운영체제용 앱은 자바를 주요 언어로 삼아 개발돼 왔습니다. 그런데 오라클이 안드로이드 OS에 대해 자바 API 저작권 소송을 제기하면서, 구글은 자바를 대체할 주요 언어를 다수 물색하였던 중 코틀린을 공식 언어로 채택합니다. 안드로이드팀은 코틀린을 지원하기로 결정한 이유를 밝혔습니다. 가장 중요한 이유는 코틀린이 Android 앱을 더욱 쉽고 즐겁게 작성할 수 있게 해 줄 훌륭한 언어라고 생각하기 때문이라고 합니다. 코틀린은 이제 구글이 선택한 공식적인 안드로이드 개발 언어입니다. 


6. 젯브레인 지원

마지막으로는 젯브레인이 설계한 언어라는 장점입니다. 코틀린을 가장 잘 이해하는 회사가 현재 가장 많이 쓰이는 개발도구 인텔리제이를 만들었으니 코틀린에 대한 지원 또한 확실하다는 것입니다. 편리한 코딩 신속한 코딩이 가능하도록 도구도 함께 성장할게 분명하니 기대해 볼 부분입니다.



체코하면 젯브레인 그리고 코틀린!


이제 체코하면 무엇이 떠오르실까요? 여전히 프라하와 맥주라고요? 이젠 젯브레인과 코틀린을 함께 떠올려주세요. 동유럽의 인구 수 천만명의 작은 나라의 IT 기술이 전세계로 향하고 있습니다. 우리도 언젠가는 젯브레인 같은 회사와 코틀린같은 언어가 개발되어서 전세계에 K 코딩 열풍이 몰려올 날을 기대합니다.

이전 05화 안드로이드 앱, 누구나 만들 수 있을까?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari