카테고리 없음

에프랩 데이터 엔지니어 2개월 후기

aeongsseu 2024. 4. 23. 20:55

 

2개월 차가 되었을 때에는 프로젝트를 시작했다.  

데이터 엔지니어링 관련 프로젝트 경험은 전무한 만큼 간단한 ETL 파이프라인을 만들기로 기획했다.

 

기존엔 2주안에 끝내는 것으로 기획했었지만 이론으로는 알고있지만 막상 사용하려 하니 추가로 드는 러닝커브 + 트러블 슈팅 + 예상치 못한 일정 + 게으름으로 인해 예상 기간보다 3배나 늘어나게 되었다.

 

작은 토이 프로젝트인 만큼  개발 과정중 엄청난 마일스톤은 없었고 크롤러 제작, 스토리지 구축, 변환 스크립트 + 중간중간 gitaction을 통한 cron job 자동화 순으로 진행했다.

한 가지 배운 것은 생각보다 데이터 엔지니어링은 우아하지 못하단 것이다. 

새로운 기술이 계속 나오는 만큼(duckdb, prefect 등등..) 깔끔한 api와 깔끔하게 자동화된 작업들을 기대하지만 막상 그것들을 구현하려면 속은 정말 복잡하다.

이런 느낌

이로 인해 후에 점점 더 꼬일 것을 대비해 처음부터 스키마, 아키텍처등을 정교하게 설계하고 들어가야 하는 거 같다. 

물론 내 프로젝트의 규모는 그리 크지 않아 그런 과정에서 크게 꼬인 부분은 없었고 데이터양도 크지 않아 스키마도 빠르게 변환할 수 있었다.

또한 직접 sql을 작성해야 하는 경우도 많았다.

 

공고들을 서핑하다보면 주요 업무, 자격요건에 스키마 설계 경험, sql 활용 능력이 정말 자주 보였는데 왜 그런지 알게 되었다.

 

당연히 모르는 것이 있으면 멘토님께 물어보았다.

슬랙으로 물어보면 늦어도 24시간 내에는 봐주셨다.

좋았던 것은 실제 현업자분이시기에 

이러이러한 경우에 현업에서는 보통 어떻게 하나요?

같은 질문을 할 수 있었다.

 

하지만 현재는 당시 멘토님과는 멘토링 관계가 해지된 상태이다.

나와는 잘 맞지 않는다고 생각했기때문이다.

일례로 psycopg에는 쿼리를 실행하는. execute() 함수가 있다.

기존에 이 함수를 for문을 통해 매 트랜잭션을 실행시키는 방식이었는데

execute_value()라는 함수를 통해 쿼리 하나에 여러 데이터를 채워주는 함수가 있다.(그렇게 쿼리를 생성해 준다)

하지만 전 멘토님께서 이 부분을 잡아주지 못하셨고 다음날 직접 최적화하며 고치게 되었다.

 

또한 평소에도 이런 부분을 잘 잡아주지 못하셨기에 질문을 정리해 보내주었는데도 만족스럽지 못한 답변이 왔다.

 

이에 현재는 멘토 변경을 신청한 상태이다.

글을 쓰며 한 가지 걱정인 점은 이 글을 읽은 미래의 멘티 중 자신과 조금 안 맞다고 멘토를 휙휙 바꿔버릴 수 있는 점이다.

당연히 최고의 방법은 현 멘토님과의 대화를 통해 맞춰가는 것이다.

필자도 조금은 성급하게 바꿨나 생각은 한다.(후회는 전혀 하지 않는다)

 

대화로 맞춰가되 정말 자신과 맞지 않는다면 빠르게 멘토를 바꾸는 것을 추천한다.(비싼 돈 내고 신청했을 텐데 아무것도 못 배워 가면 너무 억울하지 않겠는가)