Kotlin
-
API Latency를 줄이는 방법 (Part. 2)카테고리 없음 2023. 9. 3. 18:13
API의 응답속도 및 지연에 민감한 서비스인 경우, 어떤 방식으로 latency를 줄일 수 있을까? 이전 게시글에서는 Network IO, Cpu Io 등 Test를 위해 IO 발생 로직들을 추가한 API를 만들었다. 그리고 Jmeter를 통한 테스트 방법에 대한 안내를 진행했다. 이번에는 이전에 만든 API의 Latency를 낮추기 위해 CompletableFuture와 Async를 사용해보겠다. TestController에 V2 API를 추가한다. /** with CompletableFuture and Async */ @GetMapping("/api/ral/v2/test") fun getTestV2( request: TestRequest ) = testV2Service.getTestV2(request..
-
API Latency를 줄이는 방법 (Part. 0)극락코딩 2023. 8. 28. 20:13
API의 응답속도 및 지연에 민감한 서비스인 경우, 어떤 방식으로 latency를 줄일 수 있을까? 최근에 API의 latency가 민감한 서비스를 개발하게 되었다. 사용자 경험상, 아무리 늦더라도 60~80ms안에는 API의 응답을 받아야 했다. 그렇다면, latency를 줄이기 위한 방법으로는 무엇이 있을까? 일단, 몇가지 상황을 제시한다. 해당 API는 TPS 500이 넘는다고 가정한다. (그 만큼 Call이 많은 서비스) 해당 서비스는 다수의 쿼리를 조회하고, Redis 및 Client 호출이 많다. (Wrapping API라고 생각하자) 해당 서비스는 에러가 발생하더라도, 이를 방어할 수 있는 로직이 필요하다. (에러 발생보다는, 로그를 남기고 넘어가는 방향으로 진행) 그럼, Project Se..
-
Kotlin에서 Builder Pattern을?극락코딩 2023. 8. 15. 17:39
java에서는 코드의 가독성과 편의를 위해 롬복을 사용한다. 그중에서 builder를 많이 사용할 것인데... Kotlin에서는 builer Pattern을 생각보다 많이 사용하지 않는다. (물론 사용은 가능...) 그래서 예시를 함 보자 kotlin에서 builder Pattern을 사용하지 않는 이유가 무엇일까요? 1. kotlin에서는 getter없이 property 접근이 가능하다.. 2. kotlin에서는 setter없이 property 값을 변경 가능하다.. 위의 두가지 처럼, property를 직접 접근 가능한 이유로 builder 쓸 이유가 없어진다. 그래도 만약에 쓰고 싶다면, 아래와 같이 해보면 어떨까 import java.time.LocalDateTime /** 단순 객체 데이터를 B..