성장에 대한 갈증이 있었던 분들은 이 책들을 참고해주세요.
어느덧 8년째 데이터 분석가로 일하고 있습니다. 시니어라고 하기에는 부끄러운 연차지만, 데이터리안의 데이터 분석 캠프를 포함해 제 교육을 듣고 분석가로 일하고 있는 1년차부터 4년차까지 주니어 분들에게 지금까지 데이터 분석가의 성장에 대해 많은 질문을 받았는데요. 책 추천 글을 쓰기 위해 제가 많이 받았던 질문 또 스스로에게 했던 질문이 뭐가 있을까 기억을 되살려 봤습니다. 대략 이런 질문들이 떠오르네요.
“쿼리가 너무 느려서 하루가 지나도 실행이 안 끝나요. 이러다가 보고서를 제 때 못 쓸 것 같은데, 더 빠르게 동작하는 쿼리로 수정하려면 어떻게 해야해요?”
“테이블 구조와 데이터가 엉망이라 분석하기가 어려워요. 차라리 내가 설계할 수 있으면 좋겠어요.”
“C 레벨들의 의사결정을 이해하기 어려워요.” “조직에 큰 임팩트를 줄 수 있는 분석을 하고 싶어요.”
“제가 매니저가 됐어요. 앞으로 팀원들과 어떻게 일해야 할까요?”
정리해보면, 위 질문들은 SQL 성능 최적화(SQL 튜닝), 데이터 모델링, 비즈니스 전략, 팀 문화에 대한 질문입니다. 각 주제별로 책을 추천해볼게요. 주니어 데이터 분석가로 일하면서 성장에 대한 갈증이 있었던 분들은 아래 책들을 참고해주세요.
시니어 데이터 분석가라면, 단순히 SQL 문법을 정확하고 에러를 내지 않고 쓰는 것에서 넘어서, 더 효율적으로 작동하는 쿼리는 어떻게 쓸 수 있을지 고민할 수 있어야 합니다. 쿼리 최적화는 보통 트랜젝션이 굉장히 많은 서비스를 만드는 백엔드 엔지니어 혹은 DBA 의 영역이라고 많이 생각합니다. 하지만, 사용자의 페이지뷰, 클릭 등 로그 데이터를 해상도 높게 저장하고 분석에 활용하기 시작하면서 데이터 분석가도 효율적인 쿼리를 작성할 필요가 점점 늘어나고 있습니다.
책에서도 이런 얘기를 하고 있습니다.
최근에는 데이터베이스가 다루는 데이터양이 굉장히 많아졌습니다. 그래서 ‘빅데이터’라는 용어도 IT 업계를 넘어 비 IT 사람들에게까지 퍼졌습니다. 데이터양이 많아지면서 데이터베이스의 성능에 대한 요구도 많아지고 있습니다. 그런데 데이터베이스 성능을 이해하려면, SQL 뿐만 아니라 데이터베이스 내부 아키텍처와 저장소 같은 하드웨어 특성을 고려해야 합니다. 어떤 SQL이 빠르고 왜 그러한 결과가 나오는지, 왜 다른 SQL은 느린지를 이해하려면 블랙박스의 뚜껑을 열어 안을 들여다봐야 합니다. 이 책은 뚜껑을 열고 실행 계획을 들여다봄으로써 블랙박스를 화이트박스로 만드는 것이 목적입니다.
쿼리가 너무 느려서 실행을 돌려놓고 퇴근한 적이 있지 않나요? 아침에 출근해서 확인할 때 쿼리가 성공적으로 동작했다면 다행이지만, 실패했다면 어떨까요? 급하게 데이터를 추출해서 보고해야 하는데 세월아 네월아 돌고있는 쿼리를 보면서 팔짝 뛰어 본 적 있지 않나요? 효율적으로 작성한 쿼리는 하루 종일을 걸려서 추출해야 하는 데이터를 단 몇 분 만에 찾아주기도 합니다.
특히 데이터의 규모가 큰 회사에서 일하고 있다면(또는 일해보고 싶다면) SQL 성능 최적화에 관심을 가지고 공부해나가시는 게 업무에 많은 도움이 될 겁니다.
궁극적인 SQL 성능 튜닝은 데이터 모델링이라는 얘기가 있죠. 데이터 모델 자체가 잘 설계되어있다면 데이터를 빠르고 효율적으로 꺼내오는 것도 쉬워집니다. ‘그거는 백엔드 엔지니어나, 데이터 엔지니어의 일이야’라고 얘기할 수도 있겠지만, 데이터 분석가가 편하게 분석을 하기 위해서는 모델링에 기여하고 또 기존 모델링을 잘 이해할 수 있어야 합니다.
사실 이 글을 쓰는 어제도, 잘못된 데이터 설계 때문에 분석에 어려움을 겪고 있는 상황을 보았습니다. 정규화 되어있지 않은 JSON 데이터를 Array에 때려넣은 데이터(사실 이 정도는 흔합니다.)를 String 타입으로 저장한(여기부터는 데이터 분석가를 고문하기 위해 만든 데이터라고 봐야하죠.) 걸 분해해서 분석해야 한다고 하더라구요. 데이터 분석가가 이 테이블을 설계하는데 참여했다면 이런 참사는 일어나지 않았을 겁니다.
[{"ts":1403781896,"id":14,"log":"show"},{"ts":1403781896,"id":14,"log":"start"}]
JSON 데이터를 Array에 넣어놓으면 이렇게 생겼습니다
또 주니어라면 서비스 운영을 위한 데이터와, 분석을 위한 데이터가 다르게 설계되어야 한다는 개념도 생소할 것이라고 생각합니다. 작은 데이터 규모라면 이렇게까지는 필요하지 않지만, 큰 규모의 데이터를 다루는 조직에서는 서비스 운영을 위한 OLTP(On-Line Transaction Processing)와 분석을 위한 OLAP(On-Line Analytical Processing)의 영역을 구분해서 생각하는 것이 좋습니다.
책에서는 이렇게 말합니다.
OLTP와 OLAP는 근본적으로 목적이 다르므로 각각을 위한 데이터 모델링 역시 다르게 접근해야 한다. OLTP는 정규화를 중심으로, OLAP는 분석, 집계의 관점, 디멘션을 중심으로 모델링해야 한다. OLAP 영역은 리포팅 도구, 다차원 분석 도구, 각종 애플리케이션, 혹은 BI 사용자와 같은 데이터 소비자가 조회와 분석을 잘할 수 있도록 데이터를 정제해서 저장하는 곳이어야 한다. 따라서 OLAP 영역 설계는 데이터 소비자에 맞춰져야 하며, 이는 어떤 기준과 경로(직접 쿼리 포함)로 접근하고 분석해도 일정 수준의 성능을 보장해야 함을 의미한다. 따라서 OLAP의 데이터 모델은 OLTP 데이터 모델보다 정규화가 덜 된 형태일 수 있으니, BI의 초보 설계자들은 OLAP의 반정규화demormalization 된 모델을 정규화하고 싶은 유혹을 뿌리쳐야 한다.
데이터 분석가가 데이터 모델링에 대해서 생각하는 건, 마치 좋은 요리사가 원재료에 대해 고민하는 것과 비슷하다고 생각합니다. 좋은 재료(데이터)에서 출발해야 건강하고 맛있는 음식(분석)을 만들어낼 수 있으니까요. 데이터 모델링은 이론도 중요하지만 경험적으로 느는 것이 많은 분야입니다. 짧은 시간에 성과를 볼 수는 없겠지만 이 주제에도 꾸준히 관심을 가져주셨으면 좋겠습니다.
저는 앞의 두 가지 주제였던 SQL 성능 최적화, 데이터 모델링이 뒤의 두 가지 주제인 비즈니스 전략, 팀 문화보다 쉽다고 생각합니다. 앞에 두 가지는 그래도 어느 정도 정답이 있는 영역인데 뒤의 두 가지는 아니기 때문이에요. 그래서 하나의 책을 추천하려고 하니 고민이 깊어지더라구요. 하나의 책을 추천하는 대신 제가 최근에 감명깊게 읽은 두 권의 전략서를 소개하겠습니다.
이 중 어떤 이야기가 여러분의 마음에 와닿을지 궁금합니다.
이 책은 월간 데이터리안 세미나 8월에 강연해주신 Skrr 김현준 대표님이 추천해주셔서 읽어보게 됐습니다. 8월 세미나에서 “앱스토어 2위 달성한 앱 Skrr, MVP 가설검증 시 데이터를 활용한 방법”라는 강연을 할 때 XYZ 가설 검증 방법을 소개해주셨는데 그게 참 인상적이었어요.
XYZ 가설이란 ‘이 제품은 적어도 X%의 Y는 Z할 것이다’라는 구체적이고 검증 가능한 형태의 가설을 만들어 아이디어의 시장성을 검증하는 방법인데요. Skrr에서는 ‘적어도 50%의 Skrr에 대해 3번 이상 접하거나 들은 한국디지털미디어고등학교 학생은 랜딩 페이지를 통해 카카오톡 사전예약을 할 것이다’라는 가설을 가지고 테스트를 진행했다고 합니다. Skrr의 가설 검증에 대한 더 자세한 이야기는 인프런에서 판매하고 있는 8월 세미나 다시보기, 또는 출시 3일만에 카카오톡을 제치고 앱스토어 2위를 달성한 사이드 프로젝트를 통해서 보실 수 있습니다.
이 책은 마치 뼈를 때리고 머리를 쓰다듬는 것 같습니다. 뼈를 때리는 부분을 놓아두고 책 소개를 마칩니다. 책을 읽다보면 저자가 머리를 쓰다듬어 줄 때도 올 겁니다.
여러 결과 중에서 확률이 가장 높은 것은 ‘실패’다 이 문장을 첫 번째 팩트라고 생각하라. (중략) 어떤 아이디어든 결국에 가면 실패할 확률이 가장 높다고 생각해야 한다. (중략) 유능하게 실행해도 마찬가지다.
많은 조직이 ‘스스로 통제할 수 없는 일’에 매달리고 있다는 사실을 이 책을 보고 깨달았어요. 혹시 회의 중간에 ‘이건 아닌 것 같은데…’ 싶은데도 이걸 명확하게 설명 방법이 없고… 명치가 답답한 기분 혹시 느껴보셨나요? 그런 나에게 설명할 수 있는 언어를 주는 책을 만나면 정말 속이 뻥 뚫리듯 시원한데요. 저에게 이 책은 그런 책이었습니다.
마침 컨설팅을 하고 있는 회사와도 중요 지표에 대해 이야기하고 있는 중이었어요. 그 조직도 매출을 가장 중요한 지표라고 생각하고 있었습니다. 하지만 매출은 그 앞에 있는 모든 일들이 잘 되었을 때 따라오는 과실 같은 것이지, 우리가 그 지표를 보고 행동할 수 있는 건 많지 않습니다.
책에서는 이렇게 말합니다. 여기에서 ‘주가’를 ‘매출’로 바꾸어 읽어도 무방합니다.
‘아마존에서 주가는 아웃풋 지표’라는 것이다. 일반적으로 CEO나 기업들에 아웃풋 지표를 직접 통제할 힘은 없다. 진짜 중요한 것은 주가와 같은 아웃풋 지표에 결과적으로 영향을 미치는 ‘통제 가능한 인풋 지표’와 ‘직접 통제할 수 있는 활동에 초점을 맞추는 일’이다.
기업들은 너무나 자주 잘못된 신호에 주의를 기울인다. 게다가 데이터가 넘쳐난다고 느끼면서도 핵심 비즈니스 트렌드를 꿰뚫어 보는 능력이 부족하다.
이외에도, 사업 전략을 고민하는 사람이라면 한 번쯤 들어봤을 ‘아마존 플라이휠’ 등 유용한 사고의 프레임워크를 다루는 책입니다.
마지막 주제는 팀 문화입니다. 제가 생각하기에 저 혼자 잘난 사람은 시니어라고 부르기에 좀 애매합니다. 물론 IC(Individual Contributor)로 성장했고 그걸 원하는 사람도 있겠지만, 매니저와 비교하여 리더십과 같은 매니징 능력이 덜 필요하다는 것이지 독불장군처럼 일해서는 낼 수 있는 성과의 한계가 분명히 있습니다. 그래서 팀 문화에 대한 내용도 이 책 추천 리스트에 넣어야겠다고 생각했습니다.
이 책은 저희 팀의 독서 벌레이자, 멋진 개발자이자, 개성있는 디자이너인 예은님께 추천을 받았어요.
가장 인상적이었던 부분을 공유합니다.
실수 예방 문화에서는 실수를 한 사람을 비난하고, 처벌하고, 따라서 실수를 감추고 그에 대해 논의하기 꺼리며 문제가 생겼을 때 협력도 덜하게 됩니다. 실수에서 배우지 못하겠지요. 반대로 실수 관리 문화에서는 실수가 나쁜 결과를 내기 전에 빨리 회복하도록 돕고, 실수를 공개하고, 실수에 대해 서로 이야기하고 거기에서 배우는 분위기가 생깁니다. 이 부분이 굉장히 중요합니다. 실수 연구의 역사를 보면, 초기에는 기술적인 부분만 보다가 그 다음에는 인간적인 부분, 이제는 문화적인 부분을 이야기합니다. 심리적 안전감이라고 하는 것이 이 문화의 일부입니다. (중략) 그런데 “이런 실수 관리 문화가 회사에 정말 도움이 될까?”하는 의문을 가질 수 있습니다. 여기에 대해서 연구가 있습니다. 우선 회사 문화가 실수 예방보다 관리에 가까울수록 그 기업의 혁신 정도가 더 높습니다. 그리고 실수 관리 문화일수록 회사의 수익성(총자산이익률로 계산)이 더 높습니다. 왜 이런 현상이 나타날까요? 이유는 간단합니다. 실수가 없으면 학습하지 못합니다(고로 직원들에게 실수하지 말라고 하는 조직은 학습하지 말라고 지시하는 것과 같습니다).
실수를 예방하는 문화를 가진 팀에서 일해본 경험이 있습니다. 이 팀에서는 아무도 회의에서 중요한 이야기를 하지 않습니다. 정말 중요한 얘기는 믿을 수 있는 사람들이 있는 사석에서만 오가더군요.
여러분의 팀은 어떤가요. 실수를 원천적으로 예방하고 싶어하는 문화를 가지고 있나요? 아니면 실수를 관리하고 실수를 통해 배우는 문화를 가지고 있나요? 여러분은 어떤 팀을 만들고 싶은가요?
이 글이 주니어 데이터 분석가에서 시니어 데이터 분석가로, Next Level로 진화하는데 도움이 되었으면 좋겠습니다! 이 글을 읽고 혹시 저에게 추천해주고 싶은 책이 생각났다면 sunmi@datarian.io로 메일 보내주세요
BGM: aespa 에스파 'Next Level'
I’m on the Next Level
절대적 룰을 지켜
내 손을 놓지 말아
결속은 나의 무기
광야로 걸어가
알아 네 home ground
위협에 맞서서
제껴라 제껴라 제껴라
SQL 문법은 알지만 RFM, 퍼널분석, 리텐션 분석은 조금 어려우신가요?
카카오, 쿠팡, 리디, 잡플래닛 출신 현업 데이터 분석가들이
SQL 문법부터 RFM 분석, 매출 분석, 코호트 분석, 퍼널 분석, 리텐션 분석 하는 법까지 알려드릴게요.
쉽고 재미있게, 실무에서 바로 사용할 수 있는 SQL 스킬을 8주 만에 마스터하고
SQL 실력을 업그레이드 해보세요.