ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 패스트캠퍼스 스쿨 취업 포트폴리오 준비하기 (프로그래머 포트폴리오)
    Career 2021. 1. 7. 18:43
    반응형

    비전공자로 패스트캠퍼스 데이터사이언스 스쿨을 졸업할 당시 저는 면접 시 보여주거나 증명할 수 있는게 없었고, (제가 만약에 면접관이라도) 저를 누군가 뽑아주긴 어려워 보였습니다. 스쿨은 데이터사이언스였지만, AI 인력도 대학, 대학원의 많은 인력이 좋은 교육을 통해 시장에 진입할 듯하여, 저는 소프트웨어 엔지니어적(SE)인 실력을 먼저 쌓자는 생각을 하였습니다.

     

     

    식품연구원에서 개발자로 전직(직무전환)한 이야기 (feat. 8개월)

    17년 7월, 저는 식품연구원으로 재직하던 회사를 그만두고 18년 3월 비전공자 개발자(데이터 엔지니어 신입)로 취업에 성공하였습니다.  직무전환에 대한 글은 많지만 식품연구원에서 개발자로

    kadensungbincho.tistory.com

     

    그렇기에 데이터 환경에서 SE적인 측면이 강한 '데이터 엔지니어'로 첫 커리어를 시작하길 원했고, 그 부분에 대한 역량을 증명하기 위해 직접 스크래핑한 데이터를 기반으로한 웹서비스를 만들어 배포하고 면접 시에 그것을 보여주기로 마음먹고 포트폴리오 준비를 시작하였습니다. 

     

    이 글에서는 취업 포트폴리오로 사용하였던 프로젝트를 시간 순으로 어떻게 계획하였는지, 그리고 어떻게 구현하고 사용했는지 기술하겠습니다.

     

    포폴용으로 제작했던 프로젝트 ppt 첫장 - Image from Author

    프로젝트 계획하기

    저는 매일매일 구인 사이트의 데이터 엔지니어 자격요건을 살피며, 직접 데이터 서비스를 만들어서 포트폴리오로 보여주는 것이 목적이었습니다. 하지만 배운 모든 것을 보여줄 수는 없기에, 다음과 같은 몇 가지 우선순위를 정하고 그러한 기준으로 프로젝트를 계획하였습니다: 1) 데이터 파이프라이닝을 직접 진행할 것, 2) 웹 서비스 형태, 3) 데이터 사이언스 관련 경험을 조금이라도 보여줄 수 있을 것, 4) 가능하다면 데이터 수집까지도 진행하기(스크래핑).

     

    또한 기간은 스쿨을 졸업하고 바로 면접을 볼 때 보여줄 수 있도록 한 달 정도를 예상하였는데요. 실제로는 그보다 2주 정도 더 걸렸던 것 같습니다.

     

    위의 슬라이드에서 보시는 형태로(그 당시 웹서비스로 구현되어 있었음) 처음부터 계획되지는 않았고, 대략 "오프라인 샵들의 위경도 데이터를 모아서 시각적으로 화려한 지도를 웹서비스로 뿌려주되 데이터 사이언스적인(?) 면모를 보여줄 수 있을 알고리즘이나 모델링을 넣자"라는 방향성을 가지고 밀어부쳤습니다.

     

    구현해나가기

    구현을 진행하며 가장 처음 부딪힌 부분은 데이터는 긁어도 실제로 제대로 쓰기가 어려운 부분이었습니다. 개인이 운영하는 가게들의 위경도를 모으고, 그것의 카테고리를 분류하고 모델에 넣을 수는 없기에 정부에서 배포하는 프랜차이즈 리스트를 얻어와 각 프랜차이즈에서 위치를 얻어보자는 생각이었습니다. 하지만, 실제로 많은 프랜차이즈 가게들을 얻어와도 그 주소를 위경도로 바꾸어 모델에 넣기 위해서는 네이버 API와 같은 Geo API를 사용해 위경도를 얻어와야 했습니다. 그 부분에서 상당히 자잘한 데이터 전처리가 많이 필요했습니다.

     

    다음으로는, DBScan과 같은 클러스터링 기법을 사용하여 위경도와 가게의 다양한 정보를 넣고 유의미한 분석과 서비스용 인사이트를 뽑아내는 일이었습니다. 이 부분을 로컬에서 진행하면서 동시에, AWS 상에서 Nginx 세팅, Python Flask, Folium, Shapely 등을 통해 웹구현, 위경도 데이터와 정보를 Map을 그려서 뿌려주기 등등이 존재하였는데요. 

     

    사실 전체 시스템이 실시간 데이터 변동에 따라 업데이트되는 것이 아니고, 데이터를 뽑고 지도를 HTML로 그리는 부분까지 모두 진행되고 HTML 파일을 서버에 밀어넣어 Flask로 렌더링해주면 되는 부분이었기에 각각 업무가 서로 크게 의존적이진 않았습니다. 진행하면서 '뭔가 보여줄 수 있을 정도의 결과물이 나올까?'라는 고민과 스트레스가 많았지만, 각각 얼핏 배웠지만 간단한 서비스로 올리는 작업을 진행하면서 제가 느끼기에도 정말 많이 배우고 성장하는 것 같았습니다.

     

    Image from Author

    결과적으로는 위에서 보시는 바와 같이, 당시 kadensungbincho.com이라는 사이트에 접속하면, 위와 같이 interactive한 뷰가 있고, 개별 클러스터(상권 군집)를 클릭하면 분포한 업종별 갯수를 볼 수 있었습니다. 추후 진행할 사항으로는 한 상권을 선택하면 그 상권과 유사한 상권를 찾고, 비교했을 때 부족한 업종을 추천해주는 형태의 기능이었습니다(아쉽게도 진행하지 못했으나, 면접 시 할말은 있었습니다). 

     

    지금 다시 돌아보니, 여러가지 부족한 부분이 많이 보이나 만약 특별한 스펙 없이 직무전환을 고려하고 계신다면, 배운 내용을 토대로 개인프로젝트를 진행하고 포트폴리오로 사용하는 부분은 정말 추천드립니다.

     

    반응형
Kaden Sungbin Cho