여는 글
2024년 6월 1일 토요일, Microsoft 광화문 오피스에서 개최된 데이터야놀자 2024에 발표자로 참석했습니다.
데이터야놀자는 규모, 저명도, 유익함 등 모든 측면에서 (제가 알기론) 국내 탑티어 데이터 워크샵입니다. 늘 발표 영상을 유투브 채널에 업로드해주시기도 하여, 2년 전쯤부터 출퇴근길에 열심히 시청했던 적도 많은데요. (조만간 제 발표도 업로드해주실 예정)
내향적인 성격 답지 않게 감춰진 무대 체질을 가진 사람으로서 이렇게 큰 규모의 축제에서 발표를 하게 되어 정말 짜릿하기도 했고, 부모님께 효도한답시고 알려드릴 정도로 영광스러운 자리이기도 했습니다.
데놀이 끝난 후 여러 가지 느낀 점들이 여운처럼 여전히 가슴 속을 맴돌고 있는데요. 이 참에 데놀 발표 경험을 포함하여, 데이터에 관한 짧은 생각들을 한 번 정리해보려고 합니다!
발표 후기
저는 스타트업에서 사내 최초의 1인 데이터 분석가로 입사하여, 바닥부터 한 땀 한 땀 시작했습니다. 방향을 판단하기 어려워 눈 앞이 캄캄한 순간들도 많았고, 동시에 흰 도화지에 색칠 공부를 하는 것처럼 상당히 재미있기도 했습니다.
최근에서야 AWS S3의 운영 DB로부터 OLAP 환경이 마련되기 시작하여 애널리틱스 엔지니어링과 데이터 엔지니어링 경험을 쌓고 있지만, 예전에는 오로지 Google Tag Manager와 Google Analytics 4로부터 시작할 수밖에 없었는데요. 하나하나 쌓아가다보니 BigQuery 스트리밍을 시작하게 됐고, 결국 Redash를 통해 사내 대시보드를 완성하기도 했습니다.
BigQuery에 적재되는 GA4 Export 테이블에는 Nested 칼럼 및 Nested Repeated 칼럼 유형들이 존재하는데요. 업무 초창기 시절에 이를 다루는 과정에서 너무나도 헷갈려서 빈 회의실에 혼자 들어가 심각한 표정으로 중얼거리면서, 화이트보드에 구조를 그려가며 간절하게 이해하려고 했던 기억이 아직도 생생합니다.
그 인내의 시간들이 있었기에 이번 발표를 준비할 수 있었는데요. 사실 몇 달 전에 이미 Medium 아티클로 작성한 내용을 다시 한 번 검토하며 더 높은 전달력을 갖추기 위해 내용을 보강한 것입니다. 그렇다고 해서 단순히 청중의 이해를 돕기 위해서만 소비한 시간은 아니었고, 스스로 체득한 것을 더욱 “제 것”으로 만들기 위한 시간이기도 했습니다.
(눈대중으로 대강) 50명 이상의 청중 앞에서 발표를 마친 후, 총 3명의 참여자 분들로부터 질문을 받았습니다. 질문과 답변을 살짝 각색하여 정리하면 다음과 같습니다.
[질문 1] 저희 회사의 경우 소스 테이블에 JSON 형식의 칼럼이 많아 유사한 내용이 많은 발표였습니다. JSON 및 Nested 칼럼을 가공하려면 결국 매번 소스 테이블로부터 쿼리를 실행할 수밖에 없는 것인가요?
- [저의 답변] 그렇지 않습니다. 쿼리 비용과 정합성 관리를 위해 매번 소스 테이블을 직접 바라보는 것을 지양하고, 결국 데이터 웨어하우스를 설계해야 합니다. JSON이나 Nested 칼럼은 대부분 사용자나 이벤트의 속성에 관한 정보일 것 같은데요. 이 경우 소스 테이블로부터 JSON과 Nested 칼럼을 Flatten(평탄화)해주는 Transform 처리를 할 수 있고, 결국 Dimension 테이블로 가공할 수 있습니다. 그런데 JSON과 Nested 칼럼이라면 Cardinality가 상당히 높은 Dimension인 경우가 많을 것인데, 비즈니스 로직에 따라 일부만 취사선택하거나, 혹은 값 자체(예를 들면, 페이지 Full URL이나 IP Address 등)를 Cleansing하는 파이프라인을 추가하여 Cardinality를 줄이는 방법을 고안할 필요도 있을 것입니다.
[질문 2] 질문 1과 동일한 맥락이었으므로 생략
[질문 3] Cross Join
, Left Join
, Select Subquery
등 3개의 쿼리 작성 케이스를 보여주셨는데, 실제 쿼리 비용과 속도는 어떻게 되나요?
- [저의 답변] 사실 그 부분은 제가 100% 확신이 없어 발표 자료에 추가하지는 않았는데요. Query Plan과 실제 Execution Result를 비교해보니 속도, 비용 두 가지 측면에서 의미 있을 정도로 큰 차이는 없었습니다. 쿼리 최적화 이슈의 본질은 대부분
Join
과Subquery
에 존재한다고 생각하는데, Nested Repeated 칼럼을Join
과Subquery
로 다루는 것은 일반적인 이슈와는 다른 것 같습니다. 즉, 이미 메모리 상에 불러온 테이블의 Nested Repeated 칼럼을 평탄화해주는 작업에 불과하기 때문에 다른 테이블을 참조하는Join
과Subquery
에 비해 연산 부담이 적은 것이죠. 제가 이해한 것은 이 정도입니다.
데이터에 대한 잡다한 소고(小考)
#1. 발표란 스스로의 “앎”을 승화시키는 소중한 시간이다.
저는 발표를 정말 좋아하는 편입니다. 표현의 즐거움을 좋아하는 이유도 있지만, “앎”에 대한 철학을 살짝 맛본 계기도 있는데요. 즉, 발표를 통해 다른 분들과 공유하는 즐거움 외에도 스스로의 지혜를 갖춰가는 데 큰 도움이 된다고 믿기 때문입니다.
학부를 졸업한지 오래되어 기억이 희미하지만, 철학 전공 시절 아리스토텔레스의 인식론을 접했을 때 앎의 네 단계를 배운 게 아직도 선명한데요.
- 감각: 현상을 신체의 각 기관으로 받아들인다.
- 기억: 감각이 머리 안에 남는다.
- 경험: 이성(理性)을 통해 기억을 종합하여 다른 영역에 적용한다.
- 지혜: 경험을 통해 자연의 이치를 깨닫는다.
즉, 아리스토텔레스는 앎의 승화 과정을 위 네 가지 단계로 분류하여 최종적으로 지혜 도달 과정을 주장한 것인데요. 타인에게 자신의 “앎”을 설명하기 위해서는 일반화된 규칙이나 구조를 꿰뚫어야 가능하다고 본다면, 발표를 하기 위해서는 결국 앎이 적어도 “경험” 수준에는 도달해야 하지 않을까 생각이 듭니다.
누구나 업무를 통해 수많은 현상에 맞닥뜨려 “감각”과 “기억”을 얻게 되겠지만, 안타깝게도 “경험”과 “지혜” 단계로의 도달은 의식적인 노력 없이 이루어지기 어려운 것 같습니다. 따라서 발표 준비 과정에 스스로를 노출시키면, 의식적인 노력을 행하기가 비교적 쉽고, 결국 진정한 “자신의 것”으로 체득하는 데 큰 도움을 준다고 느낍니다.
결국 저는 정확히 2013년부터 “우선 혼자 공부해보고, 이후 남들 앞에서 표현해보기”라는 나름 고집스러운(?) 원칙을 두고 이를 실천해왔고 이에 따른 성취감도 어마어마한 것 같습니다.
특히 데이터를 다루는 사람이라면 데이터의 구조와 자신의 사고 논리 흐름을 정확하게 이해한 후 이를 표현하는 능력이 대단히 중요한 만큼, 업무 역량 향상에도 알게 모르게 큰 도움이 된다고 믿습니다.
#2. 데이터를 다루는 사람들은 모두 비슷한 고민을 한다.
발표 후 Q&A 시간 동안 다시 한 번 크게 느낀 점이 있습니다. 어떤 기업에 종사하든, 데이터를 다루는 사람들은 모두 비슷한 고민을 한다는 점입니다.
5월 한 달 동안 일과 삶이 바빠 질문 대비는 전혀 못한 상태였는데, 사실 뜸 하나 들이지 않고 편하게 답변을 잘 했습니다. 제가 프로의 레벨 때문에 잘 했다기보다는, 모두 비슷한 고민을 하고 계시기 때문에 답변을 하기가 편했던 이유인 것 같다고 느꼈습니다.
질문을 주신 분들 중에는 제법 큰 기업에 계시는 분도 있었는데, 결국 기업마다 데이터 인프라 스펙과 활용 방법의 차이가 있을 뿐, 고민과 접근 방법의 본질은 결국 일맥상통하는 것 같다는 생각이 더욱 확고해지게 되었습니다.
기업의 사업 현황과 프로덕트 특성에 따라 데이터 팀은 다음과 같은 유형으로 분류될 것 같은데요.
[데이터팀의 기업 내 인게이지먼트가 어느 정도인가?]
- 지원, 리서치 수준에 머무르고 있다.
- 프로덕트팀이나 마케팅팀에 소속되거나 바짝 붙어서 애자일하게 운영된다.
[데이터 활용의 최종 목적이 무엇인가?]
- 프로덕트에 서비스하기 위한 파이프라인을 만든다.
- 내부 의사결정을 위해 활용한다.
그러나 유형을 불문하고 데이터를 다루는 사람이라면 다음 측면에서 추구하는 방향이 본질적으로 동일하지는 않을까 하는 생각이 듭니다.
- 데이터 인프라 비용을 최소화한다.
- 데이터 정합성을 높이려는 노력을 끊임 없이 한다.
- 데이터 활용 가치를 최대한 끌어올린다.
결국 발표 경험을 통해 단순히 실무에 대한 “앎”을 승화시키는 효과 외에도, 저 역시 데이터를 다루는 사람으로서 데이터의 본질과 운영 방향 등 빅픽처를 다시 한 번 머리 안에 새겨놓을 수 있었던 시간이었습니다.
#3. 커뮤니티와 네트워킹은 생각 이상으로 훨씬 좋은 영향을 준다.
이제는 꽤 많은 분들께서 아시는 것처럼, 저는 1년 반 동안 데분생 스터디 커뮤니티를 재미나게 운영하고 있습니다. 그 외에도 몇몇 데이터 커뮤니티에 조용히 참여하거나 혹은 세심히 눈팅(?)하며 데이터 세상의 흐름을 지켜보고 있습니다.
그러나 이번 데이터야놀자 2024 만큼의 대규모 워크샵은 처음 참여해봤고, 데이터에 진심배기인 분들로 엄청나게 북적거린 현장에서 친분 있는 분들, 새롭게 알게 된 분들께 인사를 드리고 이야기를 나누며 깊은 동질감을 느꼈는데요.
다른 분들의 발표를 듣거나 가볍게 스몰톡을 나누며 제가 처한 환경, 성장 방향, 그리고 스스로의 현위치를 객관화하기 굉장히 중요한 환경을 누리고 있다는 생각이 들었습니다. 업무와 개인 공부에 매진하다보면 나만의 세상과 편협한 사고관에 갇힐 위험이 있기 때문에, 커뮤니티와 네트워킹을 게을리하지 않겠다는 다짐을 한 번 더 하게 되었습니다.
특히, 저처럼 회사에서 데이터를 다루는 사람이 자신 밖에 없는 경우, 자신도 모르는 사이에 고지식해지기 쉽고 모르는데 아는 척하기 딱 좋은 환경이므로 성찰의 힘이 발휘되기 어렵다는 잠재적인 문제점도 있을 것입니다. 그러면 결국 회사에 대한 기여도는 낮고 히스토리만 잔뜩 알기만 하는 고인물 되기 딱 좋겠죠.
앞으로도 동일한 목표와 관심사를 가진 분들과 소중한 인연을 맺어가고 있음에 더욱 감사함을 느끼며 가늘지만 길게 지속할 다짐을 하게 됩니다. 자신의 고정관념과 안주하려는 욕망에 끊임 없이 경각심을 주기도 하고, 결국 개인의 성장은 물론이고 팀과 회사에도 긍정적인 영향을 드릴 수 있을테니까요.
맺는 글
저는 덕업일치의 삶을 살고 있습니다. 다소 늦은 나이에 데이터 분석가로 전향했는데, 그만큼 사랑하는 일을 찾기까지 참 긴 시간이 걸렸고 먼 길을 돌아왔습니다. 그래서 애정이 각별한가 봅니다.
사람마다 직업관이 각양각색이지만, 저는 스스로 사랑하는 분야를 업으로 삼아야 하는 성향을 가진 것 같습니다. 28살 쯤 스스로가 데이터라는 것을 사랑한다는 것을 조금씩 알게 되었고, 2020년부터는 회사에서도 집에서도 온통 데이터만 생각하는 버릇(?)이 생기게 되었습니다.
물론 아직 배울 게 많고 더 성장해야 합니다. 그리고 데이터의 본질은 “탐색”이 아니라 “가치 창출”이기 때문에 “탐색” 너머의 시야를 더욱 확장할 수 있어야 할 것입니다.
데이터야놀자 2024에서 발표를 한 경험은 제가 사랑하는 데이터 분야에서 다양한 분들과 조우하고, 동질감을 느끼며 “앎”의 단계를 승화시키기 위한 값진 시간이었습니다. 데이터가 트렌디해서 선택한 것이 아니라 사랑해서 선택한 것인 만큼, 앞으로도 이렇게 덕업일치된 동심의 삶을 계속 살아보겠습니다.😌