[프로젝트 후기] 2월에 입사해서 3개월 이상 리소스를 때려 박은 프로젝트가 얼마전 드디어 종료. 입사하고 백엔드를 거의 단독으로 해치운 첫 중규모 프로젝트다. 이제 네이버 쇼핑라이브 숏 클립을 네이버 동영상 검색과 네이버 쇼핑 상품 상세 페이지에서 만나보세여. -- 네이버 쇼핑라이브에서 판매자들이 방송하는 경우 기본적으로 영상의 길이는 1시간 이상이며, 한 방송에서 여러 개의 상품을 소개한다. 하지만 구매자들이 네이버 쇼핑, 혹은 스마트 스토어에서 어떤 상품 구매 위해 해당 상품이 소개된 1시간짜리 라이브 방송 전체를 다시 보거나, 방송에서 구매 희망 상품이 나오는 구간을 찾을 리가 없다. 일단 그러기엔 너무나 귀찮고, 손이 많이 가며, 내가 사려는 상품을 더 자세히 알아보기 위해 쇼핑라이브를 뒤져볼 생각으로 이어지지 않는다. 그래서 내가 입사하기 전부터 1시간짜리 긴 방송 영상을 필요한 구간만 짧게 잘라서 구매 희망자에게 능동적으로 제공해 전환율과 구매율을 높일 방법에 대한 니즈가 있었던 것 같다. 그리고 관계자들은 생각보다 이 스펙이 크지 않을 것으로 예상하고 입사 2개월쯤 된 나에게 이것을 던졌습니다...? 네린이이자 자바린이인 나는 기존에 없던 신규 비즈니스 도메인 영역을 맡게 되었다. 기획에서 부터 올라온 스펙이 아니었고, 나름 bottom-up 으로 아이디에이션 되었던 스펙이었다. 즉, 최종 결과물에 대한 기획이나 디자인 가이드가 존재하지 않았고, 나름 비즈니스적 측면에서 이런 도메인이 추가되었을 때, 나중에 어떤식으로 확장되어서 써먹을 수 있을지 고민이 필요했다. 우선 추상적으로 기재된 스펙을 파악해서, DB 스키마부터 구상했고, 이 비즈니스 모델이 나중에 어떻게 확장 될 수 있을까를 나름 고민해가며 나름의 설계를 마쳤다. N사 입사 전까진 3년 정도 RDBMS 관련 작업을 안 해본 터라 나름 신선했고, 옛날 생각나서 재밌었다. 다음으로는 기존의 영상에서 짧은 영상을 추출하기 위한 방법을 궁리했다. 다행히 우리에겐 ffmpeg 라는 좋은 친구가 있었고, 특정 방송에서 어느 구간에 어떤 상품이 소개되었는지 N사의 AiTEMS 로 추출된 좋은 데이터셋이 있었다. 이것들을 조합해서, 긴 영상에서 상품별로 짧은 영상을 추출하는 배치를 작성할 수 있었다. 근데 막상 배치를 돌려보니, production 환경에서 쏟아져나오는 물량을 모두 소화할 수 없었다. 그래서 최근에 이걸 배치에서 kafka consumer 로 전환한 것은 안 비밀. 짧은 영상들을 스토리지와 DB에 저장하기 시작했고, 이것을 어떻게 써먹고, 사용자에게 노출할 수 있을지 구체적인 서비스 기획들이 논의되기 시작했다. 이제 데이터를 서비스 단계에서 잘 가져다 쓰라고 API 를 제공하거나, 검색 엔진에 연동을 시키는 단계다. 다행히 검색 엔진 연동은 팀 동료분이 잘 해치워주셨다. 하지만 API 제공은... N사 쇼핑의 트래픽은 생각보다 어마무시에서 Cache Layer 역시 어마무시하게 발라줘야 했다. 대충 뒷단에 3개, 앞단에 2개 정도 캐시 레이어를 발라주고, 여기서 전부 miss 가 터졌을 때 slave rdb 를 조회하도록 구성하니, 그제야 안심이 되었다. 돌이켜보니 전형적인 빙산의 일각 형태의 프로젝트였다. 프론트에서 보이는건 한 줄 짜리 클립 리스트 뿐이지만, 이 한 줄을 표시하기 위해 뒷단에서 데이터를 말아주는 수많은 무언가를 만들어야했다. 데이터들의 정합을 보장하고, 노출 조건을 판단하는 무언가와, 기존의 레거시를 걷어내기 위한 수많은 삽질이 있었고, 꽤나 많은 코드와 아키텍처들을 구현했지만 일일이 설명하기는 귀찮고, 그냥 나는 다음 프로젝트 들어가기 전에 싸질러놓은 코드들 리팩터나 쳐야겠다. 네린이, 자바린이었던 나 혼자 이걸 쳐내려면 분명 피똥을 쌌겠지만, 다행히 팀 내에 쩌는 동료들이 많아서 다행이었다. 이곳에 와서 느낀 것은 아 진짜 세상에는 개발 잘하는 사람들이 너무나 많구나. 나보다 경험이 많은 개발자는 말할 것도 없고, 경험이 적은 개발자 동료에게도 감탄하며 배울 때가 많다. 연차는 늘어만가는데 부족함만 느끼며 통탄하는 요즘이다. 그래도 재밌었다. 한정된 리소스를 가지고, 맨 바닥에서부터 비즈니스를 결정하고, 결정된 비즈니스를 도메인으로 구현하고, 구현된 무언가를 인프라에 올리고, 기존의 거대한 시스템에 내가 만든 무언가를 연동시키는 작업은 언제나 짜릿하다. 이슈 하나하나를 쳐낼 때는 느끼지 못하지만, 나중에서야 돌아보면 그래도 이 경험들이 나의 비즈니스 이해도나 히스토리, 개발 도메인 지식을 높였다는 느낌에 기부니조아. 아무튼 이제 상품들의 짧은 클립 영상들이 사용자나 구매 희망자에게 좀 더 능동적으로 노출된다. 구매하려는 상품을 판매자가 들고 나와서 직접 소개하는 영상이 있다? 이건 바로 클릭 각이지. 구매자는 구매하려는 상품을 더 자세히 살펴볼 수 있고, 판매자는 구매율을 높이고, 아직 라이브 방송 안하는 판매자의 신규 라이브 진행 역시 증가하고, 나의 철밥토ㅇ... 등등 좋은 선순환이 일어나기를 기대한다. 그러니깐 이제 네이버 쇼핑라이브 숏 클립을 네이버 동영상 검색과 네이버 쇼핑 상품 상세 페이지에서 만나보세여.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2021년 9월 6일 오전 3:43

댓글 0