머신러닝 엔지니어의 2019년 회고



2019년 월별 정리

  • 2019년을 되돌아보니 “성장하는 서비스에서 다양한 업무를 빠르게 진행했고, 머신러닝이 아닌 최적화(Constraint Programming 등)라는 도구에 대해 알아간 해, 매니저 역량을 확인하고 팀원들의 성장을 고민한 해”라고 정의할 수 있을 것 같습니다
  • 쏘카에 입사하고 본격적으로 일을 진행한 1년이였고(2018년엔 9월 입사라 준비 단계 정도라 생각하고..) 너무 빠르게 변하는 상황에서 나름 잘 적응하며 지냈습니다
  • 월별 정리는 키워드 위주로 작성하겠습니다




1월

  • 학습
    • 시뮬레이터 개발
    • 시계열 수요 예측 및 Serving 프로토타입 개발
    • AWS Lambda와 Terraform을 사용한 API 개발
    • Hashing을 사용한 AB Test Split
  • 정서적 안정감
    • 정서를 느낄 시간 없이 빠르게 지나감. 정서적 안정감 좋음
  • 기타
    • 일기장을 보니 책을 쓰려는 생각이 있어 여러 출판사를 만나고 다님
      • I Want to Study Data Science 글을 작성한 후, 출판사에게 많은 연락을 받음
      • 정작 회사 일이 바빠서 쓰진 않았지만, 컨텐츠에 대해 고민해본 시기(과연 내 책이 팔릴까? 등)
    • 딥모닝 : PR12(아침에 PR12 영상 1개씩 매일 보는 모임)을 웅원이와 만들고 진행함. 아침에 성실하게 살기 위한 노력이였음




2월

  • 학습
    • 일 잘하시는 팀원분이 최적화 개념을 알려주셔서 그 쪽을 주로 공부함(Mixed Integer Programming, Constraint Programming, Google OR-tools)
    • 지리 데이터를 파악해야 해서 QGIS나 SHP 파일 다루는 쪽도 공부 시작
    • 2월 말에 팀 개편으로 두 팀의 팀장이 됨
      • 데이터 사이언스팀 + 타다데이터팀
    • 데이터 그룹에선 3개월 수습 기간에 발표를 통해 정규직 전환이 결정되는데, 이 정규직 전환을 잘할 수 있도록 + 수습 발표 전 스트레스를 케어하기 위해 “멘탈 붕괴 방지 위원회”를 만들어 수습 발표 전에 사전 발표 및 피드백을 진행함 => 여태까지 계속 진행 중
  • 정서적 안정감
    • 2월 말에 너무 피곤하고 뭔가 번아웃 위기가 온 것 같아 고민해보니, 책 집필을 해보려고 초안 작성하는 시간에 스트레스를 너무 받음
      • 블로그에 글 작성하는 것과 책은 정말 큰 차이가 있다는 것을 깨닫고, 시간적 여유가 생기면 책을 쓰기로 하고 잠정 중단
  • 기타
    • AutoML 도구인 데이터로봇을 사용할 기회가 생겨서 많이 사용해보니, Tabular 데이터의 AutoML은 조만간 빠르게 대중화될 수 있다고 생각
    • 패스트캠퍼스 시계열 예측 강의를 수강하며 전통적인 시계열 예측 방법론에 대해 익힘
    • GDG Campus에서 진행한 Daily 만년 Junior들의 이야기 - 델리만주에서 데이터 사이언스 입문에 대해 발표함




3월

  • 학습
    • TF가 아닌 팀이 되었고, 팀장 역할에 대한 고민
      • 팀장이 개인 성과를 내야하는걸까? 팀의 성과가 잘 나오도록 하면 되는게 아닐까?
      • 팀원과 경쟁하지 말자, 팀원을 포용하자(내가 항상 옳진 않고 상대방의 의견이 맞을 수 있다. 왜 그렇게 생각하는지 맥락을 듣자)
      • 성과를 가로채는 그런 느낌의 팀장이 되지 말자(해당 팀원이 진행한 일을 윗분에게 잘 어필하고, 인정받을 수 있도록 돕자)
    • 팀 정기 회고를 진행해서 팀 운영 방식이나 개선할 수 있는 포인트를 찾아 계속 개선했음
    • GCP의 Composer(Airflow의 managed service)를 사용해 머신러닝 파이프라인 구축
    • 시계열 데이터를 프러덕션할 때 주의할 점에 대한 깨달음
    • 데이터 그룹의 학습하는 문화를 만들기 위해 파이썬 머신러닝 완벽 가이드 기반 스터디를 만듬
      • Github에 자세히 적어놨지만, 간단히 작성하면 누가 공부해와서 발표하는 방식이 아닌 일과 시간에 같이 모여서 책 읽고 토론하는 시간.
      • 이 스터디는 데이터 분석에 대해서만 알고, 머신러닝에 대해선 잘 모르는 분들을 빠르게 베이스라인을 끌어올리기 위해 진행함
      • 5월 말까지 꾸준히 진행했음
  • 정서적 안정감
    • 개인 업무에 집중하다가 공식적으로 팀장 역할을 하며 역할에 대해 고민한 시간이 많음. 이 시간이 정서적 안정감에 영향을 준 것은 아니지만 자신에 대한 방향성을 고민하게 해줌
  • 기타
    • 지인분들과 함께 딥놀 유튜브 시작! 혼자 하면 안할 확률이 컸는데, 함께해서 시너지나는 모임
    • 마이크로소프트웨어 396호에 글쓰는 개발자 모임 - 글또 관련 내용을 기고. 잡지에 글을 써보는 경험도 처음이라 재미있었지만, 그만큼 신경을 더 써야해서 살짝 스트레스도 있었음
    • Write The Docs Seoul에서 글쓰는 개발자 모임, 글또의 주제로 발표함




4월

  • 학습
    • Uber의 H3, Kepler.gl에 대해 깊게 알아보고, 블로그 글도 작성함
    • 메타휴리스틱 방법론이 신기해서, Genetic Algorithm에 대해 공부하고 적용하려 했으나, Constraint Programming이 더 효율적이라 판단해 적용하진 않음
    • VCNC 데이터팀에 새로 입사하신 분이 계셔서, 케어하다보니 거의 3팀의 매니저 같은 역할을 함
    • Airflow를 사용해 로그를 BigQuery로 보내는 파이프라인
    • Interpretable Machine Learning에 대해 공부함
  • 정서적 안정감
    • 두 팀의 팀장 + 채용 등의 업무가 추가되서 정말 정신없었음. 하루에 기본 미팅(Daily)가 2개니 그냥 미팅 미팅의 연속
    • 정서적 안정감이 하락하고 있는 것이 팀장 겸직인 것 같아 4월 말에 하나의 팀만 집중하는 것이 좋을 것 같다고 그룹장님에게 말씀드림. 그 결과 5월까진 천천히 차기 팀장님에게 인수인계+서포트 하고 6월부터 완전히 하나의 팀만 맡기로
  • 기타




5월

  • 학습
    • 데이터사이언스팀의 팀장님에게 인수인계하고, 5월엔 잘 운영될 수 있도록 서포트를 함. 남은 시간엔 빠르게 성장하고 있는 타다에 집중함
    • 모빌리티에선 어떤 종류의 문제를 푸는지, 어떤 논문이 있는지 한번쯤 정리하면 좋을 것 같아 Awesome Mobility Machine Learning Contents에 정리함
    • 앞선 시기에 진행한 업무들을 더 잘 & 깊게 하도록 진행함
    • 쏘카에 GIS 장인이신 신수현님이 데이터 분석한 것을 듣고 “지리 데이터에 기반한 분석도 새롭고 신선하다”고 생각함
    • 날씨 데이터를 수집하기 위해 공공 데이터 부분을 자세하게 파악함
    • Serving을 어떻게 효율적으로 할까 고민하다 Kubeflow를 테스트해봄
      • 아직 버전이 낮지만 추후엔 꽤 유용해질 것 같다는 생각을 함
      • 다만 사용하기 위해 구성원들이 모두 Docker에 대해 잘 알고, 모델을 엄청 적극적으로 활용해야 유용할 것 같단 생각을 함
    • 서버 코드를 읽기 위해 코틀린을 살짝 공부함
  • 정서적 안정감
    • 팀장 겸직이 해제되서 심리적으로 안정감이 다시 올라감. 여러 업무를 할 수 있어도, 그래도 하나의 집중하는 편이 좋다고 생각함
  • 기타
    • 웅원이와 함께 스타트업 머신러닝 플레이어(스머플) 모임을 만들어 진행함. 주로 스타트업에서 ML을 적용할 때 이슈, 채용은 어떻게 할까? 등에 대해 논의함
    • 웅원이가 있는 당근마켓에 가서 BigQuery의 모든 것을 발표하고 옴. 271쪽을 3시간만에 끝내려는건 역시 무리였으나! 핵심은 다 전달하고 옴
      • 해당 자료는 19년 12월 기준 조회수 11,000회 정도




6월

  • 학습
    • GCP에서 Instance Template을 활용해 인스턴스를 다량으로 생성하고 실행하는 쉘 스크립트 작성
    • 당근마켓에서 발표한 내용을 기반으로 사내에서 BigQuery 강의함
      • 지역 사업팀도 계셔서 온라인으로 라이브 방송을 진행함
      • 쏘카엔 데이터 그룹 제외하고도 80명이 넘는 분들이 이미 SQL을 날리고 있는데, 수준의 편차가 너무 심해서 발표를 아주 쉬운 단계(거의 엑셀 기초부터..?) vs 고급 단계로 나눠서 해야될 것 같다고 느낌 => 이 부분은.. 그 이후 바빠서 못했지만 내년엔 더 진행을..!
    • 머신러닝 엔지니어링엔 TDD가 자주 사용되지 않지만, Test Code를 작성하도록 방식을 만듬
    • 팀내 코드 리뷰를 도입해 코드도 나름 빡세게 리뷰함
    • BigQuery GIS에 좌표 데이터를 넣는데 자꾸 오류가 나서 끝없이 디버깅해보니 “좌표계”에 대한 개념이 중요한 것을 깨달음
  • 정서적 안정감
    • 딱히 문제 없음
  • 기타
    • 한빛미디어가 주최한 데브그라운드에서 Mobility X Data : 모빌리티 산업의 도전 과제에 대해 발표함
      • 사람들이 모빌리티 데이터에 흥미를 가질 수 있도록, 카쉐어링과 라이드헤일링에서 겪는 문제에 대해 말함
    • 글또 3기 모집을 시작했는데, 지원자가 거의 80명이였음




7월

  • 학습
    • MLOps에 매우 관심이 커져서 공부함. 일단 실험을 위한 플랫폼인 Sacred에 대해 깊게 공부하고 글 작성함
    • 회사 업무에 몰입해서 진짜 정신없이 7월 삭제됨
    • 상반기 회고 결과 업무를 약간 천천히 한 것 같기도..? 란 생각에 7월엔 셀프 관리를 더 잘 진행함
    • 6월에 한빛미디어에서 발표하고, 끝나니 바로 DSTS에서 발표해야 해서 시간이 적었지만 업무와 발표 준비 시간을 잘 분배했음(하지만 마감에 벼락치기가 최고)
  • 정서적 안정감
    • 딱히 문제 없음
  • 기타




8월

  • 학습
    • 개발 업무를 했고, 실서비스에 적용되는 것들을 만들었음
      • 장애가 전혀 나지 않도록 설계하고, 혹시 최악의 경우를 방지할 부분도 미리 대비함
    • 서비큐라님의 쿠버네티스 교육을 듣고 왔는데, 쿠버네티스를 더 잘 이해할 수 있게됨
    • 채용 행사에 데이터 직군 상담하기 위해 서울대, 고려대 등을 돌아다님. 많은 분들과 이야기했음(참고로 쏘카 전문연 가능한 기업!)
    • 신입/인턴 면담
      • 그로스해커스와 쏘카가 프로젝트를 같이 하게되서 풀타임 인턴과 프로젝트 하시는 분들이 계셨는데, 이분들을 위해 어떤 것을 해볼까 고민하다 모두 만나뵙고 커리어에 대한 이야기를 나눔
  • 정서적 안정감
    • 딱히 문제 없음
  • 기타




9월

  • 학습
    • 카이스트에 채용 행사 참여. 카이스트 공부하기 정말 좋아보임
    • 첫 미국 출장. Oreilly Strata New York에 다녀옴
    • 차량 하드웨어는 어떤 방식으로 통신하는지 알게 됨
    • 쏘카 테크 블로그를 만들고, 이 블로그를 운영하는 역할을 CTO님에게 받음. 아직 초반기지만 작성한 글을 리뷰하는 시스템을 구축함
  • 정서적 안정감
    • 작성할 순 없지만 요청 업무가 매우 많아져서(=비즈니스가 엄청 성장하고 있기 때문에) 그 부분을 쳐내는데 시간을 많이 사용함. 팀원들은 본래 집중할 Task을 할 수 있도록 잡무를 거의 제가 처리함
    • 정서적 안정감이 낮아짐
  • 기타




10월

  • 학습
    • Full Stack Deep Learning Bootcamp 정리함. 이 강의는 정말 여러 내용을 담고 있는데, 프러덕션 부분까지 담아서 매우 좋음
    • 데이터야놀자 행사에 직접 발표하는게 아닌, 팀원분들이 발표할 수 있도록 도움. 팀원 성장시키기 : 발표 컨설팅 참고
    • 미국에서 스트라타 행사를 듣고 최적화쪽은 Julia를 많이 사용하는 것을 보고 심심할 때 Julia로 최적화 문제를 풀어봄. 언어는 언어일 뿐인데 왜 Julia에 최적화 레퍼런스가 많을까?에 대해 고민함
  • 정서적 안정감
    • 뭔가 바쁘게 들어온 일을 처리하고, 미팅도 많이 했는데 되돌아보면 한 일이 없는거 아닌가?란 생각에 약간의 현타. 집중할 일에 집중해야 하는게 아닐까?란 생각이 들어 업무 방식을 변경함
    • 패스트캠퍼스 머신러닝 온라인 강의에서 프로젝트 부분 촬영하느라 정서적으로 여유가 없었음




11월

  • 학습
    • 데이터 그룹에서 신입/인턴 비율이 높아지는데 그분들을 위한 맞춤 교육이 따로 없어서 카일 스쿨을 만들어 교육함
      • 일은 왜 하는가? 번아웃을 어떻게 대처할 것인가? 올바른 자세(허리 펴!), 파이썬 시각화 등까지 진행했고 앞으론 개발적인 부분을 알려줄 예정
      • 저는 남을 돕기 위해(성장시키기, 유저 입장에서 좋은 서비스를 경험하도록) 일을 하고 있는 것을 발표 자료 준비하며 다시 깨달음
    • Uber에서 만든 Deck.gl을 Python에서 활용할 수 있는 pydeck+ipywidget에 대해 공부하고 사내 전파함
  • 정서적 안정감
    • 시 간 순 삭! (블로그에 글 2개밖에 작성하지 않았던 시기)
    • 닌텐도 스위치를 구입해 포켓몬 실드를 즐김. 게임하다보니 여유가 생기고 마음이 평온해지는 것을 느끼며, 아 사람은 가끔 좀 쉬어야지.. 라는 생각이 듬
  • 기타
    • 유동현님이 제안주셔서 Career Talk에서 데이터 관련 세부 직군 소개 및 방향 제시에 대해 발표하고 옴
    • Google Cloud Summit Seoul 2019 - 고객 패널과 함께 알아보는 Google Cloud Platform에 발표함
      • 코엑스에서 600명 넘는 분들 앞에서 발표할 수 있는 기회였습니다! 제가 여태까지 발표한 장소 중 제일 거대했습니다
    • GDG Pangyo에서 진행한 ML Pipeliners 멘토링 진행




12월

  • 학습
    • cs224w를 공부하기 시작. Graph 관점으로 문제를 풀어보기 위한 도전
    • Tensorflow 2.0 다시 공부 중
    • Google BigQuery : The Definitive Guide 책을 번역하는 중. 책 내용은 한번 봤는데, 번역하는 일은 또 빡세다는 것을 느끼는 중
    • 쏘카 데이터그룹 테크 밋업 준비 및 홍보함. 직접 발표하진 않았지만 사람들이 좋아할 소재를 찾아 제안함
    • Airflow를 더 강력하게 쓰는 중. 소스코드를 까보며 사용
  • 정서적 안정감
    • Task 외에 추가된 업무가 너무 많아 요새 고민하는 중. 극강의 매니저 역할을 해야하는 것일까? Task를 직접 진행해야 할까? 아직도 정답은 내리지 못했지만 이 부분에 대해 계속 고민하다보니 정서적 안정감이 종종 변하고 있음. 앞으로 미래에 어떤 사람이 될지 고민하는 중
  • 기타
    • 글또 3기가 12월부로 종료되었고, 1월 중 ~ 2월부터 글또 4기를 시작할 예정




키워드 정리

  • 올해 몇 가지 키워드를 추려보면 다음과 같습니다
    • 팀장의 역할
    • 최적화(Optimization)
    • MLOps
    • 딥놀 유튜브
    • Notion




팀장의 역할

  • 생각보다 낮은 연차에 팀장을 맡으며 고민이 많아졌습니다. “어떤 팀장이 되야할까?”
    • 제가 예전에 같이 있었던 상사, 팀장님들은 어떤 사람이었는지 생각해보며 저는 어떤 상사를 원했는지 고민했습니다
    • 저는 “팀원 개인의 욕구를 잘 충족해주고, 잘 성장할 수 있도록 돕고 필요한 경우 문제 해결을 잘 도와주는 팀장”을 하기로 결정했고, 매달 정기 면담을 통해 팀원들의 성격 + 욕구를 파악해 팀원들의 욕구를 충족시킬 수 있도록 노력했습니다
  • 아마 팀원들의 동기 부여를 잘 주고, 팀원들이 만족하고 있다고 생각합니다
  • 앞으론 더 잘 성장하도록 돕고, 저도 업무를 주도적으로 하며 그 지식을 공유하는게 중요하지 않을까? 생각하고 있습니다




최적화

  • 데이터 사이언스쪽엔 보통 머신러닝/딥러닝 위주로 많은 분들이 공부하고 있습니다
    • 저 또한 그랬는데, 최적화 방법론이 현실의 문제를 효율적으로 푸는 경우도 있는 것을 깨달았습니다
    • 머신러닝과 최적화 방법을 혼합하면 비즈니스 문제를 효율적으로 풀 수 있습니다. 예를 들면 제품의 수요가 예측될 경우, 그 수요값에 기반해 생산 계획을 수립할 수 있습니다
    • 이런 문제들은 예측 모델링의 결과값이 최적화의 Input으로 들어가게 됩니다. 그 후, 시나리오에 따라 전략이 결정됩니다




MLOps

  • 머신러닝/딥러닝이 인기를 끌며 점점 많은 분들이 공부하고 있습니다. 실제 모델링 코드는 몇줄 안되지만 Production화하기 위해선 여러 개발 작업이 필요합니다
  • 이런 부분을 자동화하기 위해 다양한 도구들이 나오고 있고, 대표적으로 Serving, Auto ML, Experiment 관리 등이 있습니다
  • 이 부분은 데이터 엔지니어링, 개발에 관심갖던 제 성향에 잘 맞아 꾸준히 공부하고 있습니다
  • 아마 Google에서 많은 Application을 계속 출시할 것으로 예상됩니다




딥놀 유튜브

  • 블로그나 인스타그램은 많이 하고 있어서, 이제 도전한다면 유튜브를 해야하지 않을까? 생각했습니다
  • 혼자서 유튜브 시작하는건 매우 부담스러워서, 지인분들과 데이터 관련 이야기하는 유튜브를 만들었습니다
    • 혼자 진행하는 것보다 여러명이 함께하니 훨씬 규칙적으로 진행할 수 있는 것 같습니다
  • 편집자가 따로 없어서 직접 편집해야 하지만.. Vrew 등을 활용해 더 빠르게 영상을 만들고 있습니다!
  • 내년엔 더 많은 영상으로 찾아뵙길..!




Notion

  • 노션을 사용한지 이제 1년이 넘었습니다
  • 예전엔 메모를 중구난방으로 했는데, 이젠 모두 노션에 저장되어 있습니다
    • 회사에서 작성한 회의록 정리, 기술에 대한 디버깅, Project 진행 상황 템플릿, 링크 모음 등 1년 이상 사용하니 어느정도 저만의 방식이 생긴 것 같습니다
    • 내년엔 메모를 어떻게 해야할까?에 대한 내용으로 한번 발표하는 자리를 만들어보려고 합니다 :)
  • 링크를 아래와 같이 정리하면 다시 찾기 쉽고 보기도 이쁩니다!




마치며

  • 2019년은 정말! 열심히 지냈고, 빠르게 지나갔습니다. 많은 것을 했지만 동시에 못했던 것들도 있으니 그 부분을 잘 채워서 2020년은 더 발전하는 해가 되도록 노력하려고 합니다-!
  • 2019년에 블로그 글은 총 56개 작성했으니 평균으로 치면 최소한 1주에 글 1개는 작성한 것 같네요 :)
  • 외부 발표는 총 5번 진행했고, 사내 발표는 꽤 많이..! 2020년엔 발표를 많이 할지에 대한 구체적인 생각은 없지만, 조금 더 고민해봐야 겠네요 :)

카일스쿨 유튜브 채널을 만들었습니다. 데이터 사이언스, 성장, 리더십, BigQuery 등을 이야기할 예정이니, 관심 있으시면 구독 부탁드립니다 :)

PM을 위한 데이터 리터러시 강의를 만들었습니다. 문제 정의, 지표, 실험 설계, 문화 만들기, 로그 설계, 회고 등을 담은 강의입니다

이 글이 도움이 되셨거나 다양한 의견이 있다면 댓글 부탁드립니다 :)

Buy me a coffeeBuy me a coffee





© 2017. by Seongyun Byeon

Powered by zzsza