[Kotlin Tutorial] The Kotlin ecosystem
참조 : Kotlin in action
-
비록 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 를 제공한다.
'프로그래밍 놀이터 > Kotlin, Coroutine' 카테고리의 다른 글
[Kotlin] 장점, 단점, 그리고 아쉬운 점 이야기 (0) | 2018.01.15 |
---|---|
[Kotlin] Kotlin 은 Compile time 이 느리다는데.. 사실일까? (0) | 2017.09.26 |
[Kotlin Tutorial] Documenting Kotlin code (0) | 2017.09.20 |
[Kotlin Tutorial] Building Kotlin projects (0) | 2017.09.18 |
[Kotlin Tutorial] DSL construction - Chap 11. (0) | 2017.09.14 |
댓글