내가 하는 일

벌써 일을 시작한 지 4년 가까이 되는 시간이 흘렀다. 입사 이후 다양한 성격의 업무들을 진행해왔고, IT와 관련된 일을 하지 않는 사람들은 이해하기 어려운 부분이 많아 말이 너무 길어질까 에둘러 설명했던 적이 많았다. 일을 시작한 지 4년 가까이 된 지금, 내가 어떤 일들을 했는지 기록해보고 싶은 마음에 적어보고자 한다.
주 업무
데이터 엔지니어
입사 초기 3년 가까이 주로 '데이터 엔지니어' 업무를 많이 수행했다. 처음에는 사수가 없이 일을 시작해서 데이터로 뭔가를 하는 일을 시작했고, 시간이 지나고 보니 그 일들이 데이터 엔지니어의 업무였던 것 같다. 처음 입사 했을 당시에는 pandas와 requests 라이브러리 정도만 사용해본 수준이었고, 업무 요청이 들어오면 주피터 노트북을 켜서 요청에 따라 데이터 시각화나 정리, 크롤링과 같은 업무들을 단발성으로 수행하곤 했다. 심지어 이때는 데이터 베이스도 없이 csv 파일로 데이터를 관리했다. (물론 지금도 일회성이거나 빠르게 아웃풋 뽑아서 확인하거나 자료 전달 할 때는 이렇게 하기도 한다.) 데이터가 점점 늘어나고 정제해야 할 데이터 사이즈가 늘어나면서 dask 같은 분산 데이터 처리 라이브러리를 사용하기도 했다. 데일리로 업데이트 되는 데이터가 많아져 배치 형태로 데이터를 쌓기 위해 DB 구축과 airflow에 DAG를 말아 데이터를 넣기 시작했다. 그 이후엔 계속 데이터 파이프라인 관리에 힘을 쓰며, 어떻게 하면 데이터를 더 빠르게 서빙할 수 있을지 고민했다. GIS 환경에서 사용되는 데이터들을 빠르게 서빙할 수 있게끔 하기 위해, PostGIS 나 geopandas 같은 도구도 활용했다.
백엔드 엔지니어
엔지니어라고 부르기 민망한 수준이지만 백엔드 관련 업무도 진행했다. 모두가 원하는 최종 단계의 데이터로의 서빙을 위해선 결국엔 백엔드가 필요했다. 파이썬 외에는 다른 언어를 거의 알지 못했던 터라 마침 뜨고 있는 가벼운 프레임워크인 FastAPI를 사용해보고자 마음 먹었다. 내부 툴로만 사용할 용도라 Django 까지 굳이 사용할 필요가 없다고 느꼈고, 기존에 잠깐 써봤던 Flask에 비해 비동기 처리, Swagger Docs 생성 등의 이점이 있다고 판단했다. Dependency Injection을 잘 구현하지 못하고, annotation을 활용하지 못한 코드도 많았지만 nginx를 사용해본다던지 하며, 웹 서비스에 대한 기본 구조에 대해 실질적으로 익히고 공부하며 업무를 진행했다.
프론트엔드 엔지니어
결국 데이터를 쉽게 서빙 할 수 있으려면, 그리고 사람들이 원하는 빠르게 데이터를 조회할 수 있으려면 GUI 기반의 무언가가 꼭 필요했다. 여러 툴들이 있었지만, 확장성 있게 그리고 내가 생각하는 바를 잘 구현하려면 결국 최종적인 답은 웹 서비스였다. 대학교 프로젝트 때 잠깐 써봤던 React가 기억에 남았고, useState가 어떻게 동작하는지에 대해서만 어렴풋이 기억한 채로 Next.js로 삽을 뜨기 시작했다. 지금은 SSR이라던지 App Router가 등장하면서 너무 바뀌었는데 그 때 당시에는 13버전 초반대라 이런 것도 없고, 진짜 그야말로 아는 거 없는 채로 맨땅에 헤딩하며 만들어 나가기 시작했다. 지금은 ChatGPT라는 선생님이자 조수를 자양분 삼아 업계에 사실상 전무하다시피 한 SaaS 프로덕트를 만들고 있다.
데이터 쪽이 워낙 잡부와도 같다고 말은 많지만 지난 4년여를 돌아보니 진짜 잡부도 이런 잡부가 없는 것 같다는 생각이 든다. 그래도 덕분에 비즈니스 사이드에서의 고민들을 참 많이 했다. 데이터 기반의 결정을 하기 위해 어떤 데이터가 필요할지 어떻게 데이터를 ETL 할지부터 어떻게 API를 만들어 빠르게 정보를 확인할 수 있게 서빙해야할지 고민도 많이했던 것 같다. 여기에 적지 못한 인사 관련 업무들이나 사내에 필요한 SaaS 도입 등도 참 정말 많은 잡부 업무들을 해온 것 같다. 체계적으로 배우지 못하고 특정 분야에 대한 전문성을 키워나가는 데에 있어선 아쉬움이 많지만, 여러 삽질을 바탕으로 한 잡부 경험들 덕분에 긴 시간 동안 더 비즈니스 사이드에 대해서 고민하고 성장할 수 있었던 것 같다.