Featured image of post [Kurly] 쿠폰과 할인으로 앞다리살 하나 더 판매한 이야기 - 리뷰

[Kurly] 쿠폰과 할인으로 앞다리살 하나 더 판매한 이야기 - 리뷰

zipkin과 kibana를 이용한 오류 분석

원글 링크

# 원글 요약

  1. 쿠폰에 대해 “주문 상품에 사용할 수 없는 쿠폰입니다"라는 보고가 들어옴.
  2. 사용할 수 없는 쿠폰을 사용 시도한 경우로 사용자 UI 상에서는 이뤄질 수 없는 시스템 오류 혹은 공격의 가능성이 있는 현상이기 때문에 분석 진행
  3. zipkin을 통해 사용자 정보와 쿠폰 정보 확인
  4. kibana를 통해 API 로그 조회
  5. 주문서 단계에서 쿠폰은 사용 가능이었지만 결제 단계에서는 사용 불가능했음.

원인은 주문서 단계에서 쿠폰의 사용조건이 충족되었으나 결제 단계로 넘어갈 때 상품 할인에 변동이 있었기에 사용 조건이 충족되지 못하게 되었던 것이다.

이는 쿠폰 사용이 되지 않도록 어플리케이션에서 잘 방어한 것을 검증 할 수 있는 케이스였고, 불편한 사용자 경험에 대해 컬리는 다음과 같이 멘션을 남겼다.

할인가의 변화 혹은 증정 프로모션의 종료로 인해서 사용자가 장바구니에 담았을 당시와 결제시에 정보차이로 생기는 문제가 종종있어서 개선 계획에 있습니다. 😀

# Zipkin

Zipkin은 분산 시스템에서 발생하는 문제를 해결하고, 시스템 내에서의 요청 흐름을 추적하는 데 사용되는 오픈 소스 분산 추적 시스템이다. 주로 마이크로서비스 아키텍처1와 같이 여러 서비스 간 통신이 발생하는 환경에서 사용된다.

Zipkin은 각각의 서비스에서 발생하는 요청을 추적하기 위해 서비스 간에 고유한 식별자를 사용한다. 각 요청은 이 식별자를 통해 추적되며, 요청이 서비스 간을 이동할 때마다 해당 요청에 대한 정보가 업데이트된다.

Zipkin을 사용하면 다음과 같은 장점을 얻을 수 있다.

  • 문제 해결 및 디버깅 : 시스템에서 발생하는 문제를 식별하고 디버깅하는 데 도움이 된다.
  • 성능 분석 : 각 서비스 간의 요청 및 응답 시간을 추적하여 성능 향상을 위한 지표를 제공한다.
  • 서비스 의존성 시각화 : 서비스 간의 의존성을 시각화하여 시스템 아키텍처를 이해하고 변경사항을 관리하는 데 도움이 된다.

종합하면, Zipkin은 분산 시스템에서의 추적과 모니터링을 통해 시스템의 가시성을 높이고, 문제를 해결하고 성능을 향상시키는 데 도움이 되는 유용한 도구이다.

# Kibana

Kibana는 Elastic Stack2의 한 부분으로, 대규모 데이터 집합을 시각화하고 분석하는 데 사용되는 오픈 소스 데이터 시각화 도구이다. 주로 대용량 로그 파일, 지표 및 기타 유형의 데이터를 탐색하고 이해하는 데 사용된다.

# 주요기능

  • 대시보드 작성 : 사용자는 다양한 시각화 요소를 조합하여 사용자 정의 대시보드를 만들 수 있다. 이를 통해 데이터의 시각적인 요약과 인사이트를 얻을 수 있다.
  • 시각화 : Kibana는 다양한 종류의 차트와 그래프를 생성할 수 있다. 선 그래프, 막대 차트, 파이 차트, 지리적 지도 등 다양한 형태의 시각화를 제공한다.
  • 데이터 탐색 및 검색 : Elasticsearch3의 강력한 검색 기능과 연동되어, 사용자는 데이터를 쉽게 탐색하고 검색할 수 있다.
  • 필터링 및 집계 : Kibana를 사용하여 데이터를 필터링하고 집계하여 원하는 정보를 추출하고 분석할 수 있다.
  • 시계열 분석 : Kibana는 시계열 데이터를 처리하고 분석하는 데 강력한 기능을 제공한다. 이는 로그 데이터 및 시스템 성능 모니터링과 같은 시나리오에 유용하다.
  • 사용자 관리 및 권한 부여 : Kibana는 다중 사용자 환경에서 작동하며, 사용자에게 액세스 수준 및 권한을 부여할 수 있다.

Kibana는 로그 분석, 시스템 모니터링, 비즈니스 인텔리전스 등 다양한 용도로 사용된다. 그 유연성과 사용자 친화적인 인터페이스는 데이터 분석 및 시각화 작업을 쉽게 수행할 수 있도록 지원한다.

# 마치며

Kurly에서는 오류, 또는 문제 분석에 있어 Zipkin을 사용해 요청에 대해 필요한 정보를 찾아내고(사용자 정보, 쿠폰 정보) 이를 통해 Kibana에서 API 호출에 대한 로그를 조회하여 분석한다는 것을 알 수 있었다.


  1. 소프트웨어를 작은, 독립적인 서비스로 나누어 개발하고 관리하여 유연성과 확장성을 높이는 아키텍처 패턴이다. ↩︎

  2. 검색, 분석, 시각화, 로깅 등 다양한 데이터 처리를 위한 오픈 소스 도구 모음이다. ↩︎

  3. 실시간 분산 검색 및 분석 엔진으로, 대용량 데이터를 저장하고 검색하며 시각화하는 데 사용된다. ↩︎

Hugo로 만듦
JimmyStack 테마 사용 중