Kotlin용 함수형 라이브러리 Arrow의 공식문서에 있는 Domain modeling 블로그 글을 번역한 내용입니다.
Kotlin으로 도메인 모델링하기
· 약 14분
Kotlin용 함수형 라이브러리 Arrow의 공식문서에 있는 Domain modeling 블로그 글을 번역한 내용입니다.
이전에 node.js 환경에서 testcontainers
를 활용한 글을 작성하였다.
테스트 코드에 직접 컨테이너를 시작하고 종료하는 로직을 넣어야 했지만 jvm 에서는 annotation 을 활용해 더 간결한 코드를 만들 수 있다.
이번에는 Kotlin/Jvm 환경에서 testcontainers
를 사용하는 방법을 소개하려고 한다.
지연평가는 함수형 프로그래밍에서 자주 등장하는 개념이며 어떤 표현식의 값을 필요로 할 때까지 평가를 미루는 방법이다. 함수형 언어에서는 기본으로 모든 계산이 지연평가로 동작하기에 따로 구현할 필요는 없지만 그렇지 않은 언어에서는 각자의 언어 기능을 활용해 구현한다.
코틀린에서는 표준 위임 클래스 중 하나인 Lazy
를 통해 지연평가를 사용할 수 있다.
하지만 이는 완벽한 지연평가라기 보다 프로퍼티의 지연 초기화에 가깝다.
이번 글에서는 메모이제이션 기능이 있는 커스텀 Lazy
클래스를 만드는 과정을 기술하려고 한다.
최근에 코틀린과 스프링을 활용해 사이드 프로젝트를 하면서 querydsl 사용을 위해 세팅한 작업을 남기려고 한다.
자바로 된 querydsl 관련 블로그 글은 많은데 생각보다 코틀린은 적었고 제대로 적용이 안되어 고생을 하게되었다.