# Amplitude 이벤트의 구조

이벤트와 속성(Property)의 관계 — 자동차 비유로 시작해 변수(Variable)·KEY·VALUE를 거쳐, 속성의 KEY가 Amplitude 차트의 분류축이 되는 구조까지 정리합니다.

- 카테고리: Amplitude 이벤트 택소노미
- 소요 시간: 약 8분
- 난이도: 입문
- 업데이트: 2026.06.01
- 원문: /wiki/playbook/amplitude-event-taxonomy-checklist/what-is-amplitude-event-structure

## 목차

- [정보의 최소 단위, 이벤트](#unit-event)
- [구매 이벤트 예시](#purchase-example)
- [변수(Variable)로 쪼개기](#variable)
- [KEY와 VALUE](#key-value)
- [이벤트 속성(Event Property)](#property)
- [KEY가 차트의 분류축이 되면](#amplitude-segment)
- [자주 묻는 질문](#faq)

이벤트는 ‘정보 전달의 **최소 단위**’입니다. 그런데 이름 하나만 가지고는 ‘무엇이 어떻게 일어났는지’를 다 전할 수 없죠 — 그래서 이벤트는 늘 그 사건을 설명하는 부가 정보(**속성**)를 함께 데리고 다닙니다. 이 글은 길에서 본 ‘아반떼’ 이야기로 시작해서, 이벤트의 구성요소가 어떻게 변수(Key/Value)로 분해되고, 그것이 어떻게 Amplitude 차트의 ‘분류축(Segment by)’으로 이어지는지를 따라갑니다.

## 정보를 전달하는 최소 단위, 이벤트(Event)

수백 대의 차량이 지나가고 있습니다. 그중 저는 제가 봤던 한 대의 아반떼 차량이 지나간다는 것을 친구한테 말해 주고 싶습니다. 그래서 저는 친구한테 말합니다.

“친구야, 자동차가 지나간다!”

이렇게 ‘자동차가 지나간다’는 말로는 제가 가리키는 특정 한 대를 지칭할 수가 없습니다. 그래서 저는 자동차가 가지고 있는 성격을 함께 표현합니다.

“저 자동차의 이름은 **아반떼**고, 색깔은 **흰색**이고, 번호판은 **1752**이고, 시속은 **60km/h**야!”

이렇게 제가 설명하려는 차량이 가지고 있는 성격들을 여러 가지로 열거하여 친구에게 정보를 전달하는 것이지요.

친구에게 정보를 전달할 때, **정보 전달의 대상**이 되는 것을 우리는 사물 또는 대상이라는 의미를 가지고 있는 **개체(Object)**라고 부릅니다. 그리고 좀 더 구체적으로 특정 차량을 지목하기 위해 해당 차량이 가지고 있는 성격을 열거하는데, 이 열거된 정보들은 차량이 가지고 있는 성질 또는 특징을 의미하며, 그 대상이 가지고 있는 **속성(Attribute)**이라고 부릅니다.

이건 자동차야! ← 설명의 대상(Object)

· 이름은 아반떼야 · 색깔은 흰색이야 · 번호판은 1752이야 · 속도는 60km/h야 ← 대상이 가지고 있는 성질(Attribute)

Amplitude를 비롯한 분석툴은 같은 원리로 데이터를 적재합니다. 실제로 웹사이트에 방문하는 순간, Amplitude는 아래와 비슷한 방식으로 데이터를 보냅니다.

예시 — 페이지뷰 이벤트

event: page_view page_title: "허들러스 — 홈" page_url: "https://hurdlers.kr/" page_referrer: "https://google.com/" language: "ko"

여기서 `page_view`는 설명의 **대상(Object)**이 되는 동시에, 정보를 전달하는 가장 작은 단위인 **이벤트(EVENT)**입니다. 또 그 이벤트의 추가 정보를 제공해 주기 위해 속성(Attribute) 정보를 추가로 제시하는데, 이 정보를 Amplitude에서는 **이벤트 속성(Event Property)**라고 부릅니다.

마치 오브젝트와 오브젝트가 가지고 있는 성질을 가지고 누군가에게 정보를 전달하는 것처럼, 로그 데이터는 **이벤트와 이벤트가 가지고 있는 성질**을 데이터로 전송합니다. 그렇습니다 — 이벤트는 사용자가 웹/앱에서 행동하는 하나의 상호작용을 나타내는 단위이며, **이벤트와 속성**으로 구성요소가 나뉘어져 있습니다.

## 예시 — 쇼핑몰의 구매 완료 이벤트

우리가 쇼핑몰을 운영한다고 생각해 봅시다. 실제로 사용자가 구매 완료 페이지에 도착했을 때, 우리는 아래와 같은 형태로 데이터를 전송하게 됩니다.

구매가 발생했어! ← EVENT

· 제품 이름은 티셔츠야 · 제품 가격은 8,000원이야 · 통화는 KRW야 · 제품 컬러는 검정색이야 ← PROPERTY

이것을 그대로 데이터로 전송하는 ‘코드 방식’으로 변환하면 아래와 같은 모습이 됩니다.

코드 표현 (Amplitude track API)

amplitude.track('complete_purchase', {item_name: "티셔츠", item_price: 8000, currency: "KRW", item_color: "black"});

같은 정보가 ‘말하기 좋은 형태’와 ‘기계가 읽기 좋은 형태’ 두 모습으로 표현된 셈입니다.

## 속성(Property)을 한 번 더 쪼개 보자 — 변수(Variable)

위 그림에서는 실제로 쇼핑몰에서 구매가 발생할 때 전송되는 이벤트와 속성을 단순하게 보여 주고 있습니다. 여기서 우리는 속성을 좀 더 해부해 보겠습니다. 지금 보면 속성을 구성하고 있는 성질이 총 4가지가 있습니다 — **제품 이름·제품 가격·통화·제품 컬러**. 이 속성을 구성하고 있는 요소들은 좀 더 쪼갤 수 있습니다. 4개의 속성은 각각 **변수(variable)**라는 단위로 불립니다.

> **팁**
>
> **변수라는 개념을 이해하는 것은 매우 중요합니다.** 데이터는 모두 변수의 형태로 저장되기 때문입니다. 변수란, *그 정보를 저장하고 있는 공간의 이름*과, *정보 그 자체*를 의미합니다.

철수가 가지고 있는 돈이 2,000원이지만, 1,000원짜리 아이스크림을 사 먹는다면, 철수가 가지고 있는 돈은 1,000원입니다. **2,000원에서 1,000원으로 정보는 바뀌었지만, 정보를 담고 있는 공간의 이름 — 즉 ‘철수가 가지고 있는 돈’이라는 이름은 바뀌지 않았습니다.**

변수 = 이름 + 그 안에 든 값

철수가 가지고 있는 돈 = 2000 ← 아이스크림 사기 전 철수가 가지고 있는 돈 = 1000 ← 아이스크림 사고 난 후 └─────────┬─────────┘ └──┬──┘ ‘이름(공간)’ ‘값(내용)’ — 그대로 — — 바뀜 —

이벤트의 속성도 마찬가지입니다. 속성 역시 변수 형태로 저장되어 있습니다. 이렇듯 **정보를 담고 있는 공간의 이름과 정보 그 자체를 묶어서 우리는 변수**라고 부릅니다.

## KEY와 VALUE — 변수의 두 부분

여기서 조금 더 전문적인 용어를 사용하자면, 연산자(`:` 또는 `=`)를 기준으로 **좌측**에 있는 ‘정보를 담는 그릇’을 우리는 **KEY**라고 부르고, **우측**에 있는 ‘정보 그 자체’를 **VALUE**라고 부릅니다.

KEY와 VALUE

item_color: "black" ──────── ──────── KEY VALUE (담는 그릇) (담긴 내용)

|  | KEY | VALUE |
| --- | --- | --- |
| 정의 | 정보를 담는 그릇(공간의 이름) | 그 그릇에 든 정보 그 자체 |
| 설계 단계에서 | **우리가 미리 정해 두는 것** — 어떤 이벤트에 어떤 키를 같이 보낼지 | 사용자 행동에 따라 그때그때 들어오는 것 |
| 예시 | `item_color`, `item_price`, `currency` | `"black"`, `89000`, `"KRW"` |

## 총 정리 — 이벤트 속성(Event Property)

정보를 전달할 때에는 이벤트를 전송하는데, 정보가 부족할 경우 이벤트에 변수 형태로 이벤트의 추가적인 속성을 변수(Variable) 형태로 함께 전달합니다. 이 순간 각각의 변수들은 이벤트에 대한 추가적인 정보를 제공해 주는 매개체의 역할을 하기 때문에, Amplitude에서는 이들을 **이벤트 속성(Event Property)**이라고 부릅니다.

| 분류상의 이름 | Amplitude에서 | 이번 글에서 본 예시 |
| --- | --- | --- |
| 개체(Object) | 이벤트(Event) | `complete_purchase` · `page_view` |
| 속성(Attribute) | 이벤트 속성(Event Property) | `item_color`, `item_price`, … |
| 속성을 담는 형태 | 변수(Variable) = KEY + VALUE | `item_color: "black"` |

> **팁**
>
> **GA4와의 작은 차이.** GA4 문서는 이 부가 정보를 *매개변수(Parameter)*라고 부르고, Amplitude는 *속성(Property)*라고 부릅니다. 가리키는 본질은 같지만 단어가 다릅니다 — 본 시리즈는 Amplitude 컨벤션에 맞춰 **속성**으로 통일합니다.

## KEY가 ‘분류축’이 되면 — Amplitude에서의 활용

이렇게 이벤트 + 속성의 형태로 데이터를 전송하면, 우리는 Amplitude·GA4·Mixpanel 같은 분석툴에서 다양한 방법으로 활용할 수 있습니다. 이번 가이드에서는 Amplitude에서의 활용을 한 가지만 짚어 보겠습니다.

데이터를 보낼 때 **속성의 KEY가 Amplitude 차트의 ‘분류축(Group by/Segment by)’이 되는 순간, 우리는 훨씬 많은 데이터를 관측할 수 있습니다.** 여기서 분류축이란 *데이터를 바라보는 기준*을 의미합니다. 아래는 Amplitude의 대표 차트인 ‘Event Segmentation’을 단순화한 모양새입니다.

Amplitude Event Segmentation을 단순화한 모습. 표의 가장 왼쪽 열이 ‘**국가**’ — 즉 **분류축(Group by)**이고, 그 옆이 이벤트 수행 사용자·이벤트 수 같은 지표입니다. 분류축을 바꾸면 같은 데이터를 ‘디바이스’별로도, ‘유입 매체’별로도, ‘페이지 경로’별로도 볼 수 있습니다.

위 표는 분류축이 ‘**국가**’(사용자 속성)인 차트입니다. 국가별로 사용자 수, 이벤트 수와 같은 다양한 지표를 관측할 수 있습니다.

다시 위에서 언급한 명제로 돌아가 봅시다 — **KEY가 분류축이 되면 우리는 더 많은 것을 볼 수 있다**는 것이죠. 예를 들어 구매(`complete_purchase`)라는 이벤트에 속성 4개를 넣었고, 그 안에 `item_color`를 매개변수의 형태로 전송할 때, 우리가 `item_color`를 분류축으로 설정하면 다음과 같은 것을 볼 수 있습니다.

분류축을 `item_color`로 설정한 결과. 어느 컬러가 가장 많이 팔렸는지(블랙·화이트), 어느 컬러의 ‘구매당 평균’이 가장 높은지(블랙)를 한 표에서 볼 수 있습니다. 이런 분석이 가능한 이유는 단 하나 — 구매 이벤트에 `item_color`를 속성으로 함께 보내 두었기 때문입니다.

어떤 컬러가 인기가 있었는지, 어떤 컬러의 수익이 높은지 등을 Amplitude에서 쉽게 관측할 수 있습니다. 이렇듯** 이벤트 하나에 속성을 추가하면 추가할수록 우리는 더 많은 것을 관측**할 수 있습니다.

## 자주 묻는 질문

### ‘속성(Property)’과 ‘매개변수(Parameter)’는 다른 건가요?

같은 것을 가리키는 다른 단어입니다. Amplitude·Mixpanel 문서는 ‘**속성(Property)**’를, GA4 문서는 ‘매개변수(Parameter)’를 씁니다. ‘이벤트에 따라붙는 속성(Attribute) 한 줄’이라는 점에서 본질은 같습니다. 본 위키의 Amplitude 시리즈는 **속성**으로 표기합니다.

### 속성은 많이 붙일수록 무조건 좋은가요?

‘분석에 쓸 것’이라면 좋습니다 — 속성이 많아질수록 그만큼 ‘쪼개서 볼 수 있는 축’이 늘어나기 때문입니다. 다만 Amplitude는 프로젝트별로 보유 가능한 이벤트 속성·사용자 속성 개수에 한도가 있고, 너무 많아지면 차트 드롭다운에서 분석가가 원하는 속성을 찾기 어려워집니다. 그래서 ‘일단 다 보내고 보자’보다 **‘분석에 쓸 것 위주’**가 현실적인 기준입니다.

### KEY는 우리가 정하고 VALUE는 정하지 않는 건가요?

네 — 설계 단계에서 우리가 ‘약속해 두는 것’은 KEY 쪽입니다. “구매 이벤트에는 `item_color`·`item_price`·`currency`를 같이 보낸다”처럼요. VALUE는 사용자의 실제 행동· 상황에 따라 그때그때 들어옵니다(`"white"`일 때도, `"black"`일 때도). ‘이벤트 택소노미’가 다루는 영역은 KEY 쪽 약속입니다.

### Amplitude에서는 ‘맞춤 측정기준 등록’ 같은 단계가 필요한가요?

**아니요.** GA4는 보낸 매개변수를 차트 드롭다운에서 보려면 ‘맞춤 측정기준 등록’이 필요하지만, Amplitude는 SDK로 보낸 속성이 *자동으로* 차트 드롭다운에 나타납니다(약간의 지연 후). 별도 등록 단계가 없는 점이 Amplitude의 장점입니다.

### ‘이벤트=개체(Object)’라는 비유, 너무 단순화한 거 아닌가요?

맞습니다 — 엄밀히는 객체지향(OOP)에서의 Object와 분석툴의 Event는 결이 다릅니다. 다만 ‘**설명의 대상**’과 ‘**그 대상의 성질을 열거**’한다는 사고 구조는 같아서, 이 글에선 교육용 비유로 사용했습니다. 실제 데이터 모델링에서는 둘을 섞어 쓰지 않도록 주의하세요.

## Navigation

- [전체 플레이북 Markdown sitemap](/wiki/playbook/sitemap.md)

### Amplitude 이벤트 택소노미

- [Amplitude 이벤트 택소노미](/wiki/playbook/amplitude-event-taxonomy-checklist)
- [Amplitude의 로그와 이벤트](/wiki/playbook/amplitude-event-taxonomy-checklist/what-is-amplitude-logs-and-events)
- [Amplitude 이벤트의 구조](/wiki/playbook/amplitude-event-taxonomy-checklist/what-is-amplitude-event-structure) (현재 문서)
- [이벤트 택소노미의 정의와 CASE STUDY](/wiki/playbook/amplitude-event-taxonomy-checklist/amplitude-event-taxonomy-case-study)
- [Amplitude 이벤트의 종류](/wiki/playbook/amplitude-event-taxonomy-checklist/what-is-amplitude-event-types)
- [Amplitude 이벤트 이름과 표기법](/wiki/playbook/amplitude-event-taxonomy-checklist/how-to-name-amplitude-events)
- [Amplitude 주요이벤트와 서브이벤트](/wiki/playbook/amplitude-event-taxonomy-checklist/amplitude-key-events-vs-sub-events)
- [Amplitude 이벤트 설계의 세분성](/wiki/playbook/amplitude-event-taxonomy-checklist/how-to-decide-amplitude-event-granularity)
- [Amplitude 속성 이름과 표기법](/wiki/playbook/amplitude-event-taxonomy-checklist/how-to-name-amplitude-properties)
- [Amplitude 속성의 타입](/wiki/playbook/amplitude-event-taxonomy-checklist/how-to-choose-amplitude-property-types)
- [Amplitude의 이벤트와 속성 4계층](/wiki/playbook/amplitude-event-taxonomy-checklist/what-is-amplitude-event-and-properties)
- [Amplitude의 사용자 식별 — Device ID · User ID · Amplitude ID](/wiki/playbook/amplitude-event-taxonomy-checklist/what-is-amplitude-identity)
- [Amplitude Identify call — set·setOnce·add·append·unset](/wiki/playbook/amplitude-event-taxonomy-checklist/how-to-use-amplitude-identify-call)
- [Amplitude Group Analytics — 회사·팀 단위 분석](/wiki/playbook/amplitude-event-taxonomy-checklist/what-is-amplitude-group-analytics)
- [Amplitude 전자상거래 이벤트 구현](/wiki/playbook/amplitude-event-taxonomy-checklist/how-to-implement-amplitude-ecommerce)
