중고차 서칭을 위한 엔카 크롬 확장앱 개발기

2026-03-09


demo_image1

엔카 웹사이트에서 사용할 수 있는 크롬 확장앱을 개발했다. 이 앱은 기존 엔카에서 중고차 매물의 정보(보험이력, 성능이력 등)를 일일이 찾아보지 않고 한 화면에서 모두 확인할 수 있도록 하여 수고로움을 덜어낼 수 있다. 또한 각 정보들을 토대로 0~100점 범위로 점수를 산정했다.

Github - encar-scoring-chrome-extension

배경

최근 엔카에서 중고차를 많이 찾아보고 있다. 지금 당장 구매할 계획이 있는 것은 아니지만 나중에 사게될 날을 기다리며 예습한다는 느낌으로 찾아보고 있다.
우리가 흔히 알고있는 소나타,아반떼,그랜져 이외에도 다양한 차종을 알아가는게 재미있기도 하고, 그 차량들이 오랜 세월동안 지나온 스토리를 유추해보기도 한다. 무엇보다 가장 재미있는 요소는 '내가 지금 차를 고른다면, 이 차를 살 것인가?' 라는 가상의 질문을 던져보는 것이다.

중고차의 상태를 가늠할 때 고려해야할 요인이 여러가지 있다. 최근에는 온라인 커뮤니티와 유튜브를 통해서 나같은 일반인들도 중고차를 평가하는 안목을 기를 수 있게 되었다. 그 안목을 가지고 엔카나 케이카(중고차 거래 플랫폼)에서 괜찮은 중고차를 열심히 서칭하면 된다.

중고차를 고를 때 가져야할 가장 중요한 마음가짐은, 싸고 완벽한 매물이란 없다는 사실이다. 상태가 좋은 중고차는 거의 신차급으로 비싸며, 가격이 저렴한 중고차는 어딘가에 하자가 있다는 소리다. 이 사실을 유념하고 언제나 '가격대비 상태가 적당히 괜찮은 차'를 고른다는 개념으로 접근하자.

중고차를 판단하는 기준

그렇다면 어떤 기준으로 중고차를 골라야 할까? 달리 표현하자면, 어떤 요인이 있는 중고차는 피해야할까? 나(확장앱)의 경우에 엔카에서 조회할 수 있는 정보 중에서 다음과 같은 요인들을 추출하여 판단하기로 했다. 이 판단 기준은 각종 온라인 커뮤니티(카바조, 디씨 중고차갤러리, 에펨 코리아)와 유튜브 채널(닥신TV)에서 반복적으로 언급한 기준들을 종합한 결과이다.

모델/트림/옵션/연식(=신차가)

중고차로 잘 나오는 매물은 정해져있다. 대중적이면서 호불호가 없는 어벤져, 소나타, 그랜져, 레이 등 대체로 국산차 중에서도 중저가 모델이다. 이런 차량들은 공급과 수요가 모두 많은 차량이고 대체로 감가 방어가 잘된다. 즉 살 때 조금 비싸게 사더라도 나중에 다시 되팔 때, 크게 감가를 맞을 걱정 하지 않아도 된다. 반대로 이보다는 좀 희귀한 모델이거나 대형 고급 세단 차량이 감가를 크게 맞는다.

주행거리

주행거리가 당연히 많아질수록 차량이 부하를 많이 받기 때문에 가격이 낮아짐. 특히 20만 킬로미터가 넘어가는 차량의 경우는 복불복이다. 당장 운전하는 데에는 지장이 없을지라도 어딘가 하나 고장이 나면 정비비 폭탄을 맞을 수 있다.

보험 이력

보험 이력이 0건이라면 가장 베스트지만, 설령 이력이 있다 하더라도 신차가의 20% 미만 수준의 보험금액(수리비)은 크게 신경쓰지 않아도 된다. 밑에서 설명할 성능점검기록표를 같이 보면 됨. 만약 보험 이력 비공개 해놓은 차량은 거를 것

성능점검기록

외부 패널 한두개 정도 교환은 괜찮다(무사고로 간주). 다만 프레임에 손상이 갔다면 걸러야한다. 엔카진단 받지 않은 차량도 감점대상이다. 성능 점검 비공개 해놓은 차량은 거를 것

용도 변경이력(렌트/영업)

렌트이력, 영업이력 차는 일단 걸러야 한다(주인의식 없이 차를 막 다룰 가능성 높음)

소유주 변경이력

소유주 변경이력 0회인 차량은 1인 신조차량으로 대체로 차량 상태가 양호할 가능성이 높다. 1~2회까지도 무난하지만, 3회 이상부터는 차량의 주인이 자주 바뀌었다는 의미로 상태가 안 좋을 가능성 높다.

딜러 정보

엔카에서 오래 활동한 딜러이거나 누적 판매대수가 1000대 이상으로 활발하게 활동하는 딜러라면 최소한의 매물 퀄리티는 믿을 수 있다고 한다. 다만 이 요인은 사람마다 의미가 있다는 사람도 있고 별 상관 없다는 사람도 있다.

기존 엔카 UI/UX는 불편하다

위에서 설명한 정보를 확인하기 위해서 유저가 엔카 웹페이지에서 해야할 행동이 너무 많다. 각 정보들은 팝업창에서 파편화 되어있으며 그렇게 눈에 띄지도 않는다. 전부 다 확인하려면 매물 하나당 1분은 걸린다. 만약 내가 검토할 차량 후보군이 100개라면 100분을 소요해야 한다는 의미이다.
내가 느끼기론 현재 엔카 웹사이트의 UI/UX는 위 정보를 얻기에 상당히 불편한 상태다. 물론 엔카도 이 사실을 모르진 않을 것이다.

엔카는 2000년에 설립된 엄청나게 오래된 서비스이며, 웹페이지도 그만큼 오래된 레거시 덩어리이다. 이 레거시에 익숙한 유저들이 많을테니 함부로 갈아 엎을 수는 없을 것이다.
그치만 성질 급한 사람에게는 엔카 웹페이지가 너무나 답답하고 비효율적이라고 느껴졌다. 그리하여 '매물의 정보들을 한눈에 파악하고 싶다'는 생각으로 이 확장앱을 개발하게 되었다.

점수 계산 기준

그리하여 최종적으로 만든 rule-based 점수 기준은 다음과 같다. 점수 계산 기준은 내가 계속 써보면서 수정해나갈 예정이다.

항목 배점 평가 기준
가격 25점 동급 매물 시세 중앙값 대비 비율로 산정 (동급 5대 미만 시 연식별 감가율 기반 추정)
사고/보험이력 15점 보험 지급금의 신차가 대비 비율로 산정, 다건 사고 추가 감점, 정보불가기간 감점
성능점검 15점 골격(A·B랭크)·외판(1·2랭크) 교환·판금·부식 항목별 차등 감점
렌트이력 20점 렌트 이력 있으면 0점, 용도변경 이력만 있으면 6점, 없으면 만점
주행거리 10점 총 주행거리 15만km 초과 시 구간별 감점, 연평균 5천km 미만 과소주행 감점
소유주이력 15점 변경 0회 만점 → 1회 -20%, 2회 -47%, 3회 -67%, 4회 이상 0점

그리고 이 점수를 토대로 등급을 매긴다.

등급 점수 의미
S 95점 이상 최상급
A+ 90~94점 매우 우수
A 80~89점 우수
B 70~79점 양호
C 60~69점 보통
D 41~59점 미흡
F 40점 이하 불량

실제로 엔카에서 확인을 해보면 B~D등급이 가장 많이 분포되어 있으며, 윗 등급으로 갈수록 매물의 비율이 적어지는 것을 확인할 수 있다.

demo_image2

AI Chat 기능(by OpenAI)

demo_image2

점수만으론 확신이 들지 않을 때, OpenAI에게 현재 매물에 대한 질문을 던져서 조언을 구하는 기능도 추가했다(단, OpenAI API KEY를 팝업창에서 입력해야 동작한다). 모델에게 페르소나 프롬프팅으로 '중고차 매매 전문가'라 assign 해두고, 위에서 추출했던 매물의 정보를 첨부하여 구매에 대한 의견을 물어보는 질문을 던진다(편향되지 않은 답변을 위해 확장앱에서 계산한 종합 점수는 정보에 넣지 않았다).

내가 여러 매물로 실험해본 결과, 대체로 종합 점수와 유사한 조언을 해주었다. A등급 이상은 구매를 추천했으며, B~C 등급은 고려할 필요가 있고, D 등급 이하는 구매 하지 않을 것을 당부했다. 그렇게 판단한 근거도 제시해주며 이 외에 차량의 특성에 맞춘 진단(차량별 고질병, 옵션 등)도 해주기 때문에 나름 요긴하게 쓰일 것 같다.

추천하는 확장앱 사용 방법

일반적으로 중고차를 서칭하는 방식은 크게 2가지가 있다.

1. '차량 모델'이 가격보다 더 중요한 경우

자신이 사려는 모델은 확고하게 정해놓은 상태이며, 이 중에서 가장 괜찮은 매물을 서칭하는 경우다.

이런 경우에는 엔카에서 제공하는 차량 모델별 필터를 적용하여 해당 차량만 나오도록 한 뒤, 정렬 순서를 '가격 낮은 순'으로 변경한다.
이렇게 하면 가격이 낮은 차량이 먼저 나오므로 대체로 사고이력이 많거나 주행거리가 많아서 등급이 낮은 C,D,F등급 매물이 상당수일 것이다. 이런 매물들은 주저없이 거르도록 하자. 거르다 보면 간혹 가다가 B 등급 이상인 매물을 찾을 수 있다. 이런 매물 5개~10개 정도 저장해놓은 뒤에 이 중에서 가격대비 차량 상태를 저울질해서 정하면 된다.

2. '가격'이 차량 모델보다 더 중요한 경우

모델은 크게 상관없지만 가용 예산이 빠듯한 경우이다.

이런 경우에 엔카에서 제공하는 매물 금액 구간 필터를 적용한 뒤에, 확장앱에서 제공하는 점수 구간 필터를 적용하면 된다. 처음에는 90점 이상 높게 설정해보았다가 마땅한 매물이 안나오면 점수를 조금씩 낮춰가면서 마음에 드는 매물을 찾아보면 된다.

추후 계획

현재 이 확장앱을 크롬 웹스토어에 출시하지는 않았기 때문에 설치하기 위해서는 Github에서 다운로드를 받아 직접 로드해야한다. 아직 출시하지 않은 이유는 점수 산정 체계가 아직 완전하지 않아 앞으로 수정해나가야 하며 버그도 자잘하게 존재한다. 또한 엔카의 공식 인가를 받지 않은 개인적인 사이드 프로젝트이기 때문에 지속적인 유지보수를 장담하기도 어렵다.

무엇보다 엔카 입장에서는 이 확장앱의 존재를 그닥 달가워 하지 않을 수 있다. 엔카는 '구매자'와 '딜러' 사이를 중개하는 플랫폼이다. 따라서 나와 같은 구매자가 안 좋은 매물을 쏙쏙 걸러가면 이는 곧 딜러가 손해를 입을 수 있으며, 이로 인해 거래가 감소한다면 이는 곧 엔카 입장에서도 원치 않는 상황일 수도 있다. (내 상상이긴 함)
또한 점수를 계산하기 위해서는 확장앱이 엔카 서버에 API 요청을 꽤 많이 보내야하기 때문에 트래픽이 증가한다는 점도 엔카가 달가워하지 않을 요인이기도 하다.

그래서 괜한 걱정이긴 하지만 이 확장앱이 너무 많은 사람들이 쓰게 된다면 언젠가 엔카로부터 밴을 당할지도 모른다는 생각이 들어서 일단 현재로서는 Github에만 공개해놓기로 했다.

Rule-based가 최선일까?

이 확장앱의 점수 계산 방식은 완전 rule-based 방식이다. 따라서 어떤 요인에 얼마만큼의 점수를 주고 뺄 것인지는 사람의 주관적인 판단에 달려있기에 한계가 존재한다. 누군가에게 꿀매물처럼 보이는 매물이 다른 사람에겐 거르는 매물로 해석될 수도 있다는 뜻이다.

어쩌면 더 나은 방식은 딥러닝으로 점수를 계산하는 방식일 수도 있다는 생각을 해보았다. 차량별로 감가폭, 옵션유무, 고질병 등 그 특성이 다르기 때문에 획일화된 점수 기준표로는 이 미묘한 차이를 담아낼 수는 없다. 그런데 딥러닝 방식을 적용하기 위한 첫 번째 난관은 데이터 사이즈다. 지금까지 엔카에 축적된 매물들의 데이터는 충분하겠지만 사이드 프로젝트 하는 개인이 그 데이터를 갖고 올 수 없다. 크롤링으로 열심히 데이터 긁어오는 것에 의존해야 한다는 것인데 이것만으로는 역부족이다. 게다가 ground-truth 라고 상정할 수 있는 거래완료 매물은 더이상 조회할 수 없다는 점도 한계점으로 꼽힌다.

따라서 현재로서는 데이터 사이즈에 종속되지 않는 rule-based가 가장 나은 방식이라고 생각한다.


Profile picture

하주헌 Neon

개발 관련 내용들과 일상에서 느끼는 점들을 남기고 있어요. 흔하게 널린 글보다는 나만 쓸 수 있는 글을 남기려 하고있어요.

Loading script...