Skils/Kotlin

[Kotlin] 코틀린 생태계

재한 2022. 7. 21. 16:37

코틀린이 진화해 오면서 소프트웨어 개발의 거의 모든 측면에 대한 풍부한 라이브러리와 프레임워크가 만들어졌다.

이번 글에서는 코틀린의 사용 가능한 도구를 전반적으로 설명할 예정이다.


1.코루틴

일시 중단 가능한 계산이라는 개념 덕분에 코틀린은 async/await, 퓨처(future), 프라미스(promise), 액터(actor)등의 동시성 관련 프로그래밍 패턴을 지원할 수 있다.

코 루틴 프레임워크는 서버 쪽이거나 모바일, 데스크톱을 위한 것인지와 관계없이 코틀린 애플리케이션에서 동시성 문제를 해결할 수 있는 강력하고 우아하며 쉽게 확장 가능한 해법을 제공한다.

  • 스레드에 대한 거 가벼운 대안
  • 유연한 스레드 디스패치 메커니즘
  • 일시 중단 가능한 시퀀스와 이터레이터
  • 채널을 사용한 메모리 공유
  • 액터를 통해 메시지 전송 방식으로 상태 공유

2. 테스트

테스트를 정의하거나 객체를 모킹 하고 싶을 때 JUnit, TestNG, 모키토 같은 익숙한 자바 테스트 프레임워크 중 일부를 거의 아무런 노력도 기울이지 않고 코틀린에 적용할 수 있다.

  • 모키토-코틀린은 유명한 모키토 프레임워크를 확장한 것으로 코틀린 객체 모킹을 단순화해준다.
  • 스펙은 행위 주도 테스트 프레임워크로, 재스민이나 저킨 스타일의 테스트 케이스 정의를 지원한다.
  • 코 테스트는 스칼라 테스트에 의해 영감을 얻은 프레임워크로, 유연한 테스트 정의와 단언 문을 지원한다.

3. 안드로이드 개발

안드로이드는 코틀린의 주된 응용 분야이자 가장 활발하게 성장하는 분야이다. 특히 구글이 코틀린을 1급 안드로이드 언어로 선언하면서 안드로이드 개발에서 코틀린이 중요해졌다.

4. 웹 개발

웹/엔터프라이즈 애플리케이션 개발자들도 코틀린의 이점을 살릴 수 있다. 스프링 5.0이나 Vert.x 3.0과 같은 유명한 프레임워크들은 자신의 기능을 좀 더 코틀린다운 방식으로 활용할 수 있게 해주는 코틀린용 확장을 제공한다. 그 외에도 다양한 프레임 워크를 사용하는 순수 코틀린 해법을 사용할 수 있다.

  • Ktor는 젯브레인즈에서 만든 비동기 서버와 클라이언트 애플리케이션 작성을 위한 프레임워크이다.
  • kotlinx.html은 HTML 문서를 만들기 위한 DSL이다.
  • 코데인은 의존 관계 주입 프레임워크이다.

5. 데스크톱 애플리케이션

JVM 플랫폼 상의 데스크톱 애플리케이션 개발자는 자바 FX기 기반의 토네이도 FX를 사용할 수 있다.

토네이도 FX는 CSS를 통해 스타일을 지정하고 GUI를 쉽게 만들 수 있는 영역 특화 언어를 제공하며, FXML마크업과 MVC/MVP 아키텍처를 지원한다.