- Published on
서비스 지표(메트릭) 개념 정리
- Authors
- Name
- 이건창
Introduction
로깅, 모니터링, 메트릭 이런 단어들을 많이 들어봤을거야. 아마 이런게 궁금해서 모니터링을 수집했다면 어떤 데이터를 모니터링해야 하지? 이런 고민이 들 수 있어. 나도 그랬거든.
그래서 어떤 데이터를 수집해서 정량화할 지 고민해보기 위해 개념부터 익혔어. 익힌 개념들을 내가 생각한 통찰과 함께 이야기해볼게.
서비스 지표
서비스 지표는 특정 서비스에서 부족한 부분을 개선하기 위해 고객 이벤트로 정량적 수치를 도출해 만든 데이터를 의미해. 요약하자면 서비스를 개선하기 위한 고객 분석 데이터를 의마하지.
지표를 수집하는 이유
자신이 기여하는 서비스가 제대로된 방향으로 기여하고 있는지 시각화 역할이 필요해. 누군가의 인용을 들면 쉽게 납득할 수 있을거야.
측정할 수 없으면 관리할 수 없고 관리할 수 없으면 개선할 수 없다. - 피터 드러커
개발자 포지션으로서 회사에 기여하는 방법 중 하나는 시각화라고 생각해. 이해관계자가 올바른 선택을 할 수 있도록 일종의 네비게이터가 되는거지.
서비스 지표 종류
우선 어떤 지표를 보여줄 지 고민해볼 수 있어. 서비스 지표는 고객의 행동에서 측정하는 수치와 서비스가 운영되는 시스템에서 측정하는 시스템으로 나눌 수 있어.
- 비즈니스 지표 : 사용자에 의한 이벤트 (ex : 회원 가입 진행, 상품 구매 등등)
- 시스템 지표 : 시스템 동작과 관련된 수치 (ex : CPU, 메모리 등등)
비즈니스 지표를 활용하면 사용자들의 행동 패턴을 분석할 수 있고 시스템 지표를 활용하면 사용자들의 불편함을 미리 개선할 수 있어.
지표 수집 기간
어떤 지표를 보여줄 지 고민했다면 어떤 주기로 보여줄지도 고민해볼 수 있지. 어떤 데이터를 어떤 주기로 보여주는게 좋을까?
- 일일, 주간, 월간
지표 수집 기간에 따라 수집 방법과 사용 방법이 달라져. 예상 대는 방법은 두 가지야.
- 일일 지표는 일일 사업 지표로 사용
- 주간, 월간 지표는 고생 동향과 서비스 성장 여부 파악에 사용
시스템 지표는 일일 지표를 통해 실시간으로 확인하는게 맞는 것 같고, 비즈니스 지표는 의사 결정 주기에 맞게 활용하는게 좋아보여.
서비스 지표 예시
패스트 캠퍼스 강의에서, 어떤 서비스 지표를 수집 할 수 있는지 확인할 수 있었어.
결제 도메인인 경우 예상할 수 있는 지표는 다음과 같아.
- 서비스 지표
- 플랫폼 별 결제
- 결제 성공률
- 결제 처리 속도
- 시스템 지표
- API 오류, 레이턴시
- 외부 페이먼트 API 오류, 레이턴시
주문 도메인 경우 예상할 수 있는 지표는 다음과 같아.
- 서비스 지표
- 주문 건 수
- 주문 컨버전
- 시스템 지표
- API 오류, 레이턴시
각 도메인의 상태 관련 지표를 수집하면 병목 현상을 쉽게 확인 할 수 있어.
- 고객 상태 : 일반 회원, 유료 회원, 탈퇴 회원
- 상품 상태 : 상품 등록, 상품 진열
- 물류 상태 : 입고, 출고
서비스 지표 수집
지금까지 서비스 지표를 알아봤다면 수집하는 과정은 어떤지 살펴볼게. 지표 수집 과정은 도메인에서 발생한 이벤트를 기록, 가공 후 적재하는 일을 말해.

아마 개발자라면 수집 과정이 더 신경 쓰일 수 밖에 없어보여. 결정된 서비스 지표들이 안정적으로 클라이언트에 전달 할 책임이 있기 때문이지.
수집 방법
배치 처리는 서비스를 일정 기간 간격으로 주기적으로 수집하는 방법을 의미하고 실시간 처리는 말그대로 지속적으로 데이터를 수집하는 방법을 의미해.
- 실시간 처리
- 배치 처리
실시간 처리와 배치 처리는 요구되는 각 구조와 장단점이 존재해. 구조와 장단점에 대해서 간단하게 살펴볼게
실시간 처리 구조는 다음처럼 이벤트를 전달할 수 있는 스트리밍 도구를 사용해 구성할 수 있어.

그리고 다음과 같은 장단점을 가지게 돼.
- 실시간 처리 장점
- 준실시간으로 데이터를 조회 할 수 있음
- 실시간 처리 단점
- 구현과 관리가 까다로움
만약 의사 결정이 빈번하게 일어나지 않는다면 실시간으로 수집하는 일은 오버엔지니어링일 수 있으니 주의하자.
배치 처리 구조는 다음처럼 DB를 복제한 후 원하는 방식으로 배치 처리를 진행할 수 있어.

그리고 다음과 같은 장단점이 필요해.
- 배치 처리 장점
- 구현과 관리가 실시간 처리보다 쉬움
- 배치 처리 단점
- 데이터를 일정 주기마다 확인할 수 있음
만약 일, 월, 년 단위로 데이터를 수집하는 경우라면 배치 처리가 적합할 수 있어. 그러나 의사 결정이 빠른 조직이라면 배치 처리는 좋은 선택이 아니야.
수집 후 필요한 액션
주기적으로 관심을 둘 수 있도록 수치를 시각화하고 이벤트 발생을 확인할 수 있는 도구가 필요해.
- 시각화
- 알람
지표를 선정하고 수집하는 과정을 설계했다면 어떻게 시각화하고 알람을 보낼지 고민해보자.
ETL(Extract, Transform, Load)
데이터를 추출하고 변환한 후 로딩하는 과정을 줄여서 부르게 돼.
이 과정에서 분산된 도메인들의 데이터를 결합하게 되지.

분산된 데이터를 함께 조회하기 위해서 ETL을 사용해야 해. "
20대 남성(회원)
이청바지(상품)
을 구매했다."라는 정보를 남기기 위해서는 꼭 필요한 일이야.