Do not index
Do not index
안녕하세요, 오토피디아 리서치팀에서 인턴쉽 프로그램을 거쳐 현재는 정규직으로 근무 중인 김건우라고 합니다. 저는 2022년 7월 4일부터 리서치팀에서 인턴쉽 프로그램에 참여하였고 2개월 간의 인턴 생활을 마치고 현재는 정규직으로 전환되어 열심히 근무 중입니다. 2개월 동안 정말 새롭고 유익한 활동들을 많이 경험할 수 있었는데, 이번 글에서는 인턴쉽 프로그램 동안 참여한 프로젝트에 대한 회고와 전체적인 회사 생활에 대한 후기를 작성해보려고 합니다.
 

인턴쉽 참여 계기

제가 어떻게 오토피디아에 입사하게 되었는지부터 설명을 드리겠습니다. 저는 올 상반기 네이버에서 진행하는 AI 부스트캠프를 마치고 어떠한 활동을 할까 고민하고 있었습니다. 데이터 엔지니어로서의 커리어를 생각중이었고, 아직 많이 부족하다는 생각에 학교가 한 학기 남은 상황에서 복학을 하여 남은 학업을 마무리 지을지, 다른 활동을 할 지 여러 가지 경우의 수를 검토 중이었습니다. 하지만 지금까지 제대로 된 현업을 경험해 본 적이 없었고, 실제 필드에서는 어떤 식으로 데이터가 모이고, 사용되는지 몸으로 부딪히며 배우고 싶다는 생각이 강하게 들었고 인턴을 경험해보기로 결정하였습니다.
다양한 기업이 리스트에 있었고, 그 때 제가 하고 있는 동아리에서 오토피디아의 인턴 공고를 발견하게 됩니다..!! 일단 가장 먼저 눈에 들어왔던 것은 인턴이 맡게될 프로젝트였습니다. 아래에서도 소개하겠지만 인턴으로서 여러 가지 새로운 경험을 해보기에 너무나도 좋은 프로젝트 주제였고, 무엇보다 데이터 엔지니어로서 경험할 수 있는 업무도 상당 부분 포함되어 있어 굉장히 흥미를 느꼈습니다. 그 밖에도 회사의 여러 구성원들이 작성하신 기술 블로그가 굉장히 인상깊었는데요. 사실 이렇게까지 기술 블로그를 운영하는 스타트업은 굉장히 희귀하다는 생각이 들었고, 구성원 분들을 꼭 한 번 만나뵙고 싶다는 생각이 강해졌습니다. 여러 좋은 인상을 받았고, 바로 망설임 없이 지원을 하였습니다.
지원서는 자기소개서와 포트폴리오 두 가지를 제출하였습니다. 자기소개서에는 저의 신상정보나 경험과 더불어 진행했던 프로젝트들을 간단하게 작성하였습니다. 프로젝트의 자세한 내용은 포트폴리오에 따로 기입했습니다. 사실 그렇게까지 인상깊은 프로젝트는 없다고 생각했는데, 현재 회사에서 쓰이는 기술들(Airflow, Bigquery…)을 직접 활용해보았던 것을 높게 평가해주셨던 것 같아 1차적인 서류는 통과하였던 것 같습니다.
2차 인터뷰는 대면으로 진행되었습니다. 사실 다른 기업들의 면접은 모두 화상으로 진행되었던지라 훨씬 더 긴장되었던 것 같아요. 하지만 면접관으로 있으셨던 케빈, 보성님, 경필님께서 편안한 분위기를 만들어 주셨고 덕분에 긴장을 조금 풀고 면접을 진행할 수 있었습니다.
인터뷰 동안에는 주로 제가 했던 프로젝트에 대해 많은 질문을 주셨습니다. 특히 가장 최근 프로젝트에서 주로 사용하였던 BigQuery나 Airflow과 같이 현업에서 사용하는 기술들을 어떻게 활용하였는지 자세하게 물어보셨습니다. 그 밖에 머신러닝이나 백엔드 엔지니어링과 같은 다양한 경험들에 대해서도 큰 관심을 보여주셨고, 이에 대해 제가 드릴 수 있는 최대한의 답변을 하였던 것 같습니다. 인터뷰는 대략 1시간 반 가량 진행이 되었는데, 저 또한 시간가는줄 모르고 재밌게 진행을 하였던 같습니다. 그리고 얼마 후 최종적으로 합격 통보를 받았고 드디어 오토피디아에서 근무를 할 수 있게 되었습니다!

프로젝트 소개

그럼 바로 본론으로 들어가서 제가 맡았던 프로젝트를 소개하고자 합니다. 인턴으로서 저에게 주어진 첫 프로젝트는 네이버 검색 광고 자동화였습니다. 현재 오토피디아에서는 닥터차 서비스에 대한 마케팅을 위해 네이버에서 파워링크라는 검색 광고를 운영하고 있습니다. 네이버에 검색을 하였을 때 많은 경우 상단에 해당 검색어와 관련된 여러 기업의 광고들이 노출되는 것을 보셨을텐데요. 해당 광고들이 바로 파워링크이고, 오토피디아 또한 닥터차 서비스 홍보를 위한 파워링크 검색 광고를 운영 중에 있었습니다.
네이버에서 엔진오일교환주기를 검색했을 때 보이는 닥터차 파워링크 노출 모습
네이버에서 엔진오일교환주기를 검색했을 때 보이는 닥터차 파워링크 노출 모습
하지만 현재 운영하고 있는 방식에는 크게 2가지 문제점이 존재했는데요. 첫번째는 키워드 관리입니다. 검색 키워드는 광고 그룹으로 묶이고, 광고 그룹들은 하나의 캠페인으로 묶여서 관리되는데, 지금까지는 각 캠페인과 광고 그룹들에 키워드들이 통일된 규칙 없이 산재해있는 상태였습니다. 이 때문에 어떤 키워드가 어느 광고 그룹에 속해 있는지 한 번에 파악하기가 매우 어려운 상황이었습니다.
두번째는 키워드 확장입니다. 마케팅팀에서 가장 문제로 생각하셨던 이번 프로젝트의 핵심 주제이기도 한데요. 지금까지 키워드들은 주로 마케터의 직관으로만 확장이 이루어졌습니다. 광고 운영중에 새로운 키워드가 떠오르면 마케터 분께서 그때마다 하나씩 키워드를 추가하였습니다. 하지만 수동으로 개별 키워드를 추가하는 기존 방식은 없었던 키워드를 새롭게 만들거나 조합하는데 쉽게 한계에 부딪힐 수 있어 지속가능한 키워드 확장 방식이 될 수 없었고, 무엇보다 이렇게 생성된 키워드는 첫번째 문제였던 키워드 관리 측면에서도 한계가 명확했습니다.
저는 이 두 가지 핵심 문제를 풀어나가는 업무를 맡았고, 2달 동안 다양한 방법으로 접근하여 문제를 해결하려고 노력했습니다. 가장 처음은 네이버 검색 광고의 전체 시스템을 파악하는 시간을 보냈습니다. 앞서 언급하였던 캠페인, 광고 그룹과 같은 검색 광고의 구조와 성과 측정 방식과 더불어 마케팅 용어 익숙해지는 시간을 가졌습니다.

네이버 검색광고 구조

간단하게 제가 공부했던 네이버 광고 구조에 대해 설명해보도록 하겠습니다. 대부분의 포탈 광고가 비슷한 구조를 가지고 있기 때문에 아마 다른 광고를 접한 경험이 있으시다면 어렵지 않게 따라오실 수 있을 것입니다. 네이버 광고는 크게 아래의 5가지 구조로 되어있습니다.
  • 계정
  • 캠페인
  • 광고그룹
  • 키워드
  • 소재
계정은 말 그대로 광고를 소유한 사용자의 계정입니다. 이 계정 안에는 여러 개의 캠페인을 만들 수 있는데, 많은 경우 광고 상품을 구분하기 위한 목적으로 생성을 합니다. 광고 그룹은 광고를 진행할 사이트(홈페이지) 등록 및 매체, 지역 등의 광고 전략을 설정할 수 있습니다. 소재를 설정할 수 있는 단위이기 때문에 보통은 관리를 위해 유사한 키워드나 소재를 묶어 생성합니다. 키워드는 파워링크에 노출될 검색 키워드를 의미하고, 소재는 광고그룹별로 부여할 수 있는 광고 문구입니다.
닥터차에서 관리하는 다양한 광고 캠페인
닥터차에서 관리하는 다양한 광고 캠페인

첫번째 접근 — 키워드 클러스터링

이렇게 기초적인 용어 습득 이후에는 본격적인 문제 해결을 시작하였습니다. 가장 먼저 접근한 방식은 키워드 클러스터링이었습니다. 다양한 검색 사이트 API를 이용해서 현재 사용하고 있는 키워드들의 검색 결과들의 하이퍼링크들을 구하고 이를 이용해 클러스터링을 진행하였습니다. 이를 통해 위에서 언급하였던 2가지 문제를 모두 해결하려고 하였습니다.
먼저 키워드 그룹핑에 대한 자동화 프로세스를 만들어 키워드 관리를 간편하게 만들려고 하였습니다. 기존에는 새로운 키워드를 생성하여도 이를 어떤 광고그룹에 투입해야할 지에 대한 문제가 존재하였는데, 클러스터링은 이를 자동화하는데 도움을 주는 역할을 수행하게 하려 하였습니다.
또한 여러 포털 사이트에서 해당 시드 키워드들과 연관된 키워드들을 다시 추출하여 키워드를 확장하려 하였습니다. 이는 복잡한 키워드 확장 방식을 고안하지 않아도 포털 사이트에서 제공하는 연관 키워드가 어느정도의 검색량을 보장해주고, 시드 키워드에 대한 연관 키워드는 해당 시드 키워드와 관련되어 있기 때문에 따로 클러스터링을 진행하지 않아도 된다는 장점이 있었습니다.
클러스터링된 키워드들
클러스터링된 키워드들

두번째 접근 — 조합 템플릿 기반 키워드 생성

하지만 클러스터링 방법은 테스트 이후 여러 가지 한계점으로 인해 최종적으로는 사용하지 않았습니다. 첫번째 이유는 키워드 확장에 용이하지 않다는 것이었습니다. 키워드 확장에 연관 키워드를 사용하는 것은 많은 부분에서 문제가 있었는데요. 우선 대부분의 검색 포털에서 연관 키워드에 대한 API를 제공하지 않아 크롤링으로 이를 대체해야 했습니다. 하지만 수많은 키워드에 대해 모두 크롤링을 하는 것은 사실상 불가능할 뿐더러 크롤링 차단 문제도 존재했습니다.
그리고 무엇보다 가장 큰 한계는 실험 결과 이렇게 추출된 연관 키워드들이 클릭과 노출은 굉장히 많이 일어나는 반면 실제 앱 설치로의 전환이 낮아 목표했던 CPI보다 거의 10배나 높은 결과가 나타났습니다. 위와 같은 한계들 때문에 연관 키워드 확장 방식과는 다른 새로운 방법을 찾아야 했습니다.
이때는 다시금 프로젝트의 본질이 무엇인지, 무엇을 풀고자 하는지를 고민했던 것 같습니다. 이번 프로젝트에서 가장 큰 목표는 효과적인 키워드 확장이었습니다. 하지만 위의 실패에서는 키워드 관리를 우선으로 생각하였던 점이 가장 큰 패착이 아니었나 싶습니다. 클러스터링을 통해 그룹핑을 진행하는 것에만 포커싱을 한 나머지 정작 중요한 확장을 고려하지 않았던 것이 가장 큰 원인이었다고 판단하고 이번에는 효율적인 확장을 먼저 고민했습니다. 그리고 목표를 낮은 CPI를 가진 새로운 키워드를 발굴해내는 것으로 정의하였습니다.
이러한 새로운 목표를 가지고 이번에는 다르게 접근을 시도해보았습니다(자세한 과정은 설명드리지 못하는 점 양해 부탁드립니다). 새로운 키워드를 많이 만들어낸다는 생각으로 여러 메타 키워드를 바탕으로 새로운 키워드들을 만들어냈고, 짧은 주기로 성과가 좋은 키워드는 유지하고, 저성과로 정의한 지표를 보이는 키워드는 자동으로 삭제해가며 유의미한 키워드를 선별해내는데 집중했습니다. 간단한 테스트 결과 기존에는 없던 새로운 키워드를 5000여개 정도 만들 수 있었고, 이렇게 자동으로 생성된 키워드의 CPI 또한 목표했던 1500원 이하를 유지하면서 좋은 결과를 보였습니다. 테스트 결과를 바탕으로 많은 키워드를 등록하여 실험해보는 것이 좋겠다고 생각하였고 Airflow를 이용하여 주기적인 키워드 등록 작업을 수행할 수 있도록 하였습니다.
추가적으로 저희가 미처 생각하지 못한 새로운 키워드에 대해 대비하기 위해 저희 서비스 내에서 검색된 검색 로그들을 이용하여 한달에 한 번씩 새로운 키워드를 추천하는 알고리즘도 개발하였습니다. 특별한 방법을 이용한 것은 아니고 가장 간단하게 개발 및 사용을 해볼 수 있는 서브스트링 방법을 사용했습니다. 이 또한 한달에 한 번 주기적인 실행이 필요하여 Airflow에 Task를 추가하였습니다.
notion image

프로젝트 후기

이번 프로젝트를 진행하면서 정말 많은 것들을 느끼고 적용할 수 있었습니다. 특히 어떻게 프로젝트를 진행하는지에 대해 많이 배울 수 있었던 것 같습니다.
가장 크게 느꼈던 점은 프로젝트를 축소하는 것이 매우 중요하다는 것이었습니다. 여기서 말하는 프로젝트를 축소는 단순히 프로젝트 규모를 줄인다는 이야기가 아닌, 어떤 문제로부터 프로젝트가 시작되었고 이 문제를 해결하기 위해서는 어디서부터 시작을 해야하는지를 결정할 수 있도록 리사이징 하는 것을 뜻합니다. 보통 프로젝트는 굉장히 거대한 목표를 가지고 시작하기 마련인데, 최종 목표를 달성하기 위해서는 실제로 이를 해결하기 위한 액션플랜들이 필요합니다.
작은 행동이 모여 큰 목표를 만들듯이 프로젝트에서도 하나의 목표를 달성하기 위한 액션 플랜들을 잘 조직하여 수행하는 것이 매우 중요합니다. 특히나 이번 프로젝트는 꽤나 크고 추상적인 목표로 시작하였기 때문에 프로젝트 리사이징과 구체화가 더욱 더 중요했습니다. 저 또한 프로젝트를 시작하고 꽤 긴 시간동안 제대로 된 방향성을 잡지 못해 아까운 시간을 보내게 되었는데, 장기적인 프로젝트 미팅을 진행해가며 점차 문제의 본질에 집중하고 제가 해결할 수 있는 최소한의 범위로 문제를 좁히니 실행할 수 있는 여러 방법이 보이게 되었던 것 같습니다.
또한 프로젝트를 수행하는 동안 신속하게 배포하고 개선 가능한 프로세스가 얼마나 중요한 요소인지도 많이 깨닫게 되었는데요. 기존에는 제가 생각하기에 먹힐 것 같은 방법을 꼼꼼하게 검증하며 한번에 실제 프로덕트에 적용하는 것이 중요하다고 생각하였습니다. 하지만 비즈니스에서는 내가 맞다고 생각했던 것들이 실제 서비스를 해보면서 다른 결과를 낼 수도 있는 상황이 비일비재하기 때문에 이러한 방법은 조금은 위험하다고 느꼈습니다. 이번 프로젝트에서도 오랜 심사숙고 끝에 내놓은 아이디어보다 심플하면서 확실히 검증이 안된 방법이지만 이를 빠르게 배포를 하고 피드백을 받음으로서 오히려 더 빠르게 좋은 성과를 만들어 낼 수 있었다고 생각합니다.

마치며

원래 해당 프로젝트는 7~9월까지 약 2달 안에 모두 마무리를 지을 예정이었는데 정말 많은 우여곡절 끝에 약 3달 만에 완성이 되었습니다. 이번 프로젝트를 통해 작은 부분이지만 오토피디아 검색광고 부분에서 자동화 프로세스를 적용해 볼 수 있었던 아주 값진 경험이었습니다. 또한 저 개인적으로도 개인 프로젝트를 통해서는 알 수 없는 현업의 다양한 문제를 만나보고 이를 극복해보는 연습을 할 수 있었던 것 같습니다.
앞서 말씀드린 것처럼 저는 현재는 정규직으로 전환되어 오토피디아에서 데이터 엔지니어로서 일하고 있습니다. 이제는 인턴 때처럼 저에게 주어진 일에만 집중하는 것이 아닌 더욱 다양한 분들과 협업을 진행하고 있는데, 더 좋은 서비스를 만들기 위해 항상 열정 넘치는 토론과 지적 탐구를 추구하시는 모습들에 많은 영감을 받고 있습니다.
새롭고 의미있는 서비스를 만들기 위한 오토피디아의 모습이 더 궁금하시다면 공식 채용 페이지를 통해 더 자세한 정보를 보실 수 있습니다.
긴 글 읽어주셔서 감사하고, 다음에 더욱 흥미로운 글로 만나요!

오토피디아 채용에 관한 모든 것을 준비했어요

첨단기술을 통한 모빌리티 혁신, 함께 하고 싶다면?

채용 둘러보기

글쓴이

김건우
김건우

Data Engineer

    0 comments