본문 바로가기
프로그래밍 놀이터/Kotlin, Coroutine

[Kotlin Tutorial] The Kotlin ecosystem

by 돼지왕 왕돼지 2017. 9. 22.
반응형

 [Kotlin Tutorial] The Kotlin ecosystem


참조 : Kotlin in action


dagger, Data Structure, Database access, de-facto standard, dependency injection, di, DSL, Ecosystem, exposed, Framework, fuel, funKTionale, GSON, guice, Hamkrest, HTTP Clients, Jackson, Jackson-module-kotlin, Java, javafx, jkid, jnuit, JSON Serialization, junit, jvm, Klaxon, kodein, Kotlin, kotlin basics, kotlin tutorial, kotlin version, kotlin-native solution, kotlintest, Kotson, Kovenant, lib, Mockito-Kotlin, okhttp, pure kotlin, reactive programming, rest api, Retrofit, rxjava, RxKotlin, spek, sprint, TestNG, Tool, TornadoFX, tornatofx, Util, [Kotlin Tutorial] The Kotlin ecosystem, 코틀린, 코틀린 기초, 코틀린 기초 강좌


-

비록 Kotlin 의 역사는 오래되지 않았지만, 이미 lib, framework, tool 들로 구성된 ecosystem 이 잘 마련되었다.

그리고 그들은 대부분 외부 개발 커뮤니티에서 개발된 것이다.


https://kotlin.link/ 여기 가면 많은 정보를 얻을 수 있다.



-

Kotlin 은 Java 와 함께 사용가능하기 떄문에,

lib 검색할 떄 Kotlin lib 으로 한정지을 필요가 없다. 

당연히 Java lib 을 가져다 써도 된다.



1. Testing


-

JUnit, TestNG 도 좋지만, 아래 DSL 들은 더 표현력이 풍부하다.


KotlinTest https://github.com/kotlintest/kotlintest

Spek https://github.com/jetbrains/spek


Junit 은 그대로 사용하고, assertion 만 DSL 을 사용하고 싶다면 Hamkrest 가 좋다.

https://github.com/npryce/hamkrest


Mock 이 필요하다면 Mockito-Kotlin 이 좋다.

https://github.com/nhaarman/mockito-kotlin





2. Dependency Injection


-

Sprint, Guice, Dagger 등의 dependency injection 을 역시 Kotlin 과 잘 작동한다.

그러나 Kotlin-native solution 이 필요하다면 Kodein 이 좋다.

매우 효율적으로 구현되어 있으며 DSL 도 사용 가능하다.

https://github.com/SalomonBrys/Kodein





3. JSON Serialization


-

JKid 은 처음부터 Kotlin 으로 나온 녀석이고 Jackson, GSON 등이 Kotlin 지원하는 버전이 나왔다.


Jackson-module-kotlin : https://github.com/FasterXML/jackson-module-kotlin

Kotson : https://github.com/SalomonBrys/Kotson



-

가벼운 녀석이 필요하다면 Klaxon 도 좋다.

https://github.com/cbeust/klaxon





4. HTTP Clients


-

Kotlin 에 Rest API 를 사용하려면 Retrofit 이 개짱짱이다.

http://square.github.io/retrofit



-

Lower-level solution 이 필요하다면 OkHttp도 좋고, pure Kotlin 인 Fuel 도 좋다.


OkHttp : http://square.github.io/okhttp/

Fuel : https://github.com/kittinunf/Fuel





5. Web App


-

생략..





6. Database access


-

Exposed 가 좋다.

https://github.com/jetbrains/Exposed





7. Utilities and data structures


-

요즘 hot 한 programming paradigm 은 reactive programming 이며, Kotlin 은 여기에 참 잘 맞다.

RxJava 가 JVM 에서의 de-facto standard.

RxKotlin 을 쓰면 된다.


https://github.com/ReactiveX/RxKotlin



-

아래 녀석들을 사용하면 유용한 util 과 data structure 들을 찾을 수 있다.


funKTionale : https://github.com/MarioAriasC/funKTionale, functional programming primitives 를 제공

Kovenant : https://github.com/mplatvoet/kovenant, Kotlin 과 Android 를 위한 여러 가지 구현





8. Desktop programming


-

Desktop 은 대부분 JavaFX 를 사용할 것이다.

TornadoFX 를 사용하면 JavaFX 에 대한 Kotlin version 의 adapter 를 제공한다.




반응형

댓글