당근 중고차는 국내 중고차 서비스 직거래 1위 플레이어로써 당근의 비전에 가장 큰 기여를 할 수 있는 제품이에요. 유저간의 직거래에 있어 신뢰를 담보할 수 있도록 제 3자 에스크로를 통해 사기 및 부정거래를 방지할 수 있는 안심직거래를 구현했고 차량의 진단 정보를 활용해 시장의 정보비대칭을 해소할 수 있는지에 대한 실험을 계획하고 진행했어요. 또한 매물 수 증가를 목표로 하며 많은 매물이 모여 매물 검색 비용의 감소와 네트워킹 효과를 기대하고 설계했어요.
판매자 차량 등록 퍼널 개선
- 글쓰기 사진 업로드 UX 개선
- 매물 정보에 가장 중요한건 사진이란 것을 여러가지 실험과 정량적 데이터로 증명했어요.
- 차량 사진을 규격, 크기, 순서에 맞게 최대한 많이 업로드할 수 있는 UX를 고민하고 실험했어요.
- 글쓰기 리팩토링
- 차량 등록 퍼널은 커머스와 비슷하게 전형적인 퍼널깎기라고 볼 수 있어요.
- 글쓰기 비즈니스 로직이 UI/UX에 종속되어 있어 레이어를 나눠 도메인 / UI 로직을 분리하고 각 컴포넌트의 애니메이션, 조건부 노출 동작을 추상화해서 해결했어요.
- 실험을 위한 다른 방식의 글쓰기에 가져다쓸 수 있도록 로직을 모듈화 해서 이후 추가 실험에 있어 유사한 글쓰기 퍼널 빠르게 확장 가능한 구조를 확보했어요.
- 차량 등록 퍼널은 커머스와 비슷하게 전형적인 퍼널깎기라고 볼 수 있어요.
- zod 기반 유효성 검증 선언적 관리
- 복잡한 폼 유효성 체크 로직을 스키마 기반으로 선언적으로 분리했어요.
- 런타임 타입 검증과 스키마로 정적 타입 추론을 동시 확보해 오차를 제거했어요.
구매자 퍼널 개선
- 검색 개선
- 검색어를 입력하지 않을 때는 제조사-모델로 이어지는 디렉토리 기반 검색이 진행되고, 검색어를 입력할 시에는 세부모델을 바로 짚는 자연어 검색이 한 페이지에 구현되어 있어 복잡성이 매우 높았어요.
- 적절하게 디렉토리 검색과 키워드 검색의 페이지를 분리하고 유저 경험 지표에는 차이가 없도록 조정했어요.
- 자체구현한 엘라스틱서치를 사용하고 있어 통합 검색 플랫폼에 대한 이전 처리를 진행하며 여러가지 검색 필터를 고도화 했어요.
- 동네범위 필터 UX 전면 수정 (전국 확장)
- 기존에는 1~5단계 슬라이더로 행,정,동을 정해진 범위에 따라 추가해주었고 유저에게 어떤 동네에 속했는지 줄글로 알려주고 있었어요. 따라서 유저는 자신이 어떠한 동네에 속하는지 알기 어렵고 범위가 어디까지인지 한눈에 파악할 수 없었어요.
- maplibre 기반의 당근 지도와 turf 폴리곤을 통해 위치 기반 nKm 다각형 렌더링을 구현했어요.
- 다각형 → h3 해상도 및 인덱스로 변환 및 저장해 서버와 교환하도록 수정했어요.
- 사용자는 내가 어떤 범위까지 매물을 보고 있는지 지도로 직관적으로 알 수 있고, 꼼꼼한 마이그레이션을 통해 결과 지표가 크게 향상됐어요.
- 중고차 전국 확장
- 지역 nKm까지만 가능하던 중고차 직거래를 전국으로 오픈했어요. 트래픽이 배수로 늘어났고, 그 때문에 생겨나는 문제들을 해결했어요.
안심직거래
- 중고차 직거래는 기존 중고거래와 달리 평균 거래 금액이 매우 높기 때문에 불법, 사기행위 발생시 플랫폼이 부담해야할 리스크가 매우 증가하고, 당시 언론의 분위기 또한 당근마켓 직거래를 예의주시하고 있었어요. 때문에 개인간 거래에있어 사기를 예방할 수 있는 은탄환이 필요했어요.
- 에스크로를 통한 제3자가 금액을 예치받고 중간에서 조율하는 안심 직거래 서비스를 구현했어요.
- ts-pattern 도입으로 Exhaustive Pattern Matching 적용해 다양한 상태를 대응했어요.
- 상태 추가/삭제 시 컴파일 타임에 누락된 케이스 감지
- 런타임 에러 사전 방지 및 코드 가독성 향상