1. 서론
- 재화나 서비스를 판매하는 기업은 판매 채널을 가지고 있다. 자사채널, 메타서치, 메타부킹 등으로 나뉘지만 본질적으로 마케팅 관점에서는 display, click이 일어나는 공간이고, customer의 입장에서는 view, click, book(purchase)를 하는 곳이다.
- IT에서 대부분 이런 행위는 API나 EDI 등으로 연결된 Data Pipeline에 의해 일어난다. 결국 Request - Response 구조다.
- 문제는 Request - Response / View - Click - Book 사이에 일어나는 데이터 액션이 1:N 또는 1:N:N 같은 형태로 일어난다는 점이다.
- 심지어 각 scope에서도 semantic normalization → label unification → aggregation 과정이 필요하다. (결과적으로 Response는 같은데 Request 조건이 다름. 가령 항공권을 검색할 때, ICN-NRT나 SEL-NRT는 같은 Response)
2. 본론
a. 1:1로 정보를 degrade 시키는 경우
- 1:N으로 일어난다고 하더라도 Business 요구사항에서는 직관적인 1:1을 선호한다. 결국 big data로는 큰 흐름을 보고자 하기 때문이다. 직관적이라 의사결정자에게 어필하기 쉽다는 것도 큰 장점이다.
- 1:1로 정보를 degrade 시킬 때 가장 좋은 방법은 request에 있는 요청 정보들 중 키값을 조합해 대표성을 띠는 유니크 키로 만드는 것이다. 가령 채널 + 검색어 + 검색(필터)조건 등이다.
- 1:1로 만들기 때문에 다른 어떤 케이스보다 semantic normalization → label unification → aggregation가 중요하다. 특히 TOP N 같은 metric을 본다면 필수다.
b. 1:N으로 붙이는 경우
- 1:N으로 붙이면 raw data를 그대로 밀어넣기 때문에 ETL 과정은 편할 수 있다. ETL 관점에서는 capacity가 거의 유일한 관리 point이다.
- 데이터 사용자 기준에서는 관계를 1:N으로 만드는 dimension을 꼭 모두 넣어서 분석해야 한다. 그렇지 않으면 request의 metric들이 중복으로 계산되기 때문이다.
- 다만 중복으로 계산하더라도 정확한 지표가 아닌 Volume index로 보고 상대적 크기 지표로 활용한다면 괜찮을 수도 있다. 가령 N에 해당하는 것도 넓게 생각하면 display 되는 scope으로서 가중치를 부여할 수 있기 때문이다. (더 포괄적인 검색어에 대해 더 높은 가중치 부여해 business 의사 결정)
- 특히 데이터가 복잡한 경우 고의로 request to book(purchase)을 만드는 게 더 직관적일 수 있다. 그래도 분석 기간은 단기로 잡는 게 좋다. 보통은 시장의 시즌이 존재하기 때문이다.
- 1:N:N도 필요하다면 확대해서 쪼개고 컨셉마다 dataset을 만드는 것이 좋을 수 있다. 위에 설명한 것 같이 기간은 되도록 너무 길지 않게, dimension 생략에 따른 부작용을 잘 이해해야 한다.
c. N:N으로 붙여야 하는 경우
- 아무리봐도 N:N으로 느껴진다면 semantic normalization → label unification → aggregation 과정을 거치지 않았거나, 응답간의 교집합이 자주 존재하는 경우다. 최근에는 AI를 통해 semantic normalization이 가능한 영역이 더 넓어졌다고는 하지만, 분명히 다르게 봐야 되는 케이스들이 존재한다.
- 가령 검색에서 제주 놀거리, 제주 여행, 제주 투어, 제주 액티비티를 검색한다고 하면, 어떤 것들을 같은 것으로 묶고 어떤 것은 다른 것으로 묶을지 쉽게 판단하기 어렵다. request의 intent를 통일시킬 수 있는 정보가 부족하기 때문이다.
- 그래서 이런 데이터는 큰 topic 단위로 세분화시켜 다양한 dataset의 컨셉을 만들어야 한다. 사업이 상대적으로 영세하고 검색데이터가 크지 않다면, 이런 분석은 후순위로 밀어두는 것이 더 낫다. 반대로 사업 규모가 크다면 기획실로부터 다양한 컨셉들이 나와 각 사업부서의 대시보드가 꾸려져야 한다.
- 대부분은 좀 더 실무자에게 적합한 대시보드일 가능성이 높다. 위로 report 된다면, 보통은 trend 추적을 위해서이며 영역별 TOP N개가 선택된다.
3. 결론
- 거의 대부분의 마케팅 조직, 기획 조직에서 활용하는 데이터기 때문에, ETL을 주로 하는 포지션일지라도 도메인에서 무엇을 쪼개어 분석하고자 하는가에 관심을 가져야 이런 설계를 진행할 수 있다.
- 특히 이 고민은 최소한 datalake에서 BI로 넘어가는 상황에서 필수적으로 해야 한다. 이 컨셉을 각각 따로 잡고 설계하고 데이터 사용자에게 설명해주지 않으면, 도메인 유저들은 데이터를 불신하기 시작한다. 데이터 불신이 장기화 되면 데이터 없는 의사결정 습관이 생기게 되고, 직관으로 의사결정하는 것을 '경험'이라고 포장하는 문화가 만들어 진다. 데이터를 근거로 들지 않는 '경험'은 그 규모가 커질수록 위험하다. 그것이 장기화 되면 조직을 무너뜨리는 레거시가 된다.
'ETL 관련' 카테고리의 다른 글
실무에서 자주 만나는 multi dimension 데이터 결합과 dataset 가이드 (0) | 2025.06.13 |
---|---|
Druid Spec 관련 정리 (0) | 2025.05.30 |
Kafka Consumer입장 사용 경험 정리 (0) | 2025.05.07 |
데이터 파이프라인에서 최적화라는 함정 (0) | 2025.03.05 |
S3 업로드 방식 비교 (0) | 2025.03.05 |