Exposed는 Kotlin언어로 작성된 ORM(Object Relational Mapping) 라이브러리다. 실제 insert를 batchInsert 하기 위해서는 JDBC 드라이버에서 제공하는 rewriteBatchedStatements 옵션을 활성화해야한다.
이펙티브 코틀린 책 Item 45 불필요한 객체 생성을 피하는 것이 최적화에서 중요. 객체로 wrap하는 것은 비용이 발생. 객체 선언, 캐시를 활용하는 팩토리 함수, 무거운 객체를 외부 스코프로 보내기, 지연 초기화, primitives 사용으로 최적화하기
Chapter 8: Efficient collection processing Sequence는 lazy하게 처리. 자연스러운 처리 순서(element-by-element). 최소한으로 연산. 무한 sequence로 사용 가능. 각각의 단계에서 컬렉션을 만들어내지 않는다
타입을 나타내는 변수인 타입 파라미터 T는 사실 nullable하다. 타입 파라미터를 not null한 타입 파라미터로 사용하려면 T:Any 널이 될 수 없는 타입 상한을 지정해야한다. T는 nullable이 될 수 있지만, not null로 타입 추론된다