📖 WIPIVERSE

🔍 현재 등록된 정보: 39,305건

코틀리

코틀리(Kotlin)는 정적으로 타입이 지정된 다중 플랫폼 프로그래밍 언어이다. JetBrains가 개발했으며, 자바 가상 머신(JVM)에서 실행되도록 설계되었으나, 자바스크립트나 네이티브 코드로도 컴파일 가능하다. 기존 자바 언어의 단점을 보완하고 더 간결하고 안전하며 생산적인 코드를 작성할 수 있도록 고안되었다. 특히 구글에 의해 안드로이드 개발의 공식 지원 언어 중 하나로 지정된 후 널리 사용되고 있다.

역사

코틀린 개발은 2010년에 시작되어 2011년 7월에 공개적으로 발표되었다. 프로젝트의 주된 목표는 자바보다 생산성이 높고 안전한 언어를 만드는 것이었으며, 스칼라와 같은 다른 JVM 언어들의 단점을 해결하는 데 중점을 두었다. 언어 이름은 러시아 상트페테르부르크 근처의 코틀린 섬에서 유래했다. 첫 번째 안정화 버전(v1.0)은 2016년 2월에 출시되었다. 2017년 5월, 구글은 Google I/O에서 코틀린을 안드로이드 개발의 공식 언어로 발표했다. 이후 코틀린은 안드로이드 개발 생태계에서 빠르게 주요 언어로 자리 잡았다.

특징

  • 정적 타입 언어: 컴파일 시점에 타입 검사가 이루어져 오류를 미리 발견할 수 있다.
  • 자바와의 상호 운용성: 기존 자바 코드 및 라이브러리와 완벽하게 호환되며, 코틀린 코드에서 자바 코드를 호출하거나 그 반대로도 가능하다.
  • 널 안전성: 코드를 작성할 때 널 포인터 예외(NullPointerException) 발생 가능성을 언어 차원에서 줄여준다. 변수는 기본적으로 널 값을 허용하지 않으며, 명시적으로 널을 허용하는 타입을 사용해야 한다.
  • 간결한 문법: 자바에 비해 보일러플레이트 코드가 적어 코드 라인이 현저히 줄어든다. 이를 통해 가독성과 생산성이 향상된다.
  • 코루틴: 비동기 및 논 블로킹 프로그래밍을 더 쉽게 처리할 수 있도록 지원하여 동시성 프로그래밍을 효율적으로 작성할 수 있게 한다.
  • 확장 함수: 기존 클래스의 소스 코드를 수정하지 않고도 새로운 메서드를 추가할 수 있다.
  • 데이터 클래스: 데이터를 보유하는 목적의 클래스를 data 키워드를 사용하여 간결하게 정의할 수 있다. equals(), hashCode(), toString(), copy() 등의 메서드가 자동으로 생성된다.
  • 스마트 캐스트: 조건문 등에서 타입 검사를 하면 컴파일러가 자동으로 해당 블록 내에서 타입을 캐스트해준다.

플랫폼

코틀린은 다양한 플랫폼을 대상으로 컴파일할 수 있다.

  • 코틀린/JVM: 자바 가상 머신 위에서 실행되는 바이트코드로 컴파일된다. 서버 개발, 데스크톱 애플리케이션, 안드로이드 개발 등에 사용된다.
  • 코틀린/JS: 자바스크립트로 컴파일되어 브라우저나 Node.js 환경에서 실행되는 프런트엔드 또는 백엔드 웹 개발에 사용될 수 있다.
  • 코틀린/Native: JVM이나 자바스크립트 런타임 없이 실행 가능한 네이티브 실행 파일을 생성한다. LLVM 기술을 기반으로 하며, 데스크톱 애플리케이션, 서버, iOS 및 임베디드 시스템 개발 등에 활용될 수 있다.
  • 코틀린 멀티플랫폼: JVM, JS, Native 플랫폼 간에 공통 코드를 공유할 수 있도록 지원한다. 이를 통해 안드로이드 및 iOS 앱에서 비즈니스 로직을 공유하는 등의 크로스 플랫폼 개발이 가능하다.

활용

코틀린은 주로 다음과 같은 분야에서 활용된다.

  • 안드로이드 애플리케이션 개발: 구글의 공식 지원 언어로서 가장 활발하게 사용되는 분야이다.
  • 서버사이드 개발: 스프링 프레임워크 등을 비롯한 다양한 자바 기반 프레임워크와 함께 사용하여 백엔드 애플리케이션을 개발한다.
  • 웹 개발: 코틀린/JS를 사용하여 프런트엔드 개발을 하거나, 코틀린/JVM으로 백엔드를 개발한다.
  • 데스크톱 애플리케이션 개발: 코틀린/JVM이나 코틀린/Native를 사용하여 개발한다.
  • 크로스 플랫폼 모바일 개발: 코틀린 멀티플랫폼 모바일(Kotlin Multiplatform Mobile, KMM)을 사용하여 안드로이드와 iOS 간에 비즈니스 로직을 공유한다.

라이선스

코틀린은 아파치 2.0 라이선스(Apache 2.0 License) 하에 배포되는 오픈 소스 소프트웨어이다. JetBrains가 주도적으로 개발 및 관리를 담당하고 있으며, 활발한 커뮤니티 기여도 이루어지고 있다.

평가

코틀린은 자바에 비해 간결하고 안전하며 표현력이 뛰어나다는 평가를 받으며, 개발 생산성을 크게 향상시킨다. 기존 자바 개발자들이 쉽게 배우고 적응할 수 있다는 점도 장점으로 꼽힌다. 특히 안드로이드 개발 분야에서 압도적인 점유율을 차지하며 주요 언어로 자리매김했다. 다양한 플랫폼 지원을 통해 활용 범위도 계속 확장되고 있다.