2024년도 회고를 진행하려고 합니다.
2024년도는 신입 데이터 엔지니어로 일을 하며 데이터 엔지니어링 및 플랫폼 개발, 운영 경험을 쌓을 수 있었던 한 해였습니다.
업무와 공부를 병행하며 2024년도 상반기에는 정보처리기사 자격증을 취득할 수 있었습니다.
단순히 이론으로만 접했던 개념들이 실제로 업무를 하는데 기본이 되고, 영향을 준다는 것에 대해서 깨달을 수 있었습니다.
업계에서 사용하는 용어들이 들리기 시작했고, 이해가 되기 시작하니 신기한 경험이었습니다.
단순히 취업시장에서는 자격증이 필요없다는 의견들이 있고, 그 의견들에 어느정도 공감하지만 비전공자로서 기본적인 용어로 인한 소통의 부재를 경험하였기 때문에 저에게 있어서는 정보처리기사를 공부하고 알게된 지식들이 자격증보다도 더 소중하게 다가옵니다.
신입 데이터 엔지니어의 경험
약 1년 2개월 정도의 제조분야 데이터파이프라인과 플랫폼을 개발하고 운영한 경험과 느낀점에 대하여 이야기 해보려고 합니다.
스키마의 중요성
기존에 동작하던 파이프라인을 개선하기 위하여 실시간 처리를 하며 병목지점을 눈으로 확인할 수 있는 Flink에 대하여 기술연구를 진행하였습니다.
운영중인 원시(raw)데이터를 눈으로 확인할 수 있었고, 현업의 데이터는 생각보다 더 깔끔하지 않다는 것을 느낄 수 있었습니다.
Kafka로 들어오는 원시데이터는 Text형태로 들어오며 Text 데이터를 Json 형태로 파싱하여 사용하고 있습니다.
Flink 기술 연구와 개발이 동시에 진행하면서 정해져있지 않은 스키마로 인하여 스키마를 고민하고 정하는 것부터 시작하여 각종 에러를 경험하다 보니 Kafka Registry 도입 혹은 데이터를 보내는 쪽에서 스키마를 입혀서 보내면 좋겠다라는 생각을 많이 하였습니다.
하지만 현장의 상황은 여의치 않았고, 자체적으로 스키마를 입히고 저장하고 있는데 모든 데이터를 string으로 타입을 지정하고 저장하는 방식을 택하고 있습니다. 데이터의 사이즈는 증가하지만, 개발하면서 int, double, timstamp, null 등 조금씩 꼬일 수 있는 데이터 타입으로 인하여 얻는 각종 에러를 피할 수 있다는 것이 가장 큰 장점으로 보입니다.
제가 겪은 현장 상황에서 Flink를 쓰기에는 부담스럽고, 러닝커브가 높은 애플리케이션이다보니 도입하지는 못했지만 덕분에 Flink를 공부하고 Kubernetes 상에 올려서 사용해본것으로 만족하고 있습니다.
Nifi도 강력한 실시간 데이터 처리 도구지만 상황에 맞게 Flink, Nifi를 고민하여 도입하는 것이 좋을 것 같습니다.
새롭게 데이터 파이프라인을 구축해야 할 일이 생긴다면 여러 이해관계자들과 협의하여 스키마를 먼저정하고 시작하는 해야겠습니다.
백업의 중요성
해외에서 데이터를 수집하다보니 네트워크 대역폭이슈로 인하여 백업 파이프라인을 만들지 못했지만 자체적으로 백업을 만들어야 한다는 의견이 있었습니다. 처음에는 이 많은 데이터를 다시 어디에 저장하고, 저장하는데 시간이 너무 오래걸리지 않을까? 괜히 불필요한 작업이지 않을까란 생각이 들었지만 현재는 그 생각이 얼마나 자만이었는지 깨닫게 되었습니다.
작업을 하다보면 저장되어 있는 원시데이터 성격의 데이터를 다루는 일이 종종 있습니다.
그럴 때마다 원본을 건드리게 되니 항상 긴장하고 부담스럽다는 생각을 자주하였습니다. 분산되어 있는 데이터 파일의 수를 줄이기 위하여 작업을 수행하다 원본데이터를 Delete한 경험이 있습니다.
다들 괜찮다고는 하셨지만 너무 마음이 불편하고, 다시한번 백업을해서 작업을 해야한다는 것을 몸으로 느낄 수 있었습니다.
이 경험은 Command하나로 인하여 눈앞에서 수많은 데이터들이 삭제되어 가는 경험을 하지 않고는 못 느낄 것 같습니다.
항상 백업 프로세스를 세우고 진행해야 합니다.
로깅의 중요성
최근에 신입 데이터 엔지니어분께서 입사를 하셔서 OJT과정을 만들고 옆에서 가이드를 해주는 역할을 수행하였습니다.
그 분에게 강조드렸던 내용이 구축은 Hello World이고 구축된 것을 운영하고 장애처리를 하는 것이 우리의 역할이다라고 말씀드렸던 기억이 있습니다.
데이터 엔지니어는 데이터 파이프라인을 만드는 것 뿐만 아니라 데이터 파이프라인을 이루는 애플리케이션과 인프라적인 요소를 알아야합니다.
업무를 하면서 여러 장애상황을 겪게 되는 데 그럴때마다 항상 주의깊게 봐야하는 것이 로그입니다.
지금도 로그를 보는 것이 서툴고, 산재되어있는 로그를 연결하여 장애원인을 분석하는 것은 너무나도 어렵지만 계속해서 보다보면 그 안에서 실수한 부분이나 장애의 원인을 확인할 수 있었습니다.
계속 반복되는 에러로그를 기록하고 분석하여 애플리케이션의 설정값을 변경하여서 에러로그가 등장하지 않게 하니 그 만큼 신기한 경험도 없었고, 너무나 뿌듯한 경험이었습니다.
애플리케이션을 모니터링하는 도구는 너무나도 많지만 유명한 ES, Loki 같은 로그시스템 또한 공부해야겠다는 생각이 듭니다.
마무리
데이터 파이프라인을 구축 및 수집하고 쿼리 엔진(Trino)을 붙여 대용량 데이터를 조회하고
API로 만들어 사용자에게 데이터를 제공하며 사용자의 요구사항을 확인하고 수정하는 과정의 일을 하고 있습니다.
직접 수집한 데이터를 사용자들이 어떤식으로 활용하고 분석하는지 알게되었고, 사용자의 요구사항을 기술적으로 어떻게 풀어갈지를 고민하니 너무나도 귀중한 경험이었습니다.
2025년도에는 기본적인 CS, 인프라, 활용하는 애플리케이션을 더욱 깊이있게 알아야겠다는 생각을 하였습니다.
현재에는 베어메탈로 구성된 서버 환경이고 조금씩 클라우드로 넘어가는 추세인데 클라우드 서비스를 경험하고 싶다는 생각이 들었습니다.
또한 수집한 데이터를 활용하는 사용자의 요구사항을 듣고 사용자의 입장이 되어보니
데이터를 수집하는 능력도 중요하지만 활용하는 능력도 중요하다는 생각이 듭니다.
데이터 수집에 대한 경험이 존재하니 활용하는 경험을 얻고싶습니다.
끝으로 2025년에 얻고 싶은 것을 나열해보겠습니다.
- 컴퓨터구조, 네트워크 지식
- Kubernetes(Container) 및 인프라 지식
- 클라우드 경험
- 데이터 관련 애플리케이션(Kafka, Nifi, Airflow, Trino, Flink, Minio(S3) etc..)
- 수집 데이터 활용 - 인공지능(AI)모델, Mlops, LLMOps etc...
'회고' 카테고리의 다른 글
2023년 하반기 회고 (0) | 2024.01.01 |
---|---|
2023년 상반기 회고 (1) | 2023.07.09 |
2022년 마무리 부트캠프, 추천시스템 입문, 코딩테스트&취준 (2) | 2022.12.31 |