brunch

You can make anything
by writing

C.S.Lewis

by 스토너 Oct 21. 2024

[데이터 시각화] 전기차 보조금 현황 대시보드 만들기

챗지피티 없던 시절에 기획, 제안부터 코딩, 개발을 한다면?


오랜만에 인사드립니다.

변명을 하자면 동안 재미있는 데이터 분석 시리즈를 기획해보자 생각했으나

현실 또는 여러 일 등에 치여 포스팅이 늦어졌네요^^;


브런치에 데이터 분석가가 되기 험난했던 여정을

글로 썼지만 실제로 취업해서 어떤 일을 하고 있는지는 구체적으로 언급한 바가 없어

궁금하신 분들을 위해 써봤습니다.


그러는 의미에서 제가 PM으로 참여했던 프로젝트인

"전기차 보조금 현황 대시보드를 통한 데이터 시각화"를 가지고 와 봤습니다.






한 눈에 보기 쉽게 데이터 시각화하는

전기차 보조금 현황 대시보드 구축하기



당시 고객사였던 다른 모 수입차 브랜드사는

전기차 보조금 현황 데이터를 실시간으로

확인할 수 있도록

대시보드 구축을 요청하였는데요.


지금은 이런저런 전기차 사고 이슈가 있어 붐이 줄었습니다만,


당시에는 전기차 보조금 신청자들이 많았고

전기차를 팔아야 하는 기업 입장에선

고객들에게 수도권, 각 지방 정부처마다 차종별 지원금과

마감 기한, 마감 정원 등 정보를 면밀히 지원 제공해서

전기차 판매를 늘리고 싶어하는 needs가 있었습니다.


특히 당시 2021년 정부에서 제공하는 통합누리집 데이터는 기 편하지 않았습니다.


무공해차 통합누리집(https://ev.or.kr/nportal/main.do)

2024년 인터페이스는 편해졌지만 표는 여전히 보기 어렵다.



이 데이터들을 어떻게 보기 편하게 가공하여 시각화할 수 있을까?




기획하는 일은 전부터 해오던 일이었으니

어렵진 않았습니다.


여기에 데이터 수집과 분석, 일부 기능 개발 하는 것이 난관이라 머리를 싸맸는데요.


개발은 통째로 외주로 맡기기보단

비용도 아끼고 직접 핸들링하는 걸 좋아해서


지인인 프런트엔드와 백엔드 개발자, 퍼블리셔와 사내 디자이너와 협업하여 빠르게 구축하는 걸로 회사와 협의하였습니다.




그리하여 완성한

데이터 시각화 및 대시보드



보조금 신청 접수가 추후 어떻게 될 것인지 예측할 수 있는

ML 기능도 넣기 위한 시각화



보조금을 최대한 많이 받을 수 있는

리스사로 연결하고

마감 임박한 보조금 받을 수 있는 지역도 시각화.




개발 기간

3개월


개발 목적

고객사와 전기차 구매 고객이 보기 편하게 정보를 시각화하고

전기차 구매 고객에게 브랜드 홍보를 위한 광고 유치,

향후 다른 국산/수입 자동차 브랜드사 고객도 이용 가능할 수 있게 개발


language : Python, Java, Javascript

framework : Vue.js, SpringBoot, kubernetes

DB : AWS RDS(MySql)

Server : AWS EC2






이 정도의 대시보드를 구현하는 난이도는 어땠을까요?



저는 항상 긍정적이고 낙관주의자라 어떤 일이든

도전하길 주저하지 않는 편이지만

막상 기획한대로 "예쁘게" 시각화하기 위해

데이터를 긁어와

DB에 보기 좋게 넣는 코드까지 구현하려고 하니

부족한 개발 지식으로 무지하게 고생을 했던 기억이 있습니다.

(무식하게 덤벼든 것일까 후회도 수십 번..

그때는 Chatgpt 사용하기 전이라 더 고생했습니다.)


매일 실시간으로 데이터가 달라지기 때문에

cronjob으로 서버에서 크롤링할 수 있게

하루에 한번씩 자동으로 돌아가게금

코드를 구현해야 했습니다.


특히 테이블 간 관계와 DB 설계는

전문지식이 매우 필요한 일로

실시간 서비스로 문제 없도록 이용하려면

리팩토링 이슈도 있었습니다.

(괜히 DB전문가가 있는 게 아니더라고요)


처음엔 제가 설계한 DB 테이블과 칼럼을 보시고

음...OK했던 백엔드 개발자님, 나중에 다시 만들라며 몇 번이나 엎으셨구요^^


보조금 현황 대시보드 table&column


빠른 대시보드 구축과 데이터 조회를 위해 외래키를 무시하자는

백엔드 개발자님의 의견을 받아들여 완성한 table&Column


첫화면 데이터 시각화의 핵심 table인 subsidy_info와 subsidy_accepted table

subsidy_info table
subsidy_accepted table



나중에 완성한 크롤러를 보고

당시 백엔드 개발자님이 이걸 어떻게 만들었냐며

1년이 지나도 아직 이게 멀쩡히 돌아가는 신기할 정도라고 하셨네요^^


통합누리집에서의 크롤링과 pandas를 통한 데이터 전처리

그리고 통계적으로 시각화할 수 있는 계산식

그리고 mysql db에 crud할 코딩까지 뭐 하나 쉬운게 없었습니다.






보조금 마감예정 지역 시각화 기능

데이터 insert를 위한 비즈니스 로직



당시 프런트엔드 개발자님과 업무상 소통하였던

깃랩 90여개의 Issues 목록




Crawler 개발 Issues 목록





<어려웠던 점>


내부 디자이너와 퍼블리셔 간 커뮤니케이션은 어렵지 않았지만

개발자님들과의 의사소통은 좀 더 노력해야 할 것 같다

그것은 아무래도 부족한 개발지식 때문..


또 기획서를 쓰며 고객사와 회사 입장인 비즈니적 입장에서도 바라봐야 하고

전체적으로 크게 보기도 해야하지만

일부 크롤러 개발을 하거나 개발자들과 협업할 때는

기술적으로도 접근해야 하고 디테일하게도 봐야 하니

관점을 달리하면서 프로젝트 완성도를 높이는 것이 어려웠다.



<잘한 점>


한눈에 보기 어려웠던 데이터를 보기 편하게 시각화한

대시보드를 짧은 기간 내 저렴한 비용으로 빠르게 구축하였던 것.


당시 고객사와 C-level 은 결과물을 보고 만족하셨고

이 대시보드로 다른 고객사들과 연결하여

영업을 하셨던 걸로 앎.



<개선해야 할 점>


데이터 시각화 기능에서 한 단계 더 나아가

ML 기능을 서비스 상용화에 쓸 정도로 만들었으면 좋았을 듯.


ML공부를 하긴 했지만 쓸 수 있을 정도로 만들어본 적이 없던 것 같다

또 DB 지식이 부족하여 DB 설계를 위한 공부를 더 해야 하며

Crawler 개발할 때도 좀 더 구조적으로 접근하기 좋게

체계적으로 개발하는 것을 개선해야 할 것 같다.





이렇게 저의 입사 초기 프로젝트를 공개해봤습니다^^


어떠셨나요?

생각보다 어려웠을까요? 아니면 예상대로인 난이도였을까요?


제가 맡은 업무 범위는

기획에서부터 개발까지 PM으로서의 넓은 범위라

완전 생신입 입장에서는 따라하기 힘들 수는 있을 겁니다.


하지만 저보다 분석을 정밀하게 잘하시거나

전처리하는데 뛰어나시거나

DB 설계를 잘하실 수도 있고요.

 

통계적으로 더 정확하시거나

아니면 시각화하는 데 좀 더 뛰어나시거나

ML 개발 실력이 뛰어나시거나 하는 등

강점을 살릴 수 있는 본인 만의 뛰어난 능력이 많으실 겁니다.


아무래도 전 마케팅 경력이 있어 기획&제안과

고객사와 다른 직무 간의 커뮤니케이션,

프로젝트 핸들링대한 강점이 있었거든요.


재미있게 보셨다면 공감 눌러주시고^^

다음엔 더 재미있는 기획물을 가지고 와보겠습니다.


지금 생각하고 있는 데이터 분석 주제는

"온라인 쇼핑 셀러들을 위한 데이터 분석 제공하기" 입니다.



작가의 이전글 ChatGPT로 한국어 AI 모델링을 해봤더니
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari