카카오의 Data는 어떻게 다를까?

안녕하세요. 테크 블로그에 첫 글로 인사드리게 된 인재영입팀 린지입니다. 🙂 2022 테크 인턴십 Live 설명회에서 데이터 분야에 대해 자세히 알아보실 준비되셨나요~?

21세기의 가장 중요한 자원이라고도 불리는 Data 분야의 설명회는 아래와 같은 총 3개 분야에 대해 4명의 리더분들이 말씀해 주셨습니다.

 

  1. 데이터 엔지니어링
  2. 데이터 사이언스
  3. 데이터 플랫폼 엔지니어링 (Database Engineer / Hadoop)
 


Data Engineering

역사적으로 데이터의 중요성은 오랜 시간 동안 강조되어 왔습니다. 과거에는 데이터를 가공에 비용이 너무 많이 들었기 때문에 정말 중요한 데이터만 분석을 했어요. 하지만 기술의 발전과 수많은 데이터가 생산됨에 따라 데이터 분석의 범위는 커져갔습니다.

카카오의 Data 기반 의사 결정

데이터를 목적에 맞게 활용하는 데이터 해석 능력을 Data Literacy라고 하는데요, 카카오는 모든 크루의 Data Literacy 역량을 향상할 수 있도록 지원을 해드리고 있습니다. 

카카오의 Data 기반 서비스

그리고 그렇게 모은 데이터를 가지고 서비스를 직접 발전시킵니다. 예를 들어 사용자가 좋아할 만한 콘텐츠를 추천해 주고, 그 사용자가 살 만한 상품을 광고하고, 마지막으로 AB test를 통해 직관이 아닌 실제 사용자의 선택에 기반한 서비스 개선을 꾸준히 진행하기도 합니다.

기술의 발전으로 데이터 분석 비용이 급속도로 낮아짐에 따라 빅데이터 기반 테크 기업들이 엄청난 성장을 하고 있습니다.

빅데이터

통상적으로 수십 테라 이상의 데이터를 빅데이터라고 칭하곤 합니다. 그러나 카카오에서는 수십 테라 이상으로 훨씬 더 큰 데이터를 만져볼 수 있습니다. 무려 수 페타바이트(PB)에 이르는 데이터를 분석을 하고 있습니다. 저희는 베리 빅데이터라고 부르고 싶어요.


Data Engineering 이란

데이터 엔지니어링은 빅데이터를 전문적으로 다루는 엔지니어들을 지칭하는 하는 말입니다. 데이터 엔지니어들이 사용하는 기술은 아래와 같습니다.

Data Pipeline, Data Lake, Big Data, Analytics Systems, Programming 도메인에 대한 지식들이 필요합니다.


Data Engineering vs. Data Scientist

데이터 엔지니어와 데이터 사이언티스트는 모두 데이터를 다루는 직무이나, 두 직무의 필요 역량에는 조금 차이가 있습니다. 처음으로 두 직무에서 공통으로 요구되는 역량을 보면, 분석과 기본적인 프로그래밍 스킬, 그리고 빅데이터를 다룰 줄 알아야 합니다.

데이터 엔지니어에게 조금 더 필요한 역량으로는 프로그래밍 역량과, 분산 시스템에 대한 지식, 그리고  데이터 파이프라인은 잘 다루시면 좋습니다. 

반면에 데이터 사이언티스트는 수학적/통계 지식과 ML/AI, 그리고 분석 시스템에 대한 역량이 뛰어나면 더욱 좋습니다. Data Science와 관련된 내용은 다음 세션에서 조금 더 자세히 알아보실 수 있습니다.


카카오의 데이터 엔지니어링

카카오 데이터 엔지니어링이 나아가려고 하는 방향은 그 누구나 데이터 기반 의사결정을 할 수 있는 서비스를 만들고, 그리고 누구나 데이터를 활용해서 서비스를 발전시킬 수 있도록 하는 시스템을 만드는 것입니다.

최대한 간략히 그림으로 표현해 보았습니다. 왼쪽에 있는 카카오의 서비스들이 데이터를 데이터 파이프라인과 데이터 레이크에 저장을 하면 그 저장된 데이터를 기반으로 분석 시스템을 만듭니다. 여기까지 파란색 테두리 내부의 두 가지 과정이 데이터 엔지니어링에 포함됩니다. 데이터 엔지니어링의 결과물은 통계와 분석, 머신러닝과 AI 등에 사용됩니다.

카카오와 카카오 서비스들의 수많은 데이터들을 다룰 수 있는 데이터 분야에 지원을 하신다면 저희가 다 알려 드리겠습니다. 프로그래밍 기본 지식만 있으시더라도 문제없으니, 많은 관심과 지원 부탁드립니다. 


Data Science


AI, ML, DL 그리고 Data Science

Data Science 분야는 최근 들어 많은 인기를 얻고 있지만 간단히 정의하기엔 어려움이 있습니다. 여러 정의가 가능하겠지만, Data Science를 위해 필요한 세 가지 요소가 있다고 보는 게 일반적입니다. 첫 번째로는 수학적/통계학적 전문성, 다음으로는 프로그래밍 능력을 포함한 컴퓨터 사이언스 스킬, 그리고 마지막으로 가장 중요한 business knowledge가 있습니다. 특히 business knowledge가 중요한 이유는 비즈니스 도메인에 대한 지식을 바탕으로 한 제대로 된 문제 인식이야말로 Data Science가 필요하고 제대로 그 가치를 실현할 수 있는 전제 조건이기 때문입니다. 

한편, Artificial Intelligence, Machine Learning, Deep Learning 이런 용어들도 주변에서 많이 접할 수 있는데 Data Science와 그 개념이 혼용되기도 해서 잘 구분할 필요가 있습니다. 이 역시 여러 해석이 가능하겠지만 아래 벤다이어그램과 같이 이해하면 무리가 없을 듯합니다.

AI는 가장 포괄적인 개념으로, 사람처럼 ‘학습’을 하고 판단할 수 있는 프로그램을 구현하는 것이 목적입니다. ‘학습’이라는 기능을 구현하기 위해 시스템이 데이터를 입력받고, 이 데이터에 기반해서 어떤 목적하는 metric 이 향상되는 방향으로 구현체의 모델 파라미터가 스스로 업데이트되는 그러한 시스템을 개발하는 방법론을 통칭하여 Machine Learning (이하 ML)이라 정의합니다. ML의 여러 알고리즘 가운데, 대표적인 것으로 neural network 이 있고, 복잡한 구조와 대용량 데이터를 수용해서 더 높은 성능을 낼 수 있도록 발전하여 최근 각광받고 있는 알고리즘이 Deep Learning입니다. Data Science는 ‘데이터에 기반하여 과학적인 접근법을 통해서 목적하는 애플리케이션을 개발하거나 인사이트를 얻는 것을 목표’로 하며 이를 위해 데이터에 기반해 ‘학습’ 하는 모델을 개발하는 작업뿐만 아니라 ‘데이터를 다루고 분석하고 해석하는 작업’까지 포괄하는 좀 더 넓은 범위의 개념이라고 보면 됩니다.


카카오의 Data Science

카카오에서는 Data Science 직무를 ML과 Statistics라는 영역에 걸친 성격의 작업을 수행하는 것으로 정의합니다. 이번 인턴십 프로그램에서 Data Science 분야는 ML 및 Statistics 관련 기초 역량과 기본기, 그리고 열정 및 성장성을  갖춘 분들을 선발하고 육성하고자 합니다. ML과 Statistics 영역 각각의 특성은 대략 위 벤다이어그램의 내용과 같습니다.


ML 직무소개

ML 관련 기술을 다양한 업무에 적용하고 있으며, 기본적으로 데이터에 기반해서 학습 시스템을 개발하며, 이를 이용하는 서비스 애플리케이션 개발과 연계되는 경우가 많습니다. 주로 서비스 품질 향상을 위해서 쓰이거나 인사이트를 제공하는 목적으로 활용되고 있습니다. 

Data Science 입장에서 ML 관련 기술을 통해 목적하는 바는 앞서도 언급한 바와 같이 ‘데이터 기반한 학습 시스템 개발 혹은 인사이트 도출과 같은 방식의 과학적 접근을 통해 비즈니스 도메인의 문제를 해결’하고자 하는 것입니다. 따라서 무엇보다도 해결하고자 하는 문제 인식과 정의 그리고 이와 관련한 데이터 환경을 잘 파악하고 ML 방식이 최선인지 판단할 수 있는 것이 중요합니다. ML 모델의 성능과 풀고자 하는 비즈니스 문제의 성과가 잘 align 되어야 합니다. 그리고 일회성으로 학습된 모델을 적용하는 경우도 있지만, 지속적으로 변화하는 환경에 적응하면서 최적의 답을 찾아가야 하는 애플리케이션에 도입하였을 때 무엇보다 유의미한 성과를 거둘 수 있습니다. 최근 데이터 파이프라인부터 모델 학습, 서비스 적용, 성능 모니터링 및 개선에 이르기까지 전 과정이 자동화/플랫폼화의 방향으로 발전하고 있으며 이를 MLOps라고 합니다.


Statistics 직무소개

Statistics는 데이터로부터 인사이트를 도출하고 데이터의 경향성을 보고 어떤 해석을 하고 진단하는 작업들과 관련이 깊은 기술입니다.

조금 더 세분화해 보면 위와 같은 영역들로 다양하게 좀 나눌 수도 있습니다. 

Statistics 관련 기술을 통해 ‘무료 이모티콘 지급이 결제 전환율에 어떤 영향을 미쳤는지 분석’하거나 ‘카카오톡 채널 친구 추가한 사용자를 대상으로 운영하는 채널 비즈니스의 건강성을 어떻게 정의할 것이냐 그리고 그 건강성이 유저와 채널 간의 활동성 데이터로부터 추론할 수 있을지 분석’ 하기도 합니다. 또 ‘카카오톡 지갑 가입을 늘리고자 하는 목적’이 있다면, 영향을 미치는 요인을 파악해야 그에 맞는 전략을 세울 수 있겠죠. 이런 식으로 다양한 목적을 위해 통계적인 기술이 적극 활용되고 있습니다.  

카카오는 방대한 데이터, 그리고 높은 기술력과 축적된 경험을 통해 지속적으로 Data Science를 통해 고객에게 유의미한 가치 제공하는 모든 서비스 운영에 핵심적인 기여하고 있습니다. ML/Statistics 분야 기술력을 향상하고 관련 경험을 치열하게 하면서 업계 최고 Data Science 전문가로 성장해 가고자 하는 지원자 여러분의 위대한 여정을 카카오에서 시작해보시면 어떨까요? 열정과 재기 넘치는 많은 분들의 지원을 애타게 기다리고 있습니다. 감사합니다.


Data Platform Engineering – Database Engineer


데이터베이스의 사용

데이터는 어떻게 관리되어야 할까요? 

기업에서 다루는 데이터는 다수에게 안전하고 접근이 용이하게 공유되어야 됩니다. 또 코스트를 절감할 수 있는 방안도 고려가 되어야 하며. 데이터의 신뢰성을 위해서 손상되지 않으면서도 일관성을 유지하는 것도 무척 중요합니다. 예를 들면, 시간을 저장하는 기로에 시간 데이터가 아닌 다른 값이 들어오지 않게 해야 하며 주문이 취소되었을 때 배송뿐만 아니라 결제도 취소되는 과정이 필요합니다.

그렇다면 데이터베이스는 왜 사용해야 될까요? 

가장 간단하게 데이터를 그냥 텍스트 형태로 저장하는 것을 한번 생각해 보면 시간이 지나서 데이터가 점점 커질수록 원하는 데이터를 빠른 시간 안에 찾기가 쉽지 않을 것입니다. 

혼자 사용하는 데이터가 아닌 이상 여러 사람이 동시에 사용할 수 있도록 구현을 해야 되고, 개발자라고 해서 무조건 유저 데이터를 아무나 볼 수 없기 때문에 승인을 받고 적절한 권한을 획득하도록 해야 될 겁니다. 

또, 데이터를 효율화 있게 저장하기 위해서는 중복 데이터도 최소화해야 됩니다. 거래내역 같이 중요한 데이터라면 백업도 주기적으로 받아야 될 뿐만 아니라 백업을 통해서 특정 시점으로 복원도 가능해야 됩니다. 이런 것들을 모두 애플리케이션에서 구현하고 예외 사항을 처리하려면 아마 엄청난 시간과 비용이 들겠죠. 

하지만 Database Management System (이하 DBMS)에서는 이런 기능들을 모두 제공하기 때문에 바로 사용하면 됩니다. DBMS로 데이터를 관리하면 애플리케이션을 사용하는 다양한 개발 언어와 상관없이 SQL이라는 언어로 표준화해서 관리가 가능하기 때문에 향후 데이터베이스 종류를 바꾸더라도 애플리케이션에서는 기존 SQL을 그대로 사용할 수 있는 장점도 있겠죠.

이런 여러 가지 데이터 관리 이슈를 고려해서 서비스를 위한 데이터는 DBMS를 선택해서 사용하게 됩니다. 궁극적으로는 사용자에게 데이터를 빠르고 안전하게, 그리고 사용성이 편리하도록 제공되어야 합니다.


카카오 데이터베이스 엔지니어

위 표는 DB engines라는 사이트에서 매월 발표하는 데이터베이스 랭킹 중 TOP 10의 스크린샷입니다. 

이 중에서 카카오는 노란색으로 표시되어 있는 네 가지 데이터베이스를 지원하고 있습니다.  처음에는 Oracle과 MySQL 위주로 지원을 시작했는데, PostgreSQL과 MongoDB를 현재 추가로 지원하고 있고, 오픈소스 데이터베이스를 사용하는 것이 카카오가 가고자 하는 방향이기 때문에 현재 오라클은 한 0.5% 정도 레거시에 남아 있습니다. 그래서 현재 메인으로 사용하는 DB는 MySQL, PostgreSQL과 MongoDB입니다.

 

카카오의 모든 서비스들은 데이터를 생산하고 활용합니다.

데이터의 제 성격과 활용 용도에 따라서 DBMS를 복수로 선택해서 사용하는 경우가 많은데요. 

유저 접점의 데이터를 저장하고 있는 데이터베이스를 저희 데이터베이스 엔지니어들이 관리하고 있기 때문에 카카오와 카카오 공동체의 다양한 서비스 개발자들과 협업하고 있습니다.

이렇게 개발자들이랑 협업하고 이 DB들을 직접 관리하고 있기 때문에 신년 0시 0시에는 통신 3사를 합친 것보다 많은 카톡 트래픽 양을 직접 데이터베이스 지표로 확인할 수 있고, 발렌타인 데이나 빼빼로 데이 때 주고받는 선물 트래픽이나 BTS나 IU 신곡 발표 때 멜론의 폭발적인 반응들도 실시간 데이터 지표로 확인이 가능합니다. 작년에 코로나 백신 10부제 예약 오픈 때 얼마나 많은 사람들이 매일 백신을 예약하기 위해서 시도하고 있는지 트래픽을 경험한 것도 기억이 나네요.


카카오 데이터베이스 엔지니어가 하는 일

카카오의 데이터베이스 엔지니어가 하는 일은 두 가지 카테고리가 있습니다.

하나는 카카오 서비스를 지원하는 것이고, 다른 하나는 최적의 데이터베이스 환경을 개발하는 것입니다. 

이 최적의 데이터베이스 환경을 개발하기 위해서는 저희가 선정한 데이터베이스에 대해서 연구하고 테스트하고, 기술 내용들을 공유합니다. 장애가 나면 빠른 시간 안에 자동으로 대응할 수 있도록 방안들을 테스트/구현하고, 허용된 개발자들한테만 데이터에 접근 가능하게 해야 되며, 또 해당 Query 들에 대해 로깅도 해야 합니다. 의도치 않은 데이터 유실 시, 복구를 준비하고 지속적으로 성능을 튜닝을 하며, 무엇을 모니터링해야 의미 있을지를 결정하기 위해 이 상태 정보에 대한 이해가 필수적입니다. 그래서 그 항목들에 대해서 어떻게 모니터링을 구현할지에 대해 정리합니다. 또한 이상 징후들을 정의해서 해당 상황이 발생을 하면 검출을 자동으로 하고 또 검출된 메시지를 어떤 사람에게 전달할지도 저희가 방법을 강구해야 합니다. 

이렇게 강구된 방법들 중 best practice는 무엇인지 동료들과 같이 리뷰하고 도출을 한 뒤 표준화를 하고, 이 표준화가 진행이 되면 똑같은 품질의 서비스 데이터베이스 운영이 되도록 자동화를 합니다. 이 자동화에는 각각의 플랫폼 모듈들이 있는데요. 이 DB 플랫폼 모듈들을 최종적으로는 클라우드 SaaS 형태로 완성시키는 것이 저희의 큰 한 축의 주제입니다. 이렇게 자동화된 DB 플랫폼 환경을 카카오 서비스가 100% 활용할 수 있도록 개발팀을 지원하고 있습니다.

개발팀에서 새로운 데이터베이스가 필요하다고 요청하면 해당 데이터베이스 생성과 동시에 저희가 여러 가지 케이스로 베스트 프레딕스를 준비하고 있는 것들에 각 모듈들에 자동으로 연동이 됩니다. 그리고 서비스별로 저장되는 데이터와 실행되는 쿼리가 다르기 때문에 이 쿼리들을 검토하고 인덱스를 잡아줍니다. 이상 징후가 발생되면 자동으로 검출돼서 알람이 오게 되어 쿼리 수정이 필요하면 수정을 하고, 만약에 다른 원인이라면 관련 부서와 공유하고 같이 문제를 해결해 나가는 것이 저희 데이터베이스 엔지니어가 하는 일이라고 말씀드릴 수 있겠습니다. 


신입이 데이터베이스 엔지니어를 할 수 있나요?

최근에 입사한 데이터베이스 엔지니어들이 지원하면서 가장 궁금했던 두 가지를 물어보았습니다. 그들은 ‘데이터베이스 엔지니어를 신입도 할 수 있는지’와 ‘시장에서 데이터베이스 엔지니어가 많이 필요한지’ 이렇게 두 가지를 좀 많이 고민했다고 합니다

지금 카카오 데이터베이스 엔지니어 직군의 25%가 최근 3년 동안 신입으로 입사한 크루입니다. 신입 크루들이 만약 DB에 대해서 공부를 하고 왔다면 DBMS개론 정도를 듣고 입사한 케이스가 다수이기 때문에 필요한 것을 모든 것을 처음부터 배우고, 그다음에 할 수 있는 일부터 시작합니다. 기본적인 DB 운영은 저희가 DB 플랫폼이 자동화되어 있기 때문에 그 DB 플랫폼을 이용하는 것이고 이 DB 플레임이 어떻게 구현되는지 차츰 이해하면서 이제 업무를 확대하게 됩니다. 

입사하시면 여러분하고 이 같은 주제로 고민하고 있는 동료 크루들이 있고, 카카오에는 또 다양한 서비스들이 있기 때문에 축적된 노하우도 많이 있고 이제 어떤 일을 할 때 동료들의 다양한 리뷰들도 경험할 수 있을 것입니다. 

데이터베이스 엔지니어가 많이 필요한지에 대한 걱정도 많았다고 하는데, 특정 규모 이상의 IT 업체에서는 데이터베이스 엔지니어가 반드시 필요합니다. 전체 시장에 필요한 풀 규모에 비해서 인력 수급도 부족한 상황이고, 특히 오픈 소스를 할 수 있는 데이터베이스 엔지니어와 클라우드 환경에 대응할 수 있는 데이터베이스 엔지니어가 많이 필요합니다.

능동적으로 변화하고 혁신할 수 있는 여러분의 도전을 저희가 기다리고 있겠습니다. 감사합니다.


Data Platform Engineering- Hadoop

 

빅데이터 플랫폼에 해당되는 하둡 엔지니어링 직무에 대해서 소개를 해드리겠습니다.

여기 식재료가 있습니다. 이 식재료를 데이터라고 생각해 보죠. 그리고 여기 한 셰프가 이 식재료로 맛있는 요리를 하고 있네요. 마치 셰프가 식재료를 가지고 요리를 하듯이 데이터를 수학적으로 또는 통계학적 방법으로 분석을 하고 또 비즈니스 도메인과 연결하는 것을 우리는 통상적으로 데이터 사이언스라고 합니다. 그리고 이걸 가능하기 위해서 데이터를 처리하는, 즉 데이터를 수집하고 가공하고 적재하는 것을 데이터 엔지니어링이라고 하죠. 

셰프가 요리를 하기 위해서는 요리를 할 수 있는 도구와 공간은 반드시 필요합니다. 프로는 도구를 탓하진 않는다고는 하지만, 어떤 도구를 사용하느냐, 공간을 어떻게 구성하느냐에 따라 요리의 퀄리티나 생산성은 분명히 달라집니다. 셰프가 요리를 하기 위해서 도구와 공간이 필요하듯이 데이터 사이언티스트와 데이터 엔지니어가 데이터를 마음껏 주무를 수 있는 공간, 우리는 이 공간을 플랫폼이라고 하는데요. 이 플랫폼을 설계하고 구축하고 운영하는 일을 데이터 플랫폼 엔지니어링이라고 합니다. 그중에서도 우리는, 빅데이터 플랫폼 엔지니어링을 수행하고 있습니다.

여기서 우리의 주방을 잠깐 살펴보도록 하죠.

우리 주방에는 식재료인 데이터가 약 254 PB 정도 쌓여 있습니다. 

그리고 이 재료를 가지고 우리의 셰프인 데이터 사이언티스트와 데이터 엔지니어들이 매일매일 맛있는 코스 요리를 만들고 계십니다. 특히, 카카오에서 가장 큰 주방에 해당되는 공용 하둡 클러스터에는 매일 19만 개 이상의 분석 작업이 수행되고 있습니다. 그래서 우리는 이 많은 작업량을 감당하기 위해서 140여 개의 주방을 준비해뒀습니다. 이걸 클러스터라 부르죠.

이 클러스터에는 요리를 할 수 있는 화구에 해당되는 데이터 노드가 약 9,100여 개 갖춰져 있습니다. 그런데 이 화구들은 보통 화구가 아닙니다. 고도의 컴퓨팅 자원이 집적된 막강한 화력을 가지고 있죠. 보시는 것처럼 15만여 개의 CPU 코어와 1.27 PB 정도의 메모리가 탑재되어 있습니다. 

이렇듯 우리 주방은 여러 셰프들이 동시에 많은 요리를 할 수 있는 주방, 나아가서 섬세한 스토리가 담긴 코스 요리를 만들 수 있는 주방이어야 합니다. 즉, 데이터 사이언티스트와 데이터 엔지니어들이 동시에 많은 양의 분석 작업을 하더라도 견뎌낼 수 있는 플랫폼이어야 합니다.

그래서 우리는 가장 오래되고, 가장 보편적이면서도 검증이 된 플랫폼인 하둡 빅데이터 플랫폼을 선택했고, 우리 역할은 바로, 이 하둡 플랫폼을 안정적으로 제공하기 위해서 엔지니어링을 수행하는 것입니다. 


Hadoop Engineer가 하는 일

2000~2010년 초중반까지만 하더라도 우측 삼각형 내 세 가지 직무의 경계가 모호했어요. 그러나 빅데이터라는 시대로 접어들면서 패러다임이 바뀌기 시작한 거죠. 각자의 기능이 전문화되고 구조적 접근이 가능하게 되었습니다. 모두 데이터를 다루는 일인 것 같지만, 각각의 롤의 명세를 보면 각 분야에 대해서 아이디어와 접근 방법을 달리하셔야 된다는 걸 아실 수 있습니다. 

우리가 하는 일을 요약하면, 일부 데이터 엔지니어 영역을 커버하고 있긴 하지만, 우리는 하둡을 이 구조에 가장 하부에 해당되는 플랫폼으로 적용하기 위해서 아키텍처를 만들고, 플랫폼을 개발하고, 이걸 카카오 환경에 녹이고 운영하는 일을 하고 있습니다. 즉, 데이터 분야의 SRE (Site Reliability Engineering), 신뢰성 엔지니어링을 실현하는 것이죠.

또 우리는 KHP(Kakao Hadoop Platform)라고 불리는 하둡 운영 플랫폼을 개발해서 운영하고 있는데요. 이 플랫폼이 하는 이를 통해 우리 일을 다른 각도로 투영해 보도록 하죠.

하둡 생태계에는 하둡 에코 시스템이라고 불리는 많은 분석 도구들이 있는데요.

첫째, 이것들을 평가하고 개발해서 패키지 하는 일,
둘째, 이 패키지를 다양한 비즈니스적 요구 사항에 맞춰서 적용하는 일,
셋째, 그 요구 사항에 따라서 클러스터를 설치하고 운영하는 일을 하고 있습니다. 

마지막으로 스케일에 대해 이야기하면서 마무리하겠습니다. 

서울대학교 산업공학과 이정동 교수님은 ‘축적의 시간’에서, 우리나라의 10년 차 엔지니어는 그냥 10년 차 엔지니어이고, 100년이 된 글로벌 기업의 10년 차 엔지니어는 110년 차 엔지니어라고 했습니다. 무엇이 이 차이를 만든 걸까요? 무엇이 이런 초인류 기업과 그렇지 않은 기업의 차이를 만든 걸까요? 

그건 선배들이 쌓아온 경험과 시간 그리고 그 경험을 어떻게 쌓아왔느냐의 차이입니다. 우리는 이걸 스케일이라고 합니다. 이처럼 스케일은 공간적인 개념뿐만 아니라 시간적인 개념이 포함돼 있습니다. 

카카오의 데이터 분야에 지원하시게 되면 대한민국 최대 규모의 빅데이터 플랫폼이라는 물리적인 스케일을 가져갈 수도 있으며, 선배들이 겪었던 많은 시행착오와 경험 그리고 노하우를 얻어 갈 수 있습니다. 비록 짧은 기간이지만 저희는 이런 스케일을 경험할 수 있도록 열심히 준비하고 있습니다. 많은 지원 부탁드립니다. 감사합니다.


꿀팁 Q&A

 

Q: 보통 석사 이상을 많이 채용한다는 말이 있고 이번 채용 공고 우대사항에도 석박사 학위가 있는데 학사학위 또는 비전공자의 비율이 어떻게 되는지 궁금합니다. 

석박사 학위가 있다는 그 내용만으로 선발 과정에서 가산점이 있는 건 아니라고 보셔도 될 것 같아요. 히스토리로 보자면은 최근 2년 기준으로 저희 팀에 합류하신 분들을 봤을 때 오히려 석박사 학위 가진 분은 안 계셨던 것 같아요. 영입 과정에서 기본적인 역량 그다음에 앞으로의 성장 가능성 등을 면접에서 여쭤보면서 판단을 좀 한다고 보시면 좋을 것 같아서요. 


Q: Data Science 직무가 과제 테스트를 진행을 할 예정이라서 대략 어떤 방식이 될까요? 

Data Science 쪽 직무는 한 4개 정도의 조직이 인턴십에 참여해서, 조직별로 조금 차이가 있을 수도 있는데 논문을 리뷰하고 이런 스타일일 또는 간단한 주제를 드리고 그와 관련한 솔루션 토의 프로세스나 프로그램을 만들어서 얘기해 보는 그런 스타일일 수도 있습니다.


Q: Data Engineering/Science 직무를 위해서 필요한 프로그래밍 수준이 어느 정도인가요?

– Data Engineer
답변드리기 어려우나, ‘저 친구 되게 똑똑하고 프로그래밍 잘하네’ 정도이면 될 것 같습니다.

– Data Science
데이터 사이언스 입장에서는 데이터를 다룰 수 있는 역량이 필요하고, 그다음에 분석하고 이런 과정을 거쳐서 최종적으로 학습 시스템이라는 걸 만드는 이 사이클의 개발이 필요합니다. 또한, 전반적으로 컨테이너 기반의 개발 환경과 클라우드 개발 환경 하에서 개발하고 있어서 업무하는 데 어려움 없을 정도라면 큰 문제는 없을 것 같습니다. 

– DPE (Database Engineer)
데이터베이스 엔지니어 같은 경우는 개발도 해야 되지만 일단 SQL을 작성할 수 있는 능력도 좀 있어야 되고 모델링도 해야 되기 때문에 개발자만큼 개발력은 필요하지 않다고는 생각이 드는데, DBMS를 개발한 경험이 있다고 하면 상당히 도움이 되긴 해요. 개발을 얼마큼 하느냐보다는 어떤 개발을 했는지가 더 관심이 있고, 공통적으로는 코딩 테스트를 거친 정도의 개발력이라면 저희 쪽에서는 충분히 개발력은 그걸로 만족을 합니다.

– DPE (Hadoop)
저희 쪽은 하둡이 자바로 만들어져 있어서 자바 언어를 이해하시면 좋으며 아마 입사를 하시면 저희가 원하는 수준의 레벨은 안 될 거예요. 태어나자마자 뛰라는 거랑 똑같잖아요. 그래서 차차 배워가신다고 생각하시면 될 것 같아요.


Q: 데이터 엔지니어와 데이터 플랫폼 엔지니어의 가장 큰 차이점 공통점이 뭔가요?

데이터 플랫폼 엔지니어에서 하드 엔지니어링은 하드 자체를 만들어 주시고 데이터 엔지니어는 그 위에서 데이터를 저장을 하고 가공을 하고 분석을 하고 그런 업무라고 보시면 됩니다. 데이터 플랫폼 엔지니어에서 하드 엔지니어링을 말씀하신 건지 아니면 DB 엔지니어를 말씀하신 건지에 따라 다를 것 같긴 합니다.

주로 데이터베이스 엔지니어가 다루는 데이터는 유저 접점에 있는 데이터가 주가 될 것 같아요. 

그래서 실제 서비스를 오픈하고 그다음에 그 서비스가 운영되기 위해서는 데이터베이스가 필요할 텐데 그 유저 접점에 있는 데이터들을 주로 저희가 관리를 하게 되고 그 데이터 중에서 분석을 위해서 cdc를 통해서 데이터가 어디로 흘러가게 될 텐데 상당히 많은 데이터들이 또 하둡으로 흘러가기도 하고 물론 하둡에는 이런 관련된 DB뿐만 아니라 로그 데이터도 이런 게 많이 하둡 쪽으로 흘러가게 됩니다. 그런 목적에 따라서 데이터베이스를 선택하는 것이기 때문에 저희는 주로 유저 접점에 있는 데이터들을 저장하고 실제 서비스에서 사용하는 데이터베이스라고 보시면 될 것 같습니다.


Q: 어떤 데이터를 다뤄보았는지에 따라 더 가산점이 붙는다거나 하는 게 있나요? (이미지 동영상 음성 데이터보다는 자연어를 다뤄본 사람의 가산점이 있다거나)

카카오는 좀 더 다양한 주제들 데이터들을 다루고 있기 때문에 어떤 데이터를 다룬 경험이 필수 항목이 아니라면 영입에서 메리트가 크게 있지는 않을 것 같습니다.


Q: 코딩 테스트는 어떤 언어로 응시하나요?

지금 공고에 보시면은 선택하실 수 있는 코딩 테스트 언어를 보실 수 있으세요. 지원 분야에 따라 무조건 이 분야는 이 언어로 보셔야 된다 이런 제한은 전혀 없고, 기본 언어들 중에 가장 자신 있는 언어로 응시하시면 될 것 같습니다. 


Q: 입사에 가장 도움이 되는 게 무엇이라고 생각하시나요?

– Data Engineer
저는 데이터에 대한 관심이라고 생각을 합니다. 예를 들어 뉴스를 보다가 뭔가 통계에 관련된 뉴스가 나왔을 때 그걸 실제로 한번 뽑아보신 경험이 있으시다면 조금 데이터에 관심이 있으신 분이라고 저는 생각을 해요. 뉴스를 보다가 그런 데이터를 보면서 이게 왜 이렇게 나왔지 이거 이상하네 그런 의문이 자주 드시는 분이라면 데이터에 관심이 많으신 분이라고 생각합니다. 이런 분들이 지원해 주셨으면 좋겠고 저는 그 호기심이 동력이 돼서 일을 하신다면 당연히 데이터의 전문가가 될 수 있다고 생각합니다. 빅데이터라고 말씀드렸고 빅데이터를 다루는 직무인데 학교를 다니면서 빅데이터를 당연히 만들 수가 없겠죠. 빅데이터에 대한 경험은 필요하지 않습니다. 

– Data Science
어떤 문제를 풀고 싶은 건지에 대한 의지나 이런 감각이 되게 전 중요한 것 같아요. 결국에 그 문제를 데이터를 기반으로 해서 접근해서 문제를 과학적으로 풀려는 그 접근이고, ‘그 문제를 푸는 데 머신러닝이 도움이 되기 때문에 하려고 하는 것이다’ 이런 감각을 좀 가진 분이라면 좋을 것 같습니다. 그리고 머신러닝으로 시스템을 만든다면 아까 말씀드린 대로 데이터를 열심히 연구하려는 자세가 필요하고, 데이터에 집중할 수 있는 집중력이 중요할 것 같습니다. 조금 더 욕심낸다면 머신러닝이 상당히 모델링적인 면에서는 좀 수학적인 또 통계적인 그런 기술들이 계속 발전하고 좀 어려울 수 있어서 그런 부분을 계속 좀 탐구하고 논문도 보고 그러면서 열심히 또 그런 트렌드를 따라가려는 그런 자세가 있으면 또 되게 많이 발전할 수 있다고 생각합니다.

– Database Engineer
저희는 데이터베이스에 대해서 관심이 있는지 없는지가 제일 저희가 보는 포인트일 것 같아요. 데이터베이스에 관심 있다면 왜 어떤 분야에 대해서 왜 관심을 갖게 됐는지 그 관심을 가졌기 때문에 어떤 활동이 일어났는지가 저희가 궁금한 내용입니다. 그다음에 데이터베이스에 대해서 토의 프로젝트 등을 해볼 수가 있을 것 같은데 느꼈던 점이나 이런 것들 제방 사항들을 좀 물어보고 할 수 있지만, 저희가 인턴에게 어떤 경력자 수준의 어떤 DBMS 스킬을 요구하고 있지는 않습니다. 결국은 데이터베이스 엔지니어가 되고 싶은 마음이 왜 가지고 있는지 만약에 그런 사람이 있다면은 그런 사람을 최우선적으로 원할 것 같아요.

– DPE (Hadoop)
저희도 공통적으로 비슷한 것 같아요. 특히 저희 같은 경우는 빅데이터를 다루다 보니까 아까 말씀하신 것처럼 그런 경험을 외부에서 할 수가 없어요. 그래서 빅데이터 경험을 요구하지는 않고, 열정과 이 플랫폼 쪽을 해야겠다는 의지가 좀 필요한 것 같습니다.

Latest Posts

[get Server!] [커머스CIC] 채널개발파트 소개 드려요!

평소 커머스 도메인에 관심이 많았다면? 톡딜을 통해 핫템을 득해본적이 있다면? 한번이라도 라이브커머스를 넋놓고 쳐다본적이 있다면? 라이언이랑 춘식이랑 함께하는 카카오 커머스CIC에서 개발자의 꿈을