기간 : 9/1 ~ 9/5

부트캠프 첫 프로젝트로 빠르게 지나간 한 주


📕 3주차 리뷰

프로젝트로 정말 기진맥진하게 보냈다.

2일짜리 초단기 프로젝트라는, 전혀 경험해보지 못한 타이트한 일정 속에서 유의미한 결과물을 만들어내는 것이 상상 이상으로 힘든 일이었다.

 

대학에서 널널하게 1~2달 시간을 가지고 그저 "이거 만들어보자" 해서 만들던 팀플과는 차원이 다른 경험이었다. 대학 땐 정말 터무니없는 것만 아니면 교수님들이 대부분의 내용을 한 번에 통과시켜 주셨는데, 여기서는 주제 선정에서부터 몇 번이나 고꾸라졌다. 역시 교육 목적의 프로젝트와 실무 환경 프로젝트는 궤가 다르다.

 

한편으로는 지난 2주간 배운 것들을 결합해 실전에 가까운 감각으로 실제 상황에 적용해볼 수 있었고, 어디서 어떤 걸 활용해야 하고, 내가 어떤 부분이 부족한지를 여실히 느낀 경험이었다.


🔨 1차 단위 프로젝트 회고

1. 주제 선정 및 데이터 수집

프로젝트 대주제

<전국 자동차 등록 현황과 기업별 FAQ 조회 시스템>

 

최종 주제 확정까지 몇 번의 기획 변경과 데이터 수집 난항을 겪었다. 우리가 원하는 데이터가 정확하게 들어있는 곳이 없었고, 그렇다고 데이터부터 찾고 그에 맞춰 주제를 정하자니 오히려 목적 없는 탐색이 되어버렸다. 개인적으로는 자동차에 대해 아는게 없어 배경지식 측면에서도 많이 취약한 대주제였다.

 

강사님이 제시하신 프로젝트 주제의 조건은 이랬다.

  • 어떤 데이터에서 무엇을 분석할 것인가?
  • 왜 하필 그것인가? ( = 필요성)
  • 어떤 결과를 낼 것인가?
  • 누구에게 이 서비스를 제공할 것인가?

우리는 전기차를 키워드로 하여 다음과 같이 주제를 세울 수 있었다.

<전기차 인프라 정보 제공 시스템>
1. 전국 전기차 등록 현황 + 전국 전기차 충전소 현황 데이터 활용
2. 전기차 등록대수 대비 충전소가 충분히 확보되어 있는지 확인
3. 충전소를 찾는 이용자를 대상으로 하여 충전소의 정보 제공
4. FAQ 등의 추가적인 정보 제공

 

최근 시장 동향이 동향이다 보니 전기차라는 키워드가 자칫 흔한 컨셉이 될 수 있었으나, 주제가 괜찮다는 강사님의 피드백에 자신을 얻어 팀원들과 함께 열심히 데이터 수집에 착수했다.


2. 프로젝트 진행

프로젝트는 크게

  1. 전국 전기차 등록 현황 수집(CSV 파일)
  2. 전국 충전소 현황 수집(API + 웹 크롤링)
  3. 수집된 데이터로 DB 구축
  4. 데이터 정제(중복 및 이상치 제거, 불필요한 데이터 분리)
  5. 웹 페이지 구현(with Streamlit) + FAQ 수집

이런 절차로 진행되었다. 나는 크롤링을 이용한 충전소 현황 수집을 담당했는데, 정리되지 않은 공공데이터에서 필요한 것만 골라와 DB에 넣는 과정이 생각보다 순탄치 않았다. 크롤링 양이 너무 방대해 중간에 팀원이 API 트래픽 초과로 차단을 당하기도 했고, 크롤링이 끝날 때까지 시간이 너무 오래걸려 아예 크롤링 중에 DB로 바로 저장되도록 하기도 했다.

 

가장 고생한 파트는 Streamlit인데, 모듈 자체가 생소하고 프론트 구현에 은근히 한계점이 많아서 영 좋지 못한 에러들과 싸우며 시간을 할애했다.

특히 애먹었던 부분은 충전소의 위치를 지도에 표시하는 파트로, 지역 정보와 맞지 않는 위치에 충전소가 표기되는 경우가 있었다. 가령 '평택시아주아파트' 충전소가 부산에 찍힌다든지... 정부에서 제공하는 공공데이터가 틀렸을 가능성이 높진 않으니 아마 초기 데이터 정제 과정에서의 오류로 잠정적으로 판단했다. 중복 데이터를 제거하는 과정에서 값이 밀린게 아닐까 싶다.

 

결국 지역 정보와 비교해 위도&경도 수치가 비정상적으로 튀는 값을 찾아 수정하기로 했고, 늦은 새벽까지 수고해주신 팀원에게 감사하다.


3. 결과물

https://github.com/SKNETWORKS-FAMILY-AICAMP/SKN19-1st-5Team

 

GitHub - SKNETWORKS-FAMILY-AICAMP/SKN19-1st-5Team: [SK Networks Family AI Camp 19기] 전기차 인프라 정보 제공 시스

[SK Networks Family AI Camp 19기] 전기차 인프라 정보 제공 시스템 - SKNETWORKS-FAMILY-AICAMP/SKN19-1st-5Team

github.com

2일이라는 빠듯한 시간이었지만 그래도 원하던대로 결과물이 나와 상당히 뿌듯하고, 한참 부족하고 별로 도움이 되지도 못했던 나를 조장이라 치켜세워주며 열심히 역할을 소화해주신 팀원들에게 그저 감사하다. 어느 팀을 가서도 잘하실 분들이다.


4. 프로젝트 피드백

프로젝트 이후 강사님의 냉정한 피드백 시간이 있었다.

 

✅ 좋았던 점

  • 메인 페이지에서 각 페이지로 넘어가는 버튼을 하나 하나 넣은 것
  • 메인 페이지에 관련 뉴스를 넣은 정보 접근성
  • 충전소와 관련한 정보를 최대한 많이 뽑아낸 것
  • FAQ를 카테고리별로 정리한 깔끔한 화면

💥 미흡했던 점

  • ERD 충전소 테이블 분할 기준이 좀 더 명확하면 좋겠다
  • 프론트 디자인이 단순하다
  • WBS '테스트' 항목의 경우, 정확히 어떠한 테스트를 진행했는지 항목별로 나누는게 좋다
  • 트러블슈팅을 좀 더 상세하게 쓰는게 좋다
  • Readme 중 결과 페이지에 대한 부연설명이 있으면 좋겠다

5. 배운 것

확실한 주제 선정의 중요성

모든 프로젝트는 주제 설정에서 시작된다. 내가 무엇을 만들건지, 내 주제가 확실한지에 대한 확신이 있어야 그만큼 정확한 데이터를 찾고, 남은 프로젝트 단계들이 원만히 진행될 것 같다.

 

활발한 팀 소통

이번 프로젝트에서 우리 팀은 소통도 잘 됐고, 역할 분배도 원활했다. 그러나 좋은 프로젝트를 위해서는 이보다도 더 많은 소통이 필요한 것 같다. 사소한거라도 나 혼자 해치우고 넘기면 어느 시점에선가 그것이 문제가 된다. 대화를 많이 하자.

 

DB 담당의 중요성

우리 팀은 각자의 DB를 만들고 각자의 데이터를 넣고, 후반에 그것을 합쳤다. 그러나 서로 코드 스타일이 달라 SQL문을 착각하기도 했고, 파일명이 통일되지 않아 에러를 만들었다. 왜 기업들이 코드 컨벤션이나 스타일 가이드를 통해 사소한 부분까지 규정화하는지를 알 수 있었고, DB를 중점적으로 관리하는 역할이 따로 있어야겠다.

 

깃허브의 존재 의의

이번에 우리 팀은 깃허브를 능숙하게 이용하지 못했다. 브랜치 관리는 제대로 되지 않았고, 대부분의 파일을 브랜치 하나에 몰아넣었으며, 폴더 관리가 미흡해 나중 가서는 쌓여있는 파일들 중 특정 파일을 찾지 못해 "이 파일인가요?"라고 묻기도 했다. 깃허브를 통한 체계적인 분업에 따라 프로젝트의 안정성이 달라질 것 같다.


2차 프로젝트 전까지 또 열심히 해야겠다..

+ Recent posts