안녕하세요, 마케팅 테크놀로지 컨설턴시 에이비일팔공입니다.
Inside AB180은 재직자 인터뷰, 사무실 소개, 복지 자랑 등 다양한 콘텐츠를 통해 AB180의 문화를 알리는 코너입니다.

새롭게 시작하는 코너, Inside AB180이 준비한 첫 이야기는 재직자 인터뷰입니다.
인터뷰의 주인공은 에이비일팔공이 개발하는 어트리뷰션 툴, Airbridge 개발을 위해 애쓰고 계시는 Product Division의 Back-end Team 리드 정주홍님입니다.

에이비일팔공에서 어떤 일을 하시는지, 개발자로서 느끼는 회사의 문화와 리크루팅 팁까지! 이런 저런 이야기를 나눠봤습니다.
재직자가 전하는 에이비일팔공의 생생한 이야기, 지금 바로 시작합니다.

주홍 in 강릉

Q1. 안녕하세요 주홍님, 자기소개 부탁드립니다.
A1. 안녕하세요. Back-end팀 리드 겸 에어브릿지의 데이터 엔지니어링을 맡고 있는 정주홍입니다. 게임 개발, 모바일 앱 개발, 웹 개발 등 이런저런 일들을 하다가 에이비일팔공 합류한지 2년이 다 되어 가고 있습니다.

Q2. 주홍님이 이끌고 계시는 Back-end팀의 구성과 분위기에 대해서도 소개 부탁드려요.
A2. 조금씩 늘어나서 이제는 10명 가까이 되는 팀이 됐습니다. 전원 남자지만 요정같은 친구들이 밝은 분위기를 만들어주고 있습니다. 다양한 나이대의, 무엇보다도 코딩을 좋아하고, 또 더 잘하고 싶어하는 친구들이 많이 있어서 좋습니다.

Q3. 팀에 대한 애정이 느껴지는 것 같네요(웃음). 그렇다면 주홍님이 생각하는 에이비일팔공의 매력은 무엇인가요?
A3. 저는 스타트업에서 일할 때 제가 스스로 제품을 만들어나갈 수 있는 것을 중요하게 생각합니다. 그렇기 때문에 제가 개발자일지라도 기획 의사 결정에 많이 참여하려고 노력하는 편입니다. 에이비일팔공에서는 본인이 원한다면 그 과정에 얼마든지 참여할 수 있다는 점이 좋습니다.
예를 들어, 옆에서 헌재님(CTO), 용철님(CPO)이 논의를 하는 것을 듣고 제 생각을 이야기하면서 토론을 하곤 합니다. 그 과정에서 백엔드 담당자로서의 저의 의견이 반영되기도 하구요. 제 직급 때문만이 아니라 저희 팀원들도 마찬가지로 의견을 내고 그 의견이 반영되는 것을 경험합니다. 이런게 스타트업의 묘미 아닐까요?
또한, 디지털 마케팅 분야의 지식을 쌓을 수 있다는 것과, 어느 정도 규모 있는 데이터를 다룰 수 있다는 것도 백엔드 개발자인 제게 매력적인 요소 중 하나입니다. 생각보다 우리나라에서 마케팅 분야의 일을 하면서 어느 정도 양의 데이터를 경험해볼 수 있는 곳이 많지 않거든요.

Career

Q1. 에이비일팔공에 입사 하기 전까지는 어떤 경험들을 해오셨나요? 또 그 결과로 지금 에이비일팔공을 선택하게 된 이유는 무엇일까요?
A1. 제가 처음으로 다녔던 회사는 게임 회사였습니다. 몇 달 일하던 중 원래 대학을 갈 생각이 없었는데 어쩌다보니 대학을 진학해서 나름 충실히 공부했었습니다. 그래도 코딩 하는게 좋아서 방학과 같은 시간을 이용해서 회사를 다니곤 했었습니다. 그러다 대학원에서 더 깊게 공부해보고 싶다고 생각했고, 대학원 진학 전 잠깐 데이터 처리와 관련된 실무를 경험해보려고 에이비일팔공에 합류했습니다. 다른 여러 회사들 중에서도 에이비일팔공을 선택했었던 이유는 제가 마케팅에 관심이 많기도 했었고, 스타트업 초기의 분위기를 느낄 수 있지 않을까 하는 기대 때문이었습니다. 일을 하다보니 벌써 이렇게 오래 눌러앉아 있네요 허허허

Q2. 맡고 계신 업무인 '데이터 엔지니어링'에 대해 자세히 알려주시면 좋을 것 같습니다.
A2. 데이터 엔지니어란 어떤 데이터든 효과적으로 다룰 수 있도록 해주는 포지션이라고 생각합니다. 관계형 데이터베이스의 작은 테이블을 다루는 것과 규모 있는 데이터를 다루는 것은 전혀 다릅니다. 단순히 쉽게 체감해보기 위해서는 MySQL에 테이블을 만들고 1TB 정도의 랜덤 데이터를 생성한 뒤 집계 질의를 실행해보면 됩니다. 제가 하는 일은 그러한 많은 데이터들을 쉽고 효과적으로 다룰 수 있게 하는 것입니다. 단순히는 그동안 쌓인 데이터 중에서 원하는 데이터를 찾을 수 있게 하는 것부터 시작하여 더 복잡한 워크로드를 실행할 수 있는 환경을 만들어야 합니다. 또한, 그만큼 많은 데이터를 받아들일 수 있는 기반 환경도 만들어야 하고요.
제가 개발하고 있는 Airbridge라는 제품은 마케팅 데이터와 유저 데이터를 수집하여 마케팅 성과를 제공합니다. 이를 위해 데이터 수집과 처리, 정제, 그리고 제공을 위한 일련의 과정을 거치는 데이터 파이프라인이 존재합니다. 그 과정에서 필요한 데이터를 읽고 쓸 수 있어야 하고, 분석 결과인 다차원 데이터를 빠르게 제공할 수 있어야 합니다.
그리고 무엇보다 중요한 것은 이러한 데이터 처리를 위한 데이터 파이프라인을 저렴한 비용으로 운영할 수 있어야 한다는 점입니다. 저렴한 비용으로 운영하기 위해서는 여러가지 시스템들이 어떤 워크로드에 적합한지에 대해 잘 알고 있어야 하니 공부해야할 것도 많지만 그만큼 재밌는 일인 것 같습니다. 에이비일팔공에서 그동안 일하면서 어떤 데이터든 긁어와서 보여줄 수 있는 능력을 갖추게 된 것 같네요.

Q3. 입사 전 생각했던 업무에 대한 이미지와 실제 업의 차이가 있다면, 어떤 점일까요?
A3. 나름대로 코딩을 많이 해왔기 때문에 데이터 엔지니어링이라는 것이 뭐 특별한게 있을까 하고 생각했었던 것이 사실입니다. 하지만 분산 시스템과 대용량 데이터는 보통 친구들이 아니라는 것을 많이 느꼈습니다.
일반적인 경우에는 생각해본 적도 없는 것이 문제가 되기도 합니다. 그렇다고 문제 상황에서 그 프레임워크, 시스템, 서비스가 친절하게 뭐가 문제인지 알려주지도 않습니다. 데이터에 무슨 문제가 있길래 이런 문제가 생겼을지 진흙탕을 뒤지듯 여러 부분을 훑고 또 생각해봐야 하니 골머리를 앓곤 합니다. 이것이 바로 디지털 시대의 광부인걸까 하고 생각했던 것 같네요. 일단 확실한건 어떠한 것도 절대 그냥 잘 되지 않는다는 것 같습니다.

Q4.  주홍님은 나의 어떤 점이 업무와 잘 맞는다고 생각하시나요?
A4. 개인적으로 제 스스로를 평가할 때 뛰어난 지능으로 빠르게 학습하기 보다는 잘 쌓아온 개념들을 바탕으로 효과적으로 학습하는 편이라고 생각합니다.
앞서 여러 시스템들이 어떤 워크로드에 적합한지, 그리고 데이터 처리를 위한 파이프라인을 잘 구축해야한다고 말했습니다. 이게 말이 쉽지 실제로는 너무나도 다양한 시스템들이 있기 때문에 실제로 하나하나 다 새롭게 익히기는 쉽지 않습니다. 하지만 코딩을 어느정도 하다보면 다들 느끼듯이 이 업에는 전체를 관통하는 공리 같은 것이 있습니다. 운 좋게도 저는 대학교라던가 좋은 멘토님들이라는 기회를 통해 그런 기반을 잘 다질 수 있었던 것 같습니다.
부끄럽지만 에이비일팔공에 합류하기 전까지만 해도 Hadoop을 잘 다뤄본 적이 없었습니다. 하지만 본격적으로 학습을 시작하면서 Hadoop이라는 프레임워크가 어떻게 작동하는지, 각종 옵션은 어떤 역할을 하는 지를 좀 더 빠르게 익힐 수 있었다고 생각합니다. 더불어 그런 Low level에 대해 학습하고나니 그 위에서 작동하는 Spark와 같은 또 다른 빅데이터 프레임워크들을 익히기 용이해졌구요.
그리고 빼놓지 않고 자랑하는 한 가지가 더 있는데 바로 근성입니다. 저는 문제 상황에 직면 했을 때 절대 포기하지 않습니다. 비록 중간에 잠시 그 문제와 멀어질지언정 올바르다고 생각하는 방법으로 문제를 해결하기 전까지는 끝까지 파고듭니다. 어떤 때에는 '올바른 해결 방법'을 위해 몇 주, 몇 달에 걸쳐 문제에 매달릴 때도 있습니다. 이렇게 자나깨나 그 문제에 대해 생각하고 살다보면 갑자기 아이디어가 찾아옵니다. 만약 그걸로 잘 해결되면? 정말 즐겁습니다. 이런 습관 때문에 가끔 잠도 잘 못 이루긴 하지만 덕분에 많이 성장할 수 있었다고 생각합니다.

집중하시는 주홍님

Q5. 그렇다면 추가적으로, 업무에 필요한 능력이나 자질은 무엇이라고 생각하시나요?
A5. 다양한 분야에 대한 지식, 또는 지식을 습득하고자 하는 태도가 필요하다고 생각합니다.  AWS의 Athena라는 서비스는 실제로 PrestoDB로 구현되어 있다는 점이라던가, PrestoDB와 Hive Tez는 Query 실행이 어떻게 다른지부터 시작해서 우리에게 수집되는 데이터는 어떤 특성을 갖고 있는 지와 같은 것들까지요. 그렇지 않고서는 효율적인 시스템을 만들기가 어렵습니다.
특히 요즘은 도메인 지식이 중요하다고 느끼고 있습니다. 기술적인 것만 중요하게 생각해서는 난관들을 헤쳐나가기가 쉽지 않습니다. 데이터 엔지니어링을 하다보면 정책적으로 해결하지 않는다면 정말 어려워지는 문제들을 마주하는 경우가 종종 있는데 그런 때에는 도메인 지식 없이는 정책 설정이 불가능하기 때문입니다.
예를 들어, Airbridge에서는 모바일 데이터를 수집하는데 모바일 환경에서는 네트워크나 모바일 애플리케이션 생명 주기 때문에 굉장히 과거의 데이터를 수집하게 되는 경우도 자주 있습니다. 기술적인 부분만 생각한다면 그런 데이터를 반드시 제공해야한다고 믿고 오버엔지니어링을 하게 될 가능성이 높습니다. 실제로는 사용자가 한 달 전의 데이터가 늦게 들어온 것을 굳이 볼 필요가 없는 경우에도 그 데이터를 제공할 수 있도록 하기 위해 훨씬 비싼 비용을 들여야 운영할 수 있는 시스템을 만들게 되는 것과 같은 식으로요.

Q6. 최근에 진행했던 Airbridge 데이터 엔지니어링 프로젝트 중 한 가지 이야기 해주실 수 있을까요?
A6. DynamoDB의 변경 사항을 별도로 저장할 수 있도록 하는 데이터 파이프라인을 만드는 작업을 진행했습니다. 사실 DynamoDB Stream 기능을 이용해서 Lambda로 구독하면 된다고 간단히 생각할 수 있지만 신뢰성 있는 데이터 수집을 위해서는 의외로 고민할 부분이 많습니다.
예를 들어, Lambda에서 에러가 나면 어떻게 할지, 저장된 데이터는 어떻게 읽도록 하는 것이 효과적일지, 파이프라인의 일부분에 문제가 생겼을 때에 대한 모니터링은 어떻게 할 것인지 등이요. 유실 없이 데이터를 수집하여 제공할 수 있도록 하는 것만큼 중요한 것은 없기 때문입니다.
어떤 때에는 데이터 분석을 위한 작업을 하기도 합니다. Airbridge에서 제공할 또 다른 리포트를 R&D 하기 위해 이런 저런 데이터를 뒤져보는 것이죠. 그러기 위해 각종 데이터 소스로부터 데이터를 읽어올 수 있도록 코드를 짜기도 하고 수 백 줄에 달하는 SQL을 작성하기도 합니다. 그리고 내가 작성한 코드나 Query가 문제 없는지에 대한 고민과 검증하는 과정도 또 다른 백미 중 하나 입니다.

Q7. 비슷한 맥락의 질문이긴 하지만, 가장 기억에 남는 업무는 어떤 업무였나요?
A7. 에이비일팔공에 처음 합류한 뒤 Hadoop 인프라를 직접 구축했던 것이 가장 기억에 남습니다. 그 과정에서 온갖 것들을 학습했는데 작년 4월 쯤부터는 EMR을 이용하여 분산 처리 시스템을 운영하고 있습니다. 몇 달에 걸쳐 학습하고 한 땀 한 땀 구축해나간 시스템을 버리고 EMR으로 전환했던 것입니다. 지금 생각하면 그때 시스템을 잘 전환했기 때문에 더 늘어난 데이터 규모를 감당할 수 있게 된 것이므로 정말 잘한 의사 결정이었지만 당시에는 크게 심란했었습니다. 아무래도 저도 사람이다보니 밤잠을 줄여가며 직접 구축한 시스템을 버린다는게 아쉽지 않을 수가 없었기 때문입니다. 지금 와서는 추억이네요.
그 밖에는 Kafka를 처음 구축하고 프로덕션에 적용하기 위해 달리던 때도 기억납니다. Zookeeper가 뭔지도 모르는데 Kafka를 쓰려면 Zookeeper가 필요하다고 하니 부랴부랴 설치하고 대체 왜 Zookeeper가 필요한지 찾아서 공부하고, 장애 상황을 재현해보기 위해 온갖 실험들도 다 해보고요. 학창시절 과학 실험을 할 때도 그렇게 열심히 실험하고 일지를 쓰진 않았던 것 같은데요.

Q8. 직무에 대한 소신이나 내가 생각하는 이 직무의 비전에 대해 생각해보신 적 있으신가요?
A8. 이미 식상한 말이지만 미래에는 정말 데이터 없이는 아무것도 할 수 없게 될 것이라고 믿습니다. 그러기 위해 데이터를 효율적으로 다룰 수 있는 능력이 꼭 필요하다고 생각하구요. 다만 코딩도 그렇듯 데이터 엔지니어링을 "잘" 하는 능력을 갖추는 것은 정말 쉽지 않은 것 같습니다. 똑똑하게 잘 공부해야할 뿐더러 크게 성장할 수 있는 환경도 필요합니다. 아무리 혼자 잘 공부하고 있다고 한들 하루에 1,000명도 안 되는 유저가 보내는 데이터를 처리하는 환경에서는 분명 겪지 못하는 문제들이 있을 것입니다. 다행히 저는 운 좋게 성장할 수 있는 환경에 서게 됐다고 생각하고 있습니다.
또한, 데이터 엔지니어링과 데이터 사이언스의 경계가 점점 더 허물어지고 있다고 생각합니다. 저만 해도 종종 데이터 분석을 위한 작업을 하기도 하니까요. 그에 따라 능력있는 사람이 더 빛을 발하게 되는 것 같습니다. E-Commerce 서비스를 시작한다고 생각해봅시다. 어떤 사람을 데려오면 그 서비스에서 쏟아지는 온갖 데이터를 잘 수집해서 다룰 수 있을 뿐더러 그 데이터를 분석해서 제품 개발에 기여할 수도 있다고 합니다. 그런 사람을 그냥 둘 수 있을까요?

열일중이신 주홍님

Recruiting Tip

Q1. 어떤 동료를 찾고 있으신가요? 우리팀에 어울리는 사람은 어떤 사람인지 알려주세요.
A1. 스스로에 대한 성장 욕구가 강한 사람입니다. 적어도 지금의 팀에는 그렇지 않은 사람이 없다고 생각하고, 지금 팀의 분위기를 계속 이어나가고 싶습니다. 제게는 같이 일하는 사람이 어떤 사람인지가 가장 중요합니다. 저 뿐만 아니라 다른 팀원 분들도 그렇게 생각할거라 믿고, 정말 함께하고 싶은 사람들이 더 합류할 수 있도록 노력할 것입니다.

Q2. 면접에서 어떤 점을 중요하게 보시나요?
A2. (저도 아직 갈 길이 멀지만) 내가 하는 행동이 도대체 무슨 행동인지 알아야 한다고 생각합니다. 왜인지는 모르지만 스택 오버 플로우에 있길래 그냥 가져와서 쓰는 식인 사람들이 종종 있습니다. 그런 분들을 좋게 보기 어렵다는 것은 굳이 설명하지 않아도 될 것입니다. 다만 복잡한 시스템이 될 수록 내가 하는 행동이 실제로 어떤 것인지 알기 쉽지 않습니다. 하지만 그걸 알아가기 위해 노력하면서 학습하게 되는 것들이 정말 크다고 생각합니다.

Q3. 채용절차 중 특이한 점에 대해 알려주세요.
A3. 저는 서류 평가 뒤에 전화 면접을 먼저 본 뒤 1차 면접을 봅니다. 서류만으로는 지원하신 분을 잘 알고 직무 면접을 보기 어렵다고 생각하기 때문입니다.
또한, 가급적이면 최대한 코딩 테스트를 진행하려고 합니다. 지원자분들께는 다소 피곤한 일이 될지 모르겠지만 우리회사에서 요구되는 역량을 가졌는지, 정말로 구현이 가능한지 등 좋은 사람들과 함께 일 하려는 노력임을 양해해주시면 좋겠습니다. 참고로 코딩 테스트에서 출제되는 문제는 저희 팀에서 실제로 경험 하고 있는 어려움을 축소한 것들 입니다.

Q4. 마지막으로 지원자에게 격려나 도움이 되는 한마디 해주시면 어떨까요?
A4. 격려보다는 제안을 하고 싶습니다. 믿거나 말거나 지금까지 내용 중 제가 거짓으로 쓴 내용은 없습니다. 그리고 그렇게 거짓으로 말하는 것이 필요 없다고 믿기도 하구요. 어차피 같이 일해보면 거짓으로 말했던 것은 금방 들통난다고 생각합니다. 같이 재밌게 데이터 프로덕트를 만들어보고 싶은 분이 있다면 언제든지 제게 연락주세요. 짧은 인생 의미있게 채웁시다!

-

데이터엔지니어 채용 또는 AB180의 더 많은 채용정보에 대해 궁금하시다면
▼▼▼▼▼
https://teamab180.applytojob.com/apply

blog banner pc
blog banner pc