이 책에서 Exposed를 학습하기 위해서는 다양한 기반 기술이 필요합니다. 하지만 이러한 기술들이 이 책의 중점은 아니므로, 본격적인 Exposed 학습에 들어가기 전에 관련 내용을 먼저 정리하고자 합니다.
제가 소개할 Bluetape4k 라이브러리는 현업에서 개발자로 일하면서 축적한 경험을 바탕으로 만들었으며, 제가 개발한 모든 서비스에서 실제로 활용된 검증된 라이브러리입니다.
Bluetape4k 는 Kotlin 언어로 개발할 때 자주 사용하는 기술, 핵심 기술인 Coroutines 관련 등 기존 라이브러리들이 제공하지 않거나 부족한 부분에 대한 기능을 보강하기 위해 만들어 졌습니다.
https://github.com/bluetape4k/bluetape4k-projects
bluetape4k-core의 assertions, required 같은 기능bluetape4k-units의 단위를 표현하는 value class 제공bluetape4k-io의 LZ4, Zstd 등 압축 기능 개선bluetape4k-redis의 lettuce, redisson용 Codec 제공 (공식 Codec보다 성능이 월등함)bluetape4k-junit5가 다양한 테스트 기법을 JUnit5 기반으로 제공합니다.bluetape4k-testcontainers로 다양한 서비스들을 테스트 환경에서 사용할 수 있습니다.bluetape4k-coroutines는 Coroutine을 사용할 때 유용한 기능을 제공합니다.bluetape4k-feigh, bluetape4k-retrofit2 등은 HTTP 통신 시 async/non-blocking을 위해 Coroutines을 사용합니다.bluetape4k-aws-xxxx로 AWS Java SDK를 Async/Non-Blocking 방식으로 사용할 수 있습니다.bluetape4k-aws-s3는 S3 사용 시 Async/Non-Blocking 방식과 TransferManager를 통해 대용량 파일 전송 성능을 향상합니다.bluetape4k-aws-kotlin-xxxx는 AWS Kotlin SDK 사용 시 Coroutines를 활용한 고성능 기능과 예제를 제공합니다.bluetape4k-resilience4j로 Resilience4j를 Kotlin Coroutines와 함께 사용할 수 있습니다.bluetape4k-redis는 Lettuce, Redisson 용 고성능 Codec을 제공합니다.이 책에서는 3번 bluetape4k-junit5, bluetape4k-testcontainers 를 가장 많이 사용합니다.
bluetape4k 는 Maven Central 에 배포되어 있으므로, 별도의 custom repository 설정 없이 mavenCentral() 만 지정하면 바로 사용할 수 있습니다.