32P by xguru 3일전 | favorite | 댓글 1개
  • 데이터 엔지니어링 취업은 복잡한 기술 생태계(예: Spark, Flink, Iceberg, BigQuery 등)로 인해 어렵게 느껴질 수 있음
  • 단순히 Python과 SQL을 배우는 것만으로는 충분하지 않으며, 체계적인 전략과 실습이 필요

데이터 엔지니어링 취업에 필요한 요소

  1. 기술 역량:

    • SQL 및 Python 숙련
    • 분산 컴퓨팅 기술(Snowflake, Spark, BigQuery 중 하나 이상)
    • 오케스트레이션 도구(Airflow, Mage, Databricks Workflows 등) 이해
    • 데이터 모델링 및 데이터 품질 관리 능력
  2. 포트폴리오 프로젝트:

    • 실제 기술을 보여줄 수 있는 프로젝트 제작
  3. 개인 브랜딩:

    • LinkedIn 프로필 관리 및 인터뷰 준비를 통해 전문성 강조

SQL 학습 및 숙련

  • SQL은 데이터 엔지니어링의 필수 언어:
    • 추천 학습 리소스:
    • 핵심 개념:
      • JOIN 유형: INNER, LEFT, FULL OUTER (RIGHT JOIN은 거의 사용하지 않음)
      • GROUP BY를 통한 집계 및 DISTINCT 활용
      • 윈도우 함수와 RANK, DENSE_RANK, ROW_NUMBER의 차이 이해
      • SQL 분산 환경에서의 키워드와 셔플(예: JOIN, GROUP BY, ORDER BY) 이해
      • CTE(Common Table Expression), Temp Table, View의 활용

Python 및 Scala 학습

  • 언어 선택:
    • 초보자는 Python, 경험자는 Scala 추천.
  • 중요한 개념:
    • 데이터 구조: 리스트, 딕셔너리, 스택 등
    • 알고리즘: 반복문, 이진 검색, Big O 표기법 이해
    • Python의 주요 활용:
      • Airflow DAG 작성
      • REST API와 상호작용
      • Spark UDF 작성 및 성능 최적화

분산 컴퓨팅 개념

  • 분산 컴퓨팅의 핵심:
    • 데이터 처리량을 분산시키는 Hadoop/Spark 기반 아키텍처 이해
    • 셔플과 스큐(skew) 문제 관리:
      • Broadcast JOIN, Bucket JOIN, 파티셔닝 활용
      • Spark 3+에서의 적응형 실행 사용
  • 출력 데이터 관리:
    • Parquet 파일의 런 렝스 압축(run length encoding)을 활용해 파일 크기 최적화

데이터 품질 및 사용성 확보

  1. 데이터 품질:

    • 중복 제거, NULL 값 점검, 적절한 형식 및 데이터 양 확인
    • 데이터 파이프라인에 Great Expectations 같은 도구로 품질 검증 추가
  2. 사용성:

    • 적절한 문서화와 사전 사양 협의
    • 데이터 모델링 방식:
      • 관계형, Dimensional(Kimball), One Big Table 각각의 장단점 이해
  3. 개인정보 준수:

    • 개인 식별 정보(PII)의 익명화 및 데이터 보관 기간 최소화

포트폴리오 프로젝트 제작

  • 효과적인 프로젝트 특징:
    • 개인적으로 관심 있는 주제 선택
    • 프론트엔드와 연계된 프로젝트 제작 (예: Tableau, Power BI)
    • 최신 기술(Spark, Snowflake, Delta Lake 등) 적용
    • 프로덕션 환경에서 실행되는 파이프라인 구현

개인 브랜딩 및 인터뷰 준비

  1. LinkedIn 활용:

    • 채용 관리자, 동료와 네트워킹 구축
    • 학습 여정을 공유하며 인지도를 높임
  2. 인터뷰 준비:

    • 인터뷰어 및 회사 배경 조사
    • 질문에 차분하고 긍정적으로 대응
    • 기술 및 직무에 대한 호기심과 열정 전달

결론

  • 2024년 데이터 엔지니어링 취업은 어려운 시장 상황에서도 체계적인 전략을 통해 접근 가능
  • 위 로드맵을 따라가면 목표하는 데이터 엔지니어링 직업에 더 가까워질 것

스칼라가 진짜 좋은 언어인데, 점점 Spark 외에는 쓰임새를 잃어가는 것 같아서 안타까워요