본문 바로가기

코틀린

히카리 풀 모니터링 히카리 풀을 사용하게 되면 housekeeper란 놈이 기본으로 30초마다 풀 상태를 debug모드로 찍고있는데 커스터마이징이 잘 안되서 별도로 찍기로 함 @SpringBootApplication @EnableScheduling class ApiApplication( val dataSource: DataSource) { @Scheduled(fixedDelay = 10000) fun hikariPoolMonitor() { (DirectFieldAccessor(dataSource).getPropertyValue("pool") as HikariPool?)?.let { hikariPool -> logger().info("Pool stats (total=${hikariPool.totalConnections}, a.. 더보기
동기(Synchronous)/비동기(Asynchronous) 처리 다음과 같이 여러개의 작업을 동시에 처리할때 작업1,2가 메인작업과 별개의 작업일때 비동기(@Async)로 던져놓고 메인 작업만 완료 후 응답을 주기도 합니다. (응답시간 0.5초, 작업1,2의 결과 받을 수 없음) 메인작업 : 0.5초 작업1 : 1초 작업2 : 2초 하지만 3가지 작업의 결과가 모두 필요할 경우 동기 처리를 하면 3.5초가 걸리지만 작업1, 2를 비동기로 처리하면 일찍 처리가 끝난 작업은 모든 작업이 완료될때까지 대기 후 응답을 줍니다. (응답시간 2초, 3개의 작업 결과 확인 가능) Kotlin @RestController @EnableAsync class ThreadTest( val taskService: TaskService, val mainService: MainService .. 더보기
Kotlin toIntOrNull 코틀린에서 숫자 변환시에 자주 쓰이는 함수입니다. 다른 용도로 숫자인지 아닌지를 판단할때도 자주 쓰는데 주의할 점이 있습니다 fun main(args:Array) { "1234".run { println(this.toIntOrNull() ?: "$this is not number") } "349505749735".run { println(this.toIntOrNull() ?: "$this is not number") println(this.toBigIntegerOrNull() ?: "$this is not number") } } //1234 //349505749735 is not number //349505749735 위 예제를 보시면 문자열이 숫자인지 아닌지 판단하기 위해 toIntOrNull을 사용하.. 더보기