iOS 개발에서 대표적인 ‘쉬운’ 언어가 스위프트(Swift)라면, 안드로이드OS를 대표하는 쉬운 언어는 코틀린(Kotlin)입니다. 코틀린은 문법이 쉬워서 초보자도 금방 배울 수 있고, 그러면서도 프로그래밍 언어인 자바(Java)와도 호환성이 높아서 앱 개발 언어로서 안정성이 뛰어납니다. 하지만 코틀린에도 장점만 있는 건 아니죠. 오늘은 안드로이드OS의 정석처럼 불리는 코틀린의 특징과 장점, 그리고 단점에 대해서 객관적으로 비교해 드립니다.
✍️ 이 글의 순서
• 왜 안드로이드 개발자는 코틀린을 선호할까
• 코틀린, 이런 단점이 있어요
• 코틀린 전문 업체 찾기, 위시켓에서.
코틀린은 제트브레인(JetBrains)에서 개발하여 2016년에 발표된, 아직 개발된 지 10년도 되지 않은 최신 언어입니다. 그 전까지 안드로이드OS는 대부분 자바를 이용해 개발했었습니다. 코틀린이 안드로이드OS 앱개발을 대표하는 언어로 급부상한 까닭은 아래의 4가지 특성과 장점 때문입니다.
코틀린은 자바보다 구문이 간결해서 코드를 쉽게 읽고 쓸 수 있습니다. 초보자들이 빠르게 언어를 습득할 수 있어 진입장벽이 낮다는 점이 큰 특장점입니다. 대표적으로 자바에서 여러 줄로 작성해야 했던 ‘getter’와 ‘setter’ 메소드를 코틀린에서는 한 줄로 간단히 표현할 수 있습니다. 간결한 코틀린은 개발자들의 개발 시간을 단축시키고 코드의 가독성도 높여줍니다.
코틀린의 가장 큰 장점이 아닐까 싶습니다. 코틀린은 자바와 완전히 상호 운용이 가능하기 때문에, 자바 코드를 호출하여 자바의 라이브러리를 이용하거나, 자바에서 코틀린 코드를 호출할 수 있습니다. 정리하자면, 자바 개발자는 코틀린 개발을 어렵지 않게 사용할 수 있고, 코틀린 개발자도 필요하면 쉽게 자바 코드를 작성해 앱의 퍼포먼스를 높일 수 있습니다.
코틀린에서 정말 훌륭한 기능 중 하나는 ‘Null 안전’ 기능입니다. 자바에서 자주 발생하는 오류로 ‘NullPointerException’를 꼽을 수 있는데, 코틀린은 이 오류를 컴파일 시점에서 방지합니다. 런타임 오류가 크게 줄기에 앱 안정성이 크게 높아질 수밖에 없습니다. 또 코틀린은 불변성(Immutability)이 큰 앱개발 프로그램으로, 스레드 안전성이 높고 데이터 클래스와 같은 기능으로 보일러 플레이트 코드를 줄여 버그 발생 가능성도 낮은 편입니다.
구글이 안드로이드 앱 개발 공식 언어로 코틀린을 선택했다는 건 상당히 의미가 큽니다. 안드로이드 관련 도구들이 코틀린을 최우선적으로 지원한다는 의미이기 때문입니다. 실제로 구글의 지원으로 코틀린 관련 문서화와 학습 자료가 아주 다양해졌습니다. 자연스럽게 개발자 커뮤니티도 활성화되었죠. 어려움을 만난 개발자들이 쉽게 해결책을 찾고 논의할 수 있음은 물론, 평소에 최신 트렌드를 공유하고 익히는 문화도 제법 커졌습니다.
이처럼 코틀린은 수많은 장점이 있습니다. 괜히 개발자들이 “안드로이드 OS 앱 개발 프로그램은 무조건 코틀린!”이라고 말하는 게 아닙니다. 물론 코틀린에 장점만 있는 건 아닙니다. 코틀린에도 단점이 있죠.
코틀린은 자바에 비해 컴파일 시간이 더 오래 걸립니다. 특히 프로젝트 규모가 클수록 이 차이가 두드러집니다. 이유는 코틀린의 더 복잡한 언어 기능과 타입 추론(Type inference) 시스템 때문입니다. 개발 과정에서 빈번한 컴파일이 필요한 경우, 개발 속도가 늦어질 가능성이 높아집니다. 하지만 최근에는 이 속도가 점차 개선되는 모습입니다. ‘증분 컴파일’ 기능 업데이트 등으로 이 문제를 완화하고 있죠.
코틀린 앱은 코틀린 런타임 라이브러리를 포함합니다. 그래서 기본적으로 자바로 작성된 앱보다 크기가 큽니다. 앱의 다운로드 시간은 길어질 수밖에 없고 저장 공간도 더 많이 차지하게 만들어, 사용자 경험에 부정적인 영향을 줄 수 있습니다. 대안으로 ProGuard, R8과 같은 코드 축소 도구를 사용하면 이 속도와 용량 문제를 어느 정도 완화할 수 있습니다.
안드로이드 개발 생태계에서 일부 도구와 라이브러리는 여전히 자바를 더 잘 지원하는 경향이 있습니다. 코틀린에서 이러한 리소스를 사용하려면 추가 설정을 거쳐야 하죠. 자연스럽게 개발 초기 단계에서부터 시간이 더 소요됩니다. 하지만 구글과 개발자들의 소소한 관심과 자체적인 노력으로 둘의 격차가 점차 줄어드는 추세입니다.
코틀린의 개발자 커뮤니티는 빠르게 성장하고 있지만, 아직 자바만큼 방대하지는 않습니다. 비교하자면 문제가 생겼을 때 필요한 자료나 리소스를 찾는 데 더 많은 시간이 걸릴 수 있겠죠. 문제가 어려울수록 그 차이는 더 심해질 수밖에 없습니다.
이러한 단점에도 불구하고, 코틀린은 여전히 매력적인 언어로 인정받고 있습니다. 트렐로, 에버노트, 핀터레스트, 스퀘어 등 유명 앱들이 코틀린을 채택한 것은 그 증거입니다. 또한 코틀린의 다중 플랫폼 지원 능력(데스크톱, iOS, 웹 등)은 그 활용 범위를 더욱 넓히고 있습니다.
• 트렐로 : 작업 관리 도구
• 에버노트 : 노트 필기 앱
• 핀터레스트 : 이미지 공유 SNS
• 스퀘어 : 소상공인 결제 솔루션
결론적으로 이런 단점들을 이해하고 적절히 대응만 잘 한다면, 코틀린은 안드로이드 앱개발은 물론 다양한 플랫폼에서의 개발에 있어 상당히 강력한 도구로 활용될 수 있습니다. 추이를 봤을 때 앞으로도 코틀린으로 만든 앱들이 더 많이 등장할 것으로 예상되며, 이에 따라 언어 자체의 발전과 생태계의 계속 성장할 것으로 전망됩니다.
코틀린은 안드로이드를 대표하는 언어이기에, 그만큼 개발자 풀과 다루는 앱개발 업체들이 상당히 많습니다. 외주 업체를 찾는 입장에서는 이게 하나의 걸림돌이 됩니다. 비전문가 입장에서 진짜 실력자를 가늠하는 일이 말처럼 쉽지 않습니다.
이런 문제는 위시켓에서 쉽게 해결할 수 있습니다. 우선 간단한 절차를 통해 프로젝트를 등록합니다. 그러면 1:1로 위시켓 매니저가 지정되고, 수많은 업체들에게 들어온 지원과 견적서를 객관적으로 함께 검토하게 됩니다. 특히 위시켓에서는 지원한 앱개발 업체들의 과거 이력과 클라이언트들의 후기(별점 포함)까지 확인할 수 있어 보다 확실한 검증이 가능합니다. 아래 배너를 눌러 실제 위시켓에서 진행되고 있는 프로젝트들을 직접 확인해 보세요.
🔖 함께 보면 도움되는 글
앱개발 비용 예상, 계산할 때 자주 빼먹는 비용 4가지