# Amplitude 속성의 타입

Amplitude가 받는 5가지 타입 — string · number · boolean · array · nested object — 의 정의와 ‘어떤 값을 어떤 타입으로 보낼지’의 결정 가이드. GA4는 string/number만 지원하지만 Amplitude는 boolean·array도 native로 지원하는 점을 활용합니다.

- 카테고리: Amplitude 이벤트 택소노미
- 소요 시간: 약 7분
- 난이도: 쉬움
- 업데이트: 2026.06.01
- 원문: /wiki/playbook/amplitude-event-taxonomy-checklist/how-to-choose-amplitude-property-types

## 목차

- [Amplitude가 받는 5가지](#types)
- [string — 분류·이름·코드](#string)
- [number — 계산·정렬용](#number)
- [boolean — 참/거짓](#boolean)
- [array — 여러 값](#array)
- [결정 가이드](#decide)
- [자주 묻는 질문](#faq)

같은 정보라도 어떤 **타입(type)**으로 보내느냐에 따라 Amplitude 차트에서 할 수 있는 분석이 달라집니다. 가격을 문자열로 보내면 합계가 안 나오고, 카테고리를 숫자로 보내면 평균이 엉뚱하게 계산됩니다. 이 글은 Amplitude가 받는 5가지 타입과, ‘어떤 값을 어떤 타입으로’ 정하는 기준을 정리합니다.

## Amplitude가 받는 5가지 타입

GA4는 사실상 **string · number** 두 가지만 지원하지만, Amplitude는 더 풍부합니다 — **string · number · boolean · array**(+ nested object 제한적). 타입 선택을 잘하면 차트 드롭다운의 ‘평균·합계·분포’ 옵션이 자동으로 잘 맞습니다.

| 타입 | 예시 | 차트에서 가능한 것 |
| --- | --- | --- |
| **string** | `"회원가입"`, `"kakao_pay"`, `"C-PSY-101"` | 분류축(Group by), 필터, 분포(Top N) |
| **number** | `89000`, `4.7`, `1` | 합계, 평균, 분포, 정렬, 구간별(bucketing) |
| **boolean** | `true`, `false` | 이진 필터, 분류축(예/아니오) |
| **array** | `["psy", "intro"]`, `[1, 2, 3]` | 각 원소를 분류축으로 펼쳐 보기 |
| nested object | `{name, price}` | 제한적 — 가능하면 평탄화(flatten)해서 별도 속성으로 |

> **팁**
>
> **GA4와의 차이.** GA4는 boolean을 직접 받지 못해 `"true"`/`"false"` 문자열로 보냅니다. Amplitude는 `true`/`false` 그대로 받아 차트에서 이진 필터로 바로 사용할 수 있어요.

## string — 분류·이름·코드

‘이게 무엇인가’를 가리키는 모든 값은 string입니다. 계산하지 않고, 분류하거나 필터하는 데 씁니다.

- 버튼 이름 → `btn_name: "회원가입"`
- 결제 수단 → `payment_type: "kakao_pay"`
- 강좌 코드 → `course_id: "C-PSY-101"`
- 통화 코드 → `currency: "KRW"`

> **주의**
>
> **흔한 실수.** ‘숫자처럼 보이지만 식별자’인 값(주민번호·상품 ID·우편번호·전화번호)을 number로 보내면 안 됩니다. `1234`로 시작하는 상품 ID를 number로 보내면 합계·평균이 계산되어 엉뚱한 ‘평균 상품 ID = 4831.7’ 같은 결과가 나옵니다. **계산할 일이 없는 식별자는 string**.

## number — 계산·정렬용

합계·평균·구간별 분포를 보려는 모든 값은 number입니다. 정수(int)와 소수(float) 둘 다 가능합니다.

- 가격 → `price: 89000`
- 수량 → `quantity: 2`
- 평점 → `rating: 4.7`
- 이용 시간(초) → `duration_seconds: 320`
- 구매 횟수 → `purchase_count: 3`

number의 장점은 **구간별 분포**를 보기 쉽다는 점입니다. 가격이 number라면 ‘0~5만원·5~10만원· 10만원 이상’ 같은 분포를 한 클릭으로 봅니다. string이라면 분포가 ‘89,000원·89,000원·90,000원…’처럼 개별 값으로 흩어집니다.

## boolean — 참/거짓

상태·소유 같은 이진 정보는 boolean이 가장 자연스럽습니다. Amplitude는 `true`/`false`를 그대로 받아 차트에서 이진 필터로 바로 씁니다.

- 로그인 상태 → `is_login: true`
- 프리미엄 회원 → `is_premium: false`
- 쿠폰 보유 → `has_coupon: true`
- 첫 구매 → `is_first_purchase: true`

> **팁**
>
> **이름은 `is_` / `has_` 접두사, 값은 boolean.** 둘이 짝이 되면 ‘이름만 봐도 boolean임이 보이고, 차트 필터도 자동으로 이진’이 됩니다.

## array — 여러 값

한 속성에 여러 값이 들어가야 할 때 array를 씁니다. Amplitude는 array의 각 원소를 분류축으로 펼쳐 볼 수 있습니다.

- 장바구니 상품 카테고리 → `cart_categories: ["psy", "intro"]`
- 선택한 필터 → `filters_applied: ["color:red", "size:m", "in_stock"]`
- 본 동영상 ID 목록 → `watched_video_ids: ["v1", "v2", "v3"]`

array는 GA4에 없는 Amplitude 고유 강점입니다. 예: `cart_categories`가 array면 ‘카테고리별 이벤트 수’를 한 차트로 분석 가능하지만, string으로 보내면(`"psy,intro"`) 카테고리별로 쪼개기가 어렵습니다.

## ‘이걸 어떤 타입으로 보낼까’ 결정 가이드

1. **계산할 일이 있나?** (합계·평균·분포) → 있으면 number, 없으면 string.
2. **참/거짓 하나로 답할 수 있나?** → 있으면 boolean.
3. **한 속성에 여러 값을 담아야 하나?** → 있으면 array.
4. **‘식별자’인가 ‘측정값’인가?** 숫자처럼 보여도 식별자면 string.
5. **여러 정보가 묶여 있는 객체인가?** → 가능하면 *평탄화*해서 별도 속성으로. nested object는 차트 활용이 제한적.

| 의도 | 권장 타입 | 예시 |
| --- | --- | --- |
| 합계·평균을 보고 싶다 | **number** | 가격, 수량, 평점, 이용 시간 |
| ‘무엇’인지를 표시한다 | **string** | 이름, 카테고리, 코드, 통화 |
| 예/아니오로 끊을 수 있다 | **boolean** | 로그인 여부, 프리미엄 회원, 쿠폰 보유 |
| 여러 값을 한 속성에 담고 싶다 | **array** | 장바구니 카테고리, 선택한 필터 |

## 자주 묻는 질문

### 이미 string으로 보내고 있는 가격을 number로 바꾸려면?

과거 데이터는 그대로 string으로 남고, 변경 시점 이후 데이터부터 number로 들어옵니다. 차트에서는 같은 속성에 두 타입이 섞여 있는 기간이 한동안 보일 수 있는데, 분석 기간을 변경 시점 이후로 좁히면 깔끔하게 보입니다.

### Boolean 값을 "Y"/"N" 문자열로 보내도 되나요?

됩니다. GA4와 통일하기 위해 `"Y"`/`"N"` 문자열로 보내는 사이트도 많습니다. Amplitude만 단독 사용한다면 native `true`/`false`가 차트에서 더 편하지만, 중요한 건 **한 사이트 안에서 한 가지로 통일**입니다.

### 전자상거래의 items 배열은 array인가 nested object인가요?

Amplitude의 `items`는 *array of objects*(객체의 배열)입니다. 각 원소는 `{item_id, item_name, price, quantity}` 같은 객체. Amplitude는 array 안 객체의 각 필드를 자동으로 분류축으로 펼쳐 줍니다.

### 타입을 잘못 보낸 데이터는 수정할 수 있나요?

**한 번 적재된 데이터는 수정·삭제가 불가**합니다. 잘못 보낸 기간은 그대로 두고, 변경 시점 이후 데이터를 새 타입으로 받은 뒤 분석 시 기간을 좁히는 방법으로 운영합니다. 그래서 처음 설계 단계에서 타입을 정확히 정하는 것이 중요합니다.

## 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)
