pile·

SLASH 23 - 연결되면 비로소 보이는 것들

토스·토스 SLASH 23 2023·

챕터별 상세

010:00 – 2:24

핀포인트와 코루틴 — 끊긴 추적이라는 문제

토스 서버플랫폼 팀 구태진이 옵저빌리티(observability)를 확보한 노력과 그것으로 서비스를 개선한 사례를 발표한다. 토스는 네이버가 만든 오픈소스 APM 핀포인트(Pinpoint)를 쓰는데, 분산 추적에 강점이 있어 한 유저 요청에서 파생되는 모든 내부 요청을 한눈에 보고 어느 서비스가 느린지·문제인지 확인할 수 있다.

한편 토스는 서버 리소스를 최대한 활용하려 주로 비동기로 개발하며, 비동기 코드를 손쉽게 짜기 위해 코틀린의 코루틴(coroutine)을 주로 쓴다. 그런데 핀포인트와 코루틴을 함께 쓰면 모든 요청이 연결이 끊긴 채로 보여 기능 활용에 제한이 생긴다. 핀포인트가 코루틴 프레임워크를 지원하지 않기 때문이다. 옵저빌리티를 위해 핀포인트가, 리소스 활용을 위해 코루틴이 모두 필요하므로 직접 코루틴 플러그인을 만들기로 한다.