Spring
-
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. 1)극락코딩 2023. 8. 29. 23:43
API의 응답속도 및 지연에 민감한 서비스인 경우, 어떤 방식으로 latency를 줄일 수 있을까? 이전 게시글에서는 기본적인 Project Setup을 진행했다. 이번에는 아래의 상황이 적용된 API를 만들어 본다. 해당 API는 TPS 500이 넘는다고 가정한다. (그 만큼 Call이 많은 서비스) 해당 서비스는 다수의 쿼리를 조회하고, Redis 및 Client 호출이 많다. (Wrapping API라고 생각하자) 해당 서비스는 에러가 발생하더라도, 이를 방어할 수 있는 로직이 필요하다. (에러 발생보다는, 로그를 남기고 넘어가는 방향으로 진행) 위의 조건을 맞추기 위해, 지금 만드는 API에서는 다음과 같은 IO 발생 로직들을 추가할 것이다. 1. Database 조회 4번 2. Redis 조회 ..
-
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..