본문 바로가기
공부는 평생하는 것이다/데이터엔지니어링

데이터엔지니어를 어떻게 준비해야 할까? : 처음 공부하는 이들에게

by IT Daily Life 2024. 11. 21.
728x90
반응형




데이터 엔지니어라는 직무는 개발자와는 달리 처음 어떻게 시작해야 할지 막막하게 느껴질 수 있습니다.


개발자는 특정 언어(예: 자바, 파이썬)를 중심으로 필요한 기술을 배워가며 확장하는 방식으로 접근합니다. 따라서 먼저 사용할 언어를 선택하면 비교적 쉽게 시작할 수 있죠.

하지만 데이터 엔지니어는 그 과정이 상대적으로 복잡하게 느껴질 수 있습니다. 데이터 엔지니어 로드맵을 살펴보면 Kafka, Spark, Snowflake, Databricks, Airflow와 같은 생소한 기술들이 등장합니다. 모두 처음 접하는 내용이라 어디서부터 시작해야 할지 막막하고, 이 모든 것을 다 공부해야 한다는 부담감이 생길 수 있습니다. 게다가 데이터 엔지니어는 개발 역량도 요구되기 때문에 자바나 파이썬 같은 언어를 익혀야 한다는 이야기도 들립니다. 프로그래밍 언어 하나 배우는 것만으로도 쉽지 않은데, 여기에 여러 기술까지 추가로 익혀야 한다니 두려움이 앞설 수밖에 없습니다.

하지만 데이터 엔지니어는 매우 흥미롭고 매력적인 분야입니다. 두려움을 조금만 떨쳐낸다면 이 직무의 재미와 가치를 발견할 수 있을 것입니다. 이번 글에서는 데이터 엔지니어의 기본기가 무엇인지, 그리고 어떻게 시작하면 좋을지에 대해 이야기해 보겠습니다.
 
 
 

첫 번째. SQL

 
 
데이터 엔지니어에게 가장 기본이 되는 기술은 바로 SQL입니다.

SQL을 이미 알고 있다고요? 개발자도 SQL을 사용하지 않냐고요? DBA나 튜너가 될 것이 아닌데 굳이 SQL을 잘할 필요가 있냐고요?

데이터 엔지니어에게 SQL은 기본 중의 기본입니다. 데이터 엔지니어는 100만 건의 데이터도 작게 느껴질 정도로 대규모 데이터를 다루는 일이 많습니다. 그렇기 때문에 SQL을 능숙하게 다룰 줄 알아야 합니다. 단순한 SELECT 쿼리라도 데이터가 100만 건, 1000만 건을 넘어가면 상황이 완전히 달라집니다. 아무 생각 없이 쿼리를 실행했다가 서버가 다운되는 상황이 벌어질 수도 있습니다.

데이터 엔지니어는 일정 수준의 SQL 튜닝 역량도 갖춰야 합니다. SQL의 중요성을 직종별로 비교하자면, 튜너 > 데이터 엔지니어 > 개발자 순이라고 생각합니다. 단순히 CRUD 작업만 할 줄 알아서는 부족합니다.

개인적으로는 SQLP(D) 자격증 공부를 추천드립니다. 이를 통해 실무에 도움이 되는 지식을 쌓을 수 있을 것입니다.
 

 

두 번째. 기본개념

 

 
데이터 엔지니어는 데이터를 수집, 저장, 처리, 분석하는 시스템을 설계하고 구축하는 역할을 담당합니다. 이 과정에서 데이터 웨어하우스와 분산 시스템에 대한 이해는 필수적입니다.

데이터 웨어하우스는 대량의 데이터를 효율적으로 저장하고 관리하기 위한 시스템으로, 비즈니스 인텔리전스와 데이터 분석의 핵심 인프라 역할을 합니다. 데이터 웨어하우스의 설계와 구축은 데이터 엔지니어의 주요 업무 중 하나입니다.

분산 시스템은 대규모 데이터를 처리하기 위해 여러 컴퓨터를 연결하여 작업을 분산시키는 구조입니다. 이를 통해 데이터 처리 속도를 높이고 시스템의 안정성을 강화할 수 있습니다. 따라서 분산 시스템을 이해하는 것은 데이터 엔지니어에게 매우 중요합니다.

데이터 엔지니어는 데이터 웨어하우스와 분산 시스템의 기본 개념을 명확히 이해하고, 이를 기반으로 핵심 기술과 도구를 익혀야 합니다. 또한, 실제 예제를 통해 이러한 시스템을 구현하는 방법을 체득해야 합니다.

여기서 중요한 점은 기술을 "할 줄 아는 것"이 아니라, 이해만 하는 것입니다. 여기에서 특정 솔루션을 "할 줄 알려고 하면" 끝이 없습니다. 아직 걸음마하려고 하는데, 뛰라고 하는 것과 같습니다. 데이터를 어떻게 수집하고, 변환하며, 적재하는지 머릿속에 대략적인 큰 그림을 그릴 수 있으면 됩니다.

세 번째. 필요한 솔루션

 
 
회사에 따라 실시간 플랫폼과 ETL (DW / DM) 작업을 명확히 구분하기도 하고, 이를 통합하여 운영하기도 합니다. 특히 스타트업과 대기업에서는 이러한 역할 분담이 다르게 나타납니다.

스타트업의 경우, 상대적으로 규모가 작기 때문에 시스템 설치, 데이터 가공 및 분석, 실시간 데이터 처리 등을 몇 명의 담당자가 복합적으로 처리하는 경우가 많습니다. 반면 대기업에서는 시스템 설치나 인프라 관리 등을 전담하는 팀이나 외부 전문업체에 맡기고, 데이터 엔지니어는 데이터 처리와 분석에 더 집중할 수 있는 환경을 제공하기도 합니다.

따라서 데이터 엔지니어로서 깊이 있는 지식을 쌓으려면, 자신이 맡은 업무의 범위와 필요성에 따라 경험과 지식을 확장을 해야 합니다. 처음부터 모든 것을 완벽히 익히겠다는 생각은 오히려 독이 될 수 있습니다. 경력이 오래된 전문가도 모든 것을 다 알지는 못합니다. 그렇기에 자신에게 필요한 분야를 차근차근 익히는 것이 중요합니다.

실력 있는 전문가들도 모든 것을 다 할 줄 아는 것은 아닙니다. 그러나 이들은 전반적인 이해력을 바탕으로 다른 팀이나 전문가와 원활하게 커뮤니케이션 할 수 있습니다. 이는 데이터 엔지니어에게 필수적인 역량 중 하나이며, 실력인 것입니다.

결론적으로, 모든 것을 깊이 있게 파고들 수는 없습니다. 대신, 전반적인 이해도를 넓히고, 자신의 업무와 역할에 맞는 핵심 기술을 깊이 있게 공부하는 것이 효율적입니다. 이렇게 하면 변화하는 환경에서도 지속적으로 성장할 수 있는 데이터 엔지니어로 자리 잡을 수 있습니다.

 
처음 시작하시나요? 그렇다면 SQL과 기본개념을 공부하시기 바랍니다. 그다음 필요로 따라 공부하시면 됩니다. 너무 어렵게 생각하지 마세요. 
 
 

 
 
 
 

728x90
반응형