Meet the Global LINERs


Engineering

유홍근 / Data Engineering / LINE Plus

Software가 first-class citizen인 환경에서 경험을 쌓고자 LINE에 합류하신 홍근님. 인터뷰 요청을 받고 부담감과 긴장이 앞섰다고 하셨는데요. 걱정과는 다르게, 데이터 플랫폼과 Kubernetes에 대한 전문성과 열정이 고스란히 느껴졌던 인터뷰 시간이었습니다. 홍근님께서 들려주시는 data engineering의 직무, 그리고 LINE 데이터 플랫폼에 대한 이야기를 지금 시작합니다!

잠깐! 한 눈에 보는 세 줄 요약!

  • 홍근님은 Kubernetes 기반의 사내 데이터 플랫폼을 개발 및 운영하고 있다.
  • 사용자 중심적 사고를 통해 플랫폼 개선 방향에 대해 끊임없이 고민한다.
  • 급변하는 기술 트랜드를 빠르게 학습하고 한발 빠른 실행을 통해 성장한다.

업무에 관한 이야기

Q LINE의 Data Platform Dev와 담당 업무에 대해 소개해 주세요!

조직 이름에서 알 수 있는 것처럼 Data Platform Dev는 사내 데이터 플랫폼 개발을 담당합니다. Kubernetes라는 container orchestration 시스템 위에 데이터 분석가와 데이터 사이언티스트들이 쉽게 사용할 수 있는 Notebook 솔루션, Workflow 엔진, Query 엔진 등의 오픈소스 기반 데이터 플랫폼 제품들을 관리하고 있어요. 현재 저는 JetBrains의 Datalore라는 상용 Notebook 솔루션을 Kubernetes 위에 적용하는 업무와 Apache Spark를 Kubernetes 위에서 쉽게 사용할 수 있도록 구축하고 사용자 가이드를 하는 업무를 하고 있습니다. 이와 같이 상용 솔루션을 연동하는 업무뿐만 아니라, 다양한 데이터 솔루션들을 API 형태로 Kubernetes 위에서 생성하고 삭제할 수 있게끔 API 서버도 직접 개발 및 운영하고 있습니다. 쉽게 말해서, PaaS를 제공하는 API 서버를 개발한다고 보시면 됩니다. 데이터 플랫폼이라고 하면 주로 Hadoop 기반을 생각하실 텐데요. 그러한 많은 부분을 일본에서 담당하고 있고 저희는 특별히 Kubernetes 기반의 데이터 플랫폼 개발을 담당하고 있습니다. Kubernetes를 기반으로 어떤 새로운 데이터 솔루션을 제공할 수 있을지에 대해 지속적으로 고민하고 있습니다.

Q 업무 스케줄에 대해 간단히 소개해 주세요.

저는 보통 재택 근무를 하고 있는데요. 하루를 시작하기 위해 커피를 꼭 마셔야 해요. 제 필수 루틴입니다.(웃음) 그 다음, 업무 리스트를 A4용지에 수기로 적습니다. 손으로 직접 일정이나 To-do 리스트를 관리하는 걸 좋아해요. 전반적인 업무의 큰 그림을 머릿속에 그리기 쉽고, 업무의 우선순위를 선정하는데 도움을 준다고 생각하거든요. 예를 들어 Docker build를 해 놓고 기다리는 동안 남아있는 다른 업무를 합니다. 최대한 업무 흐름을 유지하면서 일을 해 나가려고 노력합니다. 협업 측면에서는 업무 특성에 맞춰서 위클리 미팅을 진행합니다. 월요일에는 Notebook 솔루션 관련 회의를, 화요일에는 Kubernetes 운영 회의를 합니다. 그리고 일주일에 한 번은 오피스에 나와서 팀원분들과 점심 식사를 하기도 해요. 온라인 미팅에서 충분히 논의하지 못했던 아젠다에 대해 논의하거나, 소소한 일상 이야기를 나눕니다. 개인 업무와 협업 업무가 적절한 비중으로 구성되어 있는 것 같아요.

Q 가장 기억에 남는 성취의 순간이 있으신가요?

LINE에 입사해서 맡은 첫 번째 업무가 Kubernetes cluster에서 운영 중인 GPU 장비의 상태를 체크하는 컴포넌트를 개발하는 것이었어요. Machine learning을 위해 GPU를 계속 사용하다 보면 다양한 이유로 GPU 장비에 문제가 생기곤 합니다. 다만, GPU 장비의 수가 워낙 많다 보니, 하나하나 확인하는 것은 불가능에 가까웠는데요. 이를 해결하기 위해 GPU 상태를 자동으로 체크하고, 문제 발생 시 알람이 오는 작업을 수행했습니다. NVIDIA Data Center GPU Manager (DCGM)의 라이브러리를 이용해서 프로그램을 만들고, GPU 모든 서버에 배포하는 작업이었죠. 자동화 프로그램을 개발하여 적용한 지 얼마 지나지 않아서, 문제가 되는 특정 GPU 장비를 발견할 수 있었습니다. 간단한 작업이었지만 입사해서 처음 이룬 성공 경험이어서 기억에 많이 남습니다.(웃음)

역량에 관한 생각

Q 홍근 님의 업무에서 좋은 퍼포먼스를 내기 위해서는 어떤 역량과 자질이 필요하다고 생각하시나요?

지속적으로 학습하는 능력과 한발 빠르게 실행하는 능력이요! 사용자들이 무엇이 필요한지를 파악하고, 새로운 기술들을 빠르게 익히는 것이 매우 필요하다고 생각해요. 기술 트랜드가 매우 빠른 속도로 변하고 있고, 신기술도 점점 다양해지고 있어요. Kubernetes도 비교적 최근에 나온 기술이기도 하고요. 저희 팀의 경우, 트렌드를 익히기 위해서 기술 관련 뉴스레터나 블로그를 구독해서 보고 다양한 커뮤니티 활동을 즐겨하는 분들이 많습니다. 그리고 얻은 지식을 팀 내에 전파해서 업무에 적용할 수 있는 부분이 무엇일지 논의하죠. 팀 단체방 중에서도 ‘Tech Kubernetes’라는 채널이 있는데요. Kubernetes 관련 기사가 있으면 RSS(Rich Site Summary)를 통해 공유해요. 지속적으로 공부하고, 응용 방법에 고민하는 것이 개인의 퍼포먼스뿐만 아니라 팀의 성과에도 긍정적인 영향을 준다고 생각합니다.

Q Data Platform Engineer이기에 가장 중요하게 생각하시는 부분은 무엇인가요?

사용자 중심적인 생각이 매우 중요합니다. 제가 개발하는 서비스는 외부 사용자가 아닌 사내 사용자 대상인데요. 사용자가 무엇을, 어떤 방법으로 이용하길 원하는지 파악하는 것이 중요합니다. 사용자는 가벼운 과도를 원했는데 무거운 중식도를 만들어주면, 원했던 도구가 아니기 때문에 저희가 잘 만들어 놓고도 아무도 사용하지 않겠죠. 매 순간이 사용자 니즈를 찾아가는 과정인데요, 이를 위해 사용 현황 데이터를 지표화하거나, 포커스 그룹 인터뷰를 진행하고 있습니다.

도전, 그리고 성장의 경험

Q 마냥 행복한 경험만 있었을 것 같지는 않습니다. 실패한 경험도 들려주세요.

방금 설명 드린 사용자 중심적인 생각과 연관되어 있습니다. Datalore라는 상용 Notebook 솔루션을 Kubernetes 위에 제공하는 과정에서 어려움을 겪었던 경험인데요. 꽤 구체적이긴 하지만, Datalore에서 Hadoop의 데이터를 사용하기 위해서는 YARN에서 작동하는 Spark 활용하며, 이는 Client 모드와 cluster 모드에서 작동을 할 수 있어요. 다만, Client 모드에서 Spark가 작동하게 되면 통신이 매끄럽지 못하는 상황이었죠. Kubernetes 네트워크는 overlay 네트워크를 사용하기 때문에, client내 driver와 executer가 제대로 통신하지 않는 오류로 인해 발생한 에러였어요. 이에 반해, cluster 모드에서는 통신의 문제없이 잘 작동했기에, 사용자에게는 cluster 모드만 사용하도록 가이드를 했습니다. 정말 단순하게 통신 문제가 없는 모드를 선택한 것이죠. 하지만 계속 운영을 하다 보니, 사용자들이 Datalore 자체를 잘 사용하지 않는 사실을 알게 되었습니다. 조사를 해보니, 대부분의 유저는 client 모드를 활용한 interactive Spark 지원이 필요했던 거죠. 사용자의 요구사항을 제대로 파악하지 못해서 생긴 이슈였어요. 이 사실을 알게 된 후에는 client 모드에서도 에러 없이 Spark를 실행할 수 있는 방법을 적극적으로 찾아보았고, Spark on Kubernetes라는 기술을 활용하여 client 모드를 사용할 수 있도록 지원할 수 있게 되었습니다. 기존 YARN 위에서 실행되던 Spark를 Kubernetes위에서 바로 실행할 수 있도록 개선한 것이죠. 사용자 중심적 사고의 중요성을 또다시 느끼는 계기였습니다.

Q LINE에서의 경험을 통해 특별히 성장했다고 느끼신 사례 혹은 계기가 있으신가요?

특정 사례나 계기라고 표현하기 보다는, LINE의 전반적인 개발 환경을 통해 성장을 하고 있다고 보는 게 맞을 것 같아요. 전 직장에서도 Kubernetes clusters를 운영했지만, LINE에서의 운영 경험은 확실히 특별하고 다르다고 느낍니다. 우선 서버 운영의 스케일이 달라요. 다른 회사에서 쉽게 볼 수 없는 규모를 경험할 수 있거든요. 대략 몇 백배의 차이라고 말씀드리면 짐작이 되실까요.(웃음) 심지어 운영해야 하는 규모는 점점 더 커지고 있어요. 이런 큰 스케일을 운영하면서 발생하는 여러 문제점과 장애 대응 경험, system outage를 통해 어떤 컴포넌트들이 중요하고, 어떤 작업을 할 때 조심해야 하는지 등을 직접 경험하면서 얻게 되는 지식들이 저를 성장시키고 있습니다. Kubernetes를 활용한 다양한 기술들을 경험해 보고 싶었던 것이 제가 LINE에 입사하게 된 계기 중 하나였는데요. 그것을 실현시키고 있다고 느껴져서 뿌듯합니다.

Q 홍근님에게 도전이란 어떤 의미인가요?

뻔한 이야기일 수 있지만, ‘실패를 두려워하지 않는 용기’로 정의하겠습니다. 실패를 두려워한다면 시작조차 할 수 없다고 생각해요. LINE은 직원들이 여러 도전을 할 수 있는 문화적인 환경을 갖추고 있어요. 개개인의 자율성을 보장해 주고, 실패에 대해 blame하지 않은 문화입니다. 회사가 직원을 신뢰한다는 느낌을 주기 때문에, ‘실패를 두려워하지 않는 용기’를 더 낼 수 있고, 개인의 성장까지 자연스럽게 연결이 되는 것 같습니다.

LINE에서의 특별한 경험에 대한 이야기

Q 함께 일하는 동료들을 소개해 주세요!

기존에는 TF형태로 업무를 하다, 정식적인 팀이 된 지는 이제 2년 정도 지난 것 같습니다. 활기차고 열정이 있는 분들이 모여있는 곳으로 설명드리고 싶어요. 다양한 의견을 존중해 주고, 수용하여 실제 적용하는 것에 매우 오픈되어 있습니다. 전반적으로 서로 도와주는 것을 즐기는 문화여서, 입사 후에도 빠르게 적응할 수 있었습니다.

Q 업무적인 부분 외, 개인적으로 가장 ‘재미’있었다고 생각하시는 업무는 어떤 것인가요?

사내 플랫폼이긴 하지만, 저희가 개발한 데이터 플랫폼을 처음 런칭하면서 로고가 필요하다고 생각했어요. 각자 아이콘을 만들어 올리고 팀내 투표를 통해 로고를 선정하게 되었는데요. 만화 캐릭터를 사용한 분도 계시고, 굉장히 심플하게 만든 분도 계셨습니다. 팀원들의 다양한 아이디어를 구경하는 재미가 있었는데요.(웃음) 비록 제가 제출한 로고가 최종 선택되지는 않았지만, 제 손으로 서비스를 직접 만들어 나간다는 느낌이 더욱 강해지는 즐거운 경험이었습니다.

Q LINE에서 근무하면서 가장 만족하는 부분은 무엇인가요?

업무를 위해 참고할 수 있는 우수한 레퍼런스가 굉장히 많습니다. 여기서 제가 말하는 레퍼런스는 자료와 동료 모두 포함인데요. 사내 GitHub Enterprise를 통해 코딩에 참고할 수 있는 레퍼런스를 보거나, 위키를 통해 플랫폼 개발을 위해 필요한 고민 포인트들에 대한 인사이트를 얻을 수 있습니다. 그리고 기술 역량이 뛰어나신 동료들이 많기 때문에 대화를 통해 정보를 얻는 경우도 많죠. ‘거인의 어깨에 올라서서 더 넓은 세상을 바라보아라’라는 말을 좋아하는데요. LINE에서 탄탄한 자료와 실력있는 동료들을 통해 저의 시야를 넓게 가져가며 성장할 수 있다는 것이 좋습니다. 근무제도 측면에서는 Hybrid Work가 활성화되어 있는 것이 만족스럽습니다. 팀의 그라운드룰만 잘 지킨다면 개인 생활과 업무의 균형을 잘 맞출 수 있어요. 회사가 구성원에게 적합한 업무 환경을 직접 만들어 나갈 수 있도록 자율성을 보장하고 물리적인 지원을 해준다는 것도 한 몫 하는 것 같습니다.

마무리하며

Q 앞으로 LINE에서 이루고 싶은 목표가 있으신가요?

궁극적으로는 LINE의 사업에 큰 임팩트를 주고 싶어요. 사내 유저를 더욱 확보해서, 데이터의 가치와 insight를 찾아낼 수 있는 서비스를 만들어 나가고 싶습니다. 개인적으로는 Kubernetes 관점에서 더 많은 서비스를 유저에게 제공하고 관리함으로써 Kubernetes 전문가로서 더욱 성장하고자 하는 목표가 있습니다. 지금은 아이가 태어나서 살짝 우선순위에서 밀려 있지만, 예전부터 운영하던 개인 기술 블로그도 다시 활발하게 운영하고 싶은 마음도 있습니다.

Q 본 직무에 관심 있는 분들께 한 말씀 해주세요!

LINE은 그 어떤 곳보다 큰 규모의 데이터와 Kubernetes clusters를 다뤄볼 수 있는 경험을 할 수 있는 곳이라고 생각합니다. 특별한 커리어 성장을 이뤄내고 싶으시다면 지금 바로 Jobs 공고를 확인해 주세요!

Q 현재 채용 중인 LINE Data Platform 공고가 궁금하다면?

LINE Data Platform 공고를 Jobs page에서 바로 확인해 보세요! - Data Platform Engineer