마이뮤직테이스트 데이터 엔지니어 김현태님 - Growth&Share
기획 인터뷰 Learning How to Learn(이하 ‘LHL’)은 다양한 직무를 가진 실무자들과의 인터뷰를 통해 실무자들이 실제 사용하고 있는 효과적인 학습 방법을 알아봅니다.
이번 인터뷰의 주인공은 마이뮤직테이스트의 데이터 엔지니어이자 2021년부터 데이터팀의 팀장을 맡고 있는 김현태님입니다. 현태님은 2020년 GCP(Google Cloud Platform)를 처음 사용하기 시작해 지금은 GCP를 이용해 팀이 작업을 하는 환경을 운영/관리하고 각종 데이터 프로덕트를 만들고 있습니다. 현태님이 짧은 시간 GCP를 학습해 능숙하게 사용하기까지의 과정을 알아봤습니다.
*마이뮤직테이스트 데이터팀에 대한 소개는 여기에 -
데이터팀(구 ‘그로스팀’)의 업무 인터뷰
콘서트 티켓 판매량 예측 모델 제작기
현태님은 인터뷰어가 함께 일해본 분들 중 손에 꼽을 정도로 학습 속도가 빠르고, 배운 것을 이용해 멋진 성과를 내시는 분입니다. 옆에서 늘 새로운 걸 뚝딱뚝딱 배워서 바로 활용하시는 모습을 보며 ‘도대체 이 분은 어떻게 학습하시는거지?’라는 궁금증이 들었습니다.
인터뷰를 하면서 아래와 같은 점이 특히 인상적이었습니다.
실무 프로젝트와 같이 내가 배운 것을 바로 적용할 수 있고, 흥미(혹은 책임감)를 가지고 집중할 수 있는 기회를 적극 활용한다.
학습해야 하는 것에 대해 아는 것이 거의 전무할 때에는 본인이나 동료가 알고 있는 유사한 분야를 기반으로 탐색해 나간다.
내가 지금 알고있는 수준에서 만들어낼 수 있는 것을 만들고 그걸 전문가에게 들고가서 전문가라면 어떻게 할지 물어본다.
배우려고 하는 것의 A-Z를 학습하는게 아니라 당장 적용/사용할 수 있는 핵심 기능을 우선 학습한다. 이후 추가 자료를 보며 몰랐던 것을 보충한다.
마이뮤직테이스트의 유일한 데이터 엔지니어라고 알고 있다. 하시는 일이 궁금하다
GCP를 기반으로 팀의 분석 환경 구축 및 운영, 권한관리, 비용 관리와 에러 대응 등에 많은 시간을 쓴다. 동시에 다른 조직의 업무 프로세스 최적화/자동화 지원을 하거나 실무자들이 수동으로 입력하는 데이터를 효율적으로 수집하기 위한 서비스를 만들고 관리하는 등의 업무에 많은 시간을 보낸다.
데이터 엔지니어로서의 실무 외에는 팀장으로서 팀 관리 업무도 병행하고 있다.
넓은 영역의 업무를 담당하고 계신 것 같다. 오늘 인터뷰에서는 현태님의 업무 중 특히 중요도가 높은 업무가 무엇인지 알아보고, 그 업무에 필요한 다양한 지식을 어떻게 학습하셨는지 알아보려고 한다. 본인의 다양한 역할 중 특히 중요한 것을 뽑자면?
GCP 전반을 관리하는 것이다. 데이터팀은 마이뮤직테이스트의 데이터를 모두 빅쿼리에 모아두고 사용한다. 스스로 중요하게 생각하는 역할 중 하나는 빅쿼리에 데이터를 수집, 저장하고 관리하는 것이다. 이를 위해 ETL 툴을 관리하고 최적화하는 것을 시작으로, 모아놓은 데이터를 잘 정돈하고 분석가들이 작업하기 쉽게 별도의 View를 짜두고 데이터 카탈로그를 만든다. GCP 내에 빅쿼리 외에도 GCP에서 제공하는 여러 서비스를 사용하고 있다. 각 서비스를 직접 운영하기도 하고, 서비스에서 발생하는 비용을 확인하고 최적화하는 작업, 데이터에 접근하는 팀원들 및 외부 서비스에 대한 접근 권한 조정, 보안과 유저 개인정보보호를 위한 접속 환경 통제와 개인정보 마스킹, 서비스 토큰이나 패스워드 관리 등의 업무를 한다.
GCP를 언제부터 쓰기 시작했는가?
현태님 : 2019년 하반기에 팀에 빅쿼리를 처음 도입한 것을 시작으로 GCP의 이런저런 서비스를 사용하기 시작했다. 빅쿼리를 도입하기 전까지는 데이터팀의 자체 데이터 웨어하우스가 없었다. 클라우드 서비스도 따로 쓰지 않았다. 팀이 만들어진지 얼마 되지 않은 시점이라 분석 환경까지 갖출 정도로 헤비한 작업을 하고있지 않았다. 개발부서에서 데이터를 넣어주는 데이터 웨어하우스(레드시프트)에 연결한 BI툴에 쿼리를 날려서 데이터에 접근했다. 빅쿼리를 도입하고 그게 계기가 되어 이후 2020년 초에 데이터팀에서 진행한 프로젝트를 위해 GCP의 다른 서비스를 써보기 시작하면서 본격적으로 GCP에 데이터 분석 환경을 구축하기 시작했다.
2020년 초부터 GCP를 본격적으로 사용했다면 지금까지 2년의 시간동안 GCP를 사용했다는건데, 2년만에 회사 데이터팀의 환경을 모두 관리할 정도로 서비스 사용 역량을 갖춘게 놀랍다. 이전에 비슷한 서비스를 사용하다가 넘어온건가?
GCP나 AWS와 같은 클라우드 서비스를 이 때가 처음 써봤다. 빅쿼리와 같은 데이터 웨어하우스 서비스도 이 때 처음 써봤다.
*김현태님은 2018년 말 마이뮤직테이스트 데이터팀의 전신인 그로스팀에 1호 팀원이자 인턴으로 입사했다고 합니다. 입사할 당시에는 프로그래밍 언어는 물론이고 SQL이나 엑셀을 다룰줄도 몰랐다고 합니다.
사실 이 부분을 물어보고싶어서 인터뷰를 요청했다. 배경 지식이나 경험이 거의 없는 상태에서 짧은 시간에 많은걸 배워서 쓰고 있다. 도대체 어떻게 한건가?
처음 빅쿼리를 썼을 때는 우선 콘솔에서 이것저것 눌러봤다. 처음 써보긴 했지만 빅쿼리 콘솔 UI가 쉬워서 뭘 누르면 쿼리를 날리고 데이터를 가져올 수 있는지는 금방 파악이 되었다.
하나씩 써보다가 뭔지 모르겠는 기능은 보통 버튼 옆에 붙어있는 ‘Learn more’를 눌러서 공식 도큐먼트를 읽어봤다. 모든 도큐먼트를 다 본건 아니지만, 보통 모르는 기능이 있어서 도큐먼트에 들어갔을 때에는 그 도큐먼트와, 도큐먼트에서 이어지는 내용이 담긴 도큐먼트까지는 거의 다 봤다. 도큐먼트가 잘 되어있어서 도큐먼트만 잘 봐도 거의 다 사용 가능했고, 이어지는 내용이 있는 도큐먼트들은 봐두면 언젠가 도움이 되었다.
혹시 그 외에 다른 학습 수단은 어떤걸 사용해봤는지? 가령 책이나 강의를 본다던지?
도큐먼트에 안 나오면 구글링을 해본다. 효율적으로 배우는거 좋아해서 웬만해서는 그때그때 필요한 것만 찾아봤다. 강의가 있는줄은 몰랐다.
그럼 빅쿼리 외에 다른 GCP 서비스는 어떻게 익혔나?
그 당시 팀에서 진행하던 프로젝트를 하면서 익혔다. 그전까지 분석가들이 각자 로컬 환경에서 돌리던 티켓 판매량 예측 모델을 클라우드에 올려서 운영할 수 있게 만드는 프로젝트였다(Project Delphi 소개글).
프로젝트 초반에 구글 코리아의 엔지니어분들과 미팅을 가질 기회가 있었는데, 이 때 우리가 필요한 기능을 가지고 나름의 서비스 아키텍처를 짜서 가져갔다. 가서 이런이런 기능이 필요해서 이렇게 만들어볼까 한다고 보여드리니 어떤 기능은 불필요할 것 같고, 어떤 기능은 다른걸 쓰는게 더 좋을 것 같다는 식으로 알려줬다.
다 알아듣지는 못했는데 일단 다 받아 적었다. 돌아와서 하나씩 검색해보면서 사용 방법을 익혀서 써먹었다.
흥미롭다. 아키텍처를 짜서 가져갔다는데 GCP 서비스를 한번도 써보지 않은 상태에서 아키텍처를 짜는게 가능한가? 그리고 구글 엔지니어들과 미팅은 어떻게 잡은건가?
그 당시에 팀 내에 GCP는 써본적이 없지만 AWS를 잘 아는 데이터 엔지니어가 한 분 더 있었다. 이 분의 도움을 받아서 우리가 만들려는 프로덕트에 대한 아키텍처를 AWS의 서비스로 먼저 짜보고, 아키텍처를 구성하는 각각의 AWS 서비스에 대응하는 GCP의 서비스를 검색해서 재구성해봤다.
구글 엔지니어 분들과의 미팅은 이 데이터 엔지니어분이 그 전 해에 구글 클라우드 서밋 행사에 가서 알게된 구글 코리아 엔지니어 분들에게 요청했다. 친절하게도 시간을 내주셨다.
함께 일했던 데이터 엔지니어분의 역할이 꽤 중요했던 것 같다. 그럼 만약 이 동료분이 없었다면 어떤 방식을 써봤을 것 같나?
솔직히 모르겠다. ‘어떤 기능이 존재한다’는 걸 일단 알아야 찾아보고 배울텐데, 이전까지는 GCP나 AWS같은 클라우드 서비스에서 제공하는 기능이 어떤게 있는줄도 몰랐다. 동료 엔지니어분이 AWS 사용 경험을 기반으로 이런 기능도 있다는 사실을 알려준게 큰 도움이 되었다.
그리고 내 경우엔 특정 분야를 배울 때 그 분야에 대한 흥미가 조금이라도 생기게끔 하는 장치가 중요한 것 같다. GCP를 학습할 때에는 팀에서 하려고 하는 프로젝트가 그 역할을 했다. 여기에 서비스 자체는 다르지만 ‘이런 기능을 하는 서비스가 있다’는걸 알려줄 수 있는 동료가 있었다. 관심도(필요성)가 높은 상태에서 학습해야할 방향을 알게되니 그 때부터는 도큐먼트를 파면서 배웠다. 그리고 만들어야하는 프로젝트의 난이도가 지금 아는 것에 비해 터무니없이 어렵지 않은 것도 중요했다.
‘관심 내지는 흥미를 끌 수 있으면서도 내게 적절한 난이도의 프로젝트, 동시에 큰 맥락에서 가이드를 잡아줄 수 있는 사람이나 지식’. 매우 동의한다. 혹시 또 다른 학습 소스는 없나?
구글링을 하다가 좋아보이는 블로그가 있으면 즐겨찾기를 해둔다. 가끔 올라오는 글을 보면서 보통 ‘내가 알고있는 내용에 대해 이 사람은 어떻게 설명하는지’를 확인해본다. 그 과정에서 내가 몰랐던 내용이 있으면 익힌다. 무언가 배울 때 처음에는 큰 뼈대를 익혀뒀다가 이런 류의 컨텐츠를 통해 점차 살을 붙여가면서 실력을 키우는 것 같다.
GCP를 사용하는 것 외에도 구글 앱스스크립트를 이용해 타 팀이 사용하는 툴을 여럿 만들었다고 들었다. 앱스스크립트 배운 과정도 알려줄 수 있나?
GCP와 비슷하게 도큐먼트를 주로 봤다. 그런데 앱스스크립트 같은 경우엔 처음 접했을 때 구글에서 제공하는 퀵스타트 가이드를 봤다. 쉬운 난이도의 토이프로젝트 만드는 과정을 보여주는데, 여기서 앱스스크립트를 이용해서 서비스를 만드는 과정 전체를 확인할 수 있다. ‘어떻게 프로젝트를 생성하고, 스크립트를 짜서 어떻게 작동시키면 어디에 아웃풋이 나온다.’ 같은 전체적인 작동방식을 보는거다. 큰 흐름을 알고난 뒤엔 앱스스크립트 문법을 찾아보면서 이것저것 바꾸고 시도하면서 점점 복잡한 걸 만들었다.
인터뷰를 진행하며 스스로 아쉬웠던 점은, 현태님이 개개별 지식을 학습하신 사례에 대해 충분히 자세히 여쭤보지 못한 것 같다는 점입니다.
저도 모르는 것을 익힐 때 도큐먼트를 종종 보지만 왜 저는 현태님이 말씀하시는 것처럼 ‘도큐먼트만 보면 왠만한 내용은 다 해결된다’가 안 되는지,
구글 엔지니어분들과의 미팅에서는 구체적으로 어떤 내용이 오갔고, 여기서 어떤걸 배우셨는지. 그래서 제가 만약 비슷한 전략을 취해 전문가를 찾아간다면 어떻게 물어보는게 좋을지,
등 실제 현태님이 어떻게 하셨는지 물어볼 필요가 있겠다는 생각이 들었습니다.
다음 인터뷰에서는 적용해봐야겠습니다.
다음 인터뷰는,
- 전 마이리얼트립 사업개발/HR, 현 로컬스티치 CEO Staff
- 요즘 가장 핫한 중고거래 스타트업 프로덕트 디자이너
- 토스 프론트앤드 옵스 개발자
- and more
가 본인의 실제 학습 방법을 공유합니다.