엔지니어링 프로젝트 임팩트 산정하기

Chanmin Park
원티드랩 기술 블로그
8 min readDec 21, 2023

안녕하세요, 원티드랩 데이터팀 Data Engineer 박찬민입니다. 어느덧 합류한지도 1년이 넘었습니다. 그 동안 크고 작은 다양한 프로젝트를 진행했고, 성과를 측정하기 위해 각 작업의 임팩트를 계산해봤습니다.

원티드랩에서는 모든 일을 진행할 때 작업에 대한 임팩트를 원화 단위의 가치로 환산해 산정해야합니다. 다른 부서의 경우 숫자로 성과를 계산하는 것이 익숙할 때가 많습니다. 예를 들어, 마케팅 부서는 ROAS를 계산하는 방법도 여러 가지이고 관련한 툴도 다양하죠. 하지만 개발자나 엔지니어가 자신이 한 일의 가치를 산정하는 것은 꽤나 막막할 수 있습니다. 왜냐하면 하는 일이 숫자로 딱 나타나지 않기 때문이죠.

이 글은 데이터 엔지니어로서 지난 한 해 동안 개발해온 것의 임팩트를 산정하는 과정을 rough 하게 정리해본 글입니다. 직무, 회사에 따라 그리고 사람마다 경험이 다르니 이 글에서의 로직을 똑같이 적용할 수는 없겠지만, 제 예시를 통해 몇가지 접근법을 소개해드리니 임팩트 산정에 어려움을 겪는 모든 분들께 조금이나마 도움이 되었으면 좋겠습니다.

올해의 프로젝트 소개

제게 지난 한 해의 메인 에픽은 ‘Weaver 프로젝트’ 입니다. 위버를 한 마디로 표현하면 다양한 문제를 해결하기 위한 데이터 팀의 Apache Kafka 운용 프로젝트 입니다. 위버 도입 전까지 저희는 대부분의 데이터를 배치로 처리하고 있었고, 실시간성이 필요한 사용자 행동 데이터의 경우 외부 툴(amplitude)에 의존해왔습니다.

실시간 인프라의 부재를 크게 느껴 여러 조사를 해보았고, Apache Kafka(실시간으로 이벤트를 처리할 수 있는 데이터 스트리밍 플랫폼)가 적합하다는 판단 하에 도입을 하였습니다. 위버에 대해서는 아주 많은 얘기를 할 수 있지만, 이 글은 프로젝트 자체에 대한 내용을 다루려는 것이 아니기 때문에 자세한 설명은 다른 기회를 통해 하도록 하겠습니다.

올해 위버의 도입으로 해결한 주요 문제는 아래와 같습니다.

  1. 이벤트: 수많은 외부 sdk 사용 → 단일 endpoint로 통합
    실시간 인프라가 없을 때는 sdk를 통해 사용자 행동 데이터를 분석 플랫폼으로 전송하였습니다. 하지만 다양한 툴을 점차 도입하게 되면서 이벤트 데이터는 점점 산재되고 클라이언트의 이벤트 전송 코드는 길어졌습니다.
    위버 도입 이후에는 모든 이벤트를 일단 카프카로 전송해 중앙으로 모은 후, 그 곳에서 각각의 툴로 전송하는 방식으로 바뀌었습니다.
  2. CDC를 실시간 이벤트로 전환
    CDC(change data capture)는 데이터베이스 추가, 삭제, 수정 등의 변경 이력를 감지하는 기술입니다. 기존에는 이를 배치로 처리해 history 기록 이상으로 사용하기 어려웠습니다. 하지만 위버를 통해 row 변경 이력을 이벤트 처럼 사용할 수 있게 되었습니다.
    현재 이 기술을 사용하는 영역은 매우 다양합니다. 대표적으로는 이력서 변경사항을 실시간으로 수집하는 기능과, 검색 시스템 색인을 업데이트 하는 기능 등이 있습니다.

임팩트 산정

첫번째 방법은 개발한 프로젝트로 인해 절약되는 개발 시간의 기회 비용으로 임팩트를 산정하는 것입니다.

위에서도 말씀드렸지만 원티드에서는 모든 임팩트를 원화 가치로 계산합니다. 구성원의 평균 근무 시간당 가치를 N원으로 가정해봅시다(이것은 원티드에서 분기마다 매출, LTV 등을 통해 계산하는 값).

SDK → 단일 endpoint로 통합:
현재 클라이언트 개발자들이 amplitude 등 이벤트에 쏟는 시간은 대략 전체 업무의 10% 입니다.

위버를 사용하면 여러번 해야할 이벤트 작업을 한번만 해도 됩니다. 작업 소요시간이 1/2로 줄어든다 가정하겠습니다.

  • 시간당 현재 비용을 계산해보겠습니다. 작업자는 스쿼드 별 iOS, Android, web 3명입니다. 위버에 영향을 받는 스쿼드 및 팀 개수는 8개 입니다.
    – N * 3 명 * 8 스쿼드 * 10% = 2.4N
  • 현재 연간 총 이벤트 삽입 비용은 위에서 계산한 시간당 비용에 영업일과 근무 시간을 곱하면 구할 수 있습니다.
    – 2.4N * 8 시간 * 252 영업일 = 4838.4N
  • 총 절약비용은 아래와 같이 구하게 됩니다.
    – 4838.4N * 50% (소요시간 단축 비율) = 2419.2N

구성원의 평균 근무 시간당 가치 N을 만약 ₩100,000 으로 가정해보겠습니다. 그럼이벤트 단일 endpoint 화로 인한 임팩트는 연 ₩241,920,000 가 나옵니다.

CDC 실시간 이벤트 전환:
위버가 아니었다면(지금 당장은 어떻게 할 지 머릿속에 떠오르지도 않는) 다른 방식을 통해 구현해야 하는 기능입니다. 리서치부터 구현까지 절약한 시간 비율을 어림잡아 1/2 이라고 가정하겠습니다.

이 기술을 이용하는 스쿼드/팀은 현재 5개이며 평균적으로 작업에 연간 2 스프린트를 소모합니다. 각 팀 별 개발자는 2명입니다.

  • 시간당 현재 비용을 계산해보겠습니다.
    – N * 2 명 * 8 시간 * 10 영업일(1스프린트) * 2 스프린트 * 5 스쿼드/팀 = 1,600N
  • 총 절약 비용은 아래와 같습니다.
    – 1,600N * 50% (소요시간 단축 비율) = 800N

위와 마찬가지로 N을 ₩100,000 이라고 가정한다면, CDC 실시간 이벤트 전환을 통해 창출한 임팩트는 연 ₩80,000,000 이 됩니다.

두번째 방법은 유사한 서비스를 운영하는 회사와 비교해 임팩트를 산정하는 것입니다.

이벤트 관련 SaaS를 제작하는 A사의, 기사를 참고하였습니다. 사내에서 위버와 비슷한 서비스를 개발하는 팀에 대한 기사입니다.

내용을 보면 백엔드 엔지니어 19명, 데이터 엔지니어 7명이 풀타임으로 프로젝트에 매진한다고 합니다. 그리고 해당 플랫폼을 이용할 경우 내야하는 금액은 연간 ₩25,000,000 입니다.

  • A사에서 비슷한 서비스를 개발하기 위한 비용은 아래와 같이 계산합니다
    – N * (19 + 7) 명 * 8 시간 * 252 영업일 + ₩25,000,000 플랫폼 지불 비용 = 52,416N + ₩25,000,000
  • 원티드에서는 현재 4명의 데이터팀 구성원(1 리더, 2 엔지니어, 1 거버넌스 매니저)이 위버를 작업중입니다.
    – N * 4(1 리더, 2 엔지니어, 1 거버넌스 매니저) * 8 시간 * 252 영업일 = 8,064N
  • 위에서와 동일하게 N을 ₩100,000으로 잡아보겠습니다. 그렇다면 SaaS 서비스 내재화를 통해 산정할 수 있는 임팩트는 아래와 같습니다.
    – 52,416N — 8,064N + ₩25,000,000 = ₩4,460,200,000 (약 45억원)

임팩트가 매우 크게 나왔습니다. 물론 A사에서 만드는 서비스와 저희 4명이 만든 서비스는 완성도 등에서 차이가 있습니다. 그만큼 완성도 높은 서비스를 구축하기 위해서는 저희도 지금보다 훨씬 많은 리소스가 필요할 것입니다. A사의 서비스는 수백개의 기업이 돈을 주고 사용하는 서비스이고, 위버는 원티드 내부에서만 사용하는 툴이기 때문에 당연한 부분입니다: 현재 원티드에 필요한 기능들을 충분히 제공하고, 필요하지 않은 기능들은 제외함으로써 실리를 추구했습니다.

만약 리소스를 더 많이 투자해 완성도를 높인다면 위버 역시 외부에 판매할 수 있고, 거기서 얻는 수익도 가치 산정에 영향을 주니, 아마 계산 방법이 지금과는 또 많이 달라질 것이라 생각합니다.

세번째 방법은 서비스 구현시 인프라 사용량 절약을 통한 임팩트를 산정하는 것입니다.

위버 컨슈머 구현 시 아마존 ECS Fargate를 이용하였습니다. 일반적으로 컨슈머는 항상 떠있는 상태로 메세지를 소비합니다. 하지만 저희의 경우 특정 컨슈머는 상시로 떠있을 필요가 없어 1시간에 한번 씩 배치로 처리하였습니다.

ECS Fargate 비용은 시간당 대략 0.01 USD 입니다. 그리고 배치 방식을 도입한 컨슈머는 총 32개 입니다. 카프카의 파티션 당 서버 instance가 하나씩 붙게 되는데, 평균 파티션 개수는 3개 입니다.

  • 상시로 서버 instance가 떠있는 경우 시간당 비용은 아래와 같습니다.
    – 시간당 비용: $ 0.01 * 32 (컨슈머 수) * 3 (평균 파티션 개수) = $ 0.96
    – 연간 비용: $ 0.96 * 24 *365 = $ 8,409.6
  • 고민하여 작성한 배치 코드는 1시간에 한번, 1분 동안만 실행합니다. 즉 상시 서버에 비해 1/60 사용량이 책정되는 것입니다. 그래서 총 절약하게 된 금액은 아래와 같습니다.
    – $ 8,409.6 — (8,409.6 * 1/60) = $ 8,269.44

환율을 달러 당 ₩1,300 으로 가정한다면 인프라 사용량 절약으로 발생한 임팩트는 ₩10,750,272 이 됩니다.

마무리하며..

데이터 엔지니어링 팀에서 작업한 프로젝트 중 하나인 “위버”의 임팩트를 계산해 보았습니다. 사실 이렇게 글을 적었지만, 여전히 숫자로 딱 나타나지 않는 일의 가치를 평가한다는 것은 어렵습니다. 또 원티드랩은 원화 단위로 임팩트를 산정하는 특유의 문화 덕분에 N(구성원 평균 근무시간당 가치)의 값이 이미 구해져있지만, 많은 경우 N을 구하는 것 부터가 challenge 일 수 있습니다.

하지만 희망적인 부분이라면,, 위의 과정을 거치면서 느낀 임팩트 산정의 핵심은 결국 작업에 들어가는 리소스를 파악하고 이 작업이 해결하는 영향 범위를 파악하는 것이었습니다.

이 두 가지는 평소에 일하며 “작업이 시간이 얼마나 걸렸는지, 이를 통해 어떤 문제를 해결했는지”를 늘 생각한다면 어느정도 알 수 있다고 생각합니다.

그래서 이를 염두하고 생각하는 습관 들이는 것을 첫번째 스텝으로 잡는다면, 그 이후의 방향성도 조금이나마 잡힐 것이라 자신있게 말씀드려봅니다.

--

--