# 2024 데이터 엔지니어링 진입 로드맵

> Clean Markdown view of GeekNews topic #17939. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17939](https://news.hada.io/topic?id=17939)
- GeekNews Markdown: [https://news.hada.io/topic/17939.md](https://news.hada.io/topic/17939.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-11-25T10:36:02+09:00
- Updated: 2024-11-25T10:36:02+09:00
- Original source: [blog.dataengineer.io](https://blog.dataengineer.io/p/the-2024-breaking-into-data-engineering)
- Points: 39
- Comments: 1

## Summary

데이터 엔지니어링 취업을 위해서는 체계적인 전략과 실습이 필요합니다. 이를 위해 SQL 및 Python 숙련하기, 분산 컴퓨팅 기술, 오케스트레이션 도구 이해, 데이터 모델링 및 품질 관리 능력이 필요하며, 실제 기술을 보여줄 수 있는 포트폴리오 프로젝트 제작과 개인 브랜딩을 강조 합니다. SQL과 Python/Scala 학습을 통해 데이터 구조와 알고리즘을 이해하고, 분산 컴퓨팅 개념을 익혀 데이터 처리량을 효과적으로 관리해야 합니다.

## Topic Body

- 데이터 엔지니어링 취업은 복잡한 기술 생태계(예: Spark, Flink, Iceberg, BigQuery 등)로 인해 어렵게 느껴질 수 있음  
- 단순히 **Python과 SQL**을 배우는 것만으로는 충분하지 않으며, 체계적인 전략과 실습이 필요  
  
#### 데이터 엔지니어링 취업에 필요한 요소  
  
1. **기술 역량**:  
   - SQL 및 Python 숙련  
   - 분산 컴퓨팅 기술(Snowflake, Spark, BigQuery 중 하나 이상)  
   - 오케스트레이션 도구(Airflow, Mage, Databricks Workflows 등) 이해  
   - 데이터 모델링 및 데이터 품질 관리 능력  
  
2. **포트폴리오 프로젝트**:  
   - 실제 기술을 보여줄 수 있는 프로젝트 제작  
  
3. **개인 브랜딩**:  
   - LinkedIn 프로필 관리 및 인터뷰 준비를 통해 전문성 강조  
  
#### SQL 학습 및 숙련  
  
- **SQL은 데이터 엔지니어링의 필수 언어**:  
  - 추천 학습 리소스:  
    - [DataExpert.io](https://www.dataexpert.io/questions)  
    - [DataLemur](https://datalemur.com/)  
    - [StrataScratch](https://www.stratascratch.com/)  
  - 핵심 개념:  
    - 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](https://greatexpectations.io/) 같은 도구로 품질 검증 추가  
  
2. **사용성**:  
   - 적절한 문서화와 사전 사양 협의  
   - 데이터 모델링 방식:  
     - 관계형, Dimensional(Kimball), One Big Table 각각의 장단점 이해  
  
3. **개인정보 준수**:  
   - 개인 식별 정보(PII)의 익명화 및 데이터 보관 기간 최소화  
  
#### 포트폴리오 프로젝트 제작  
  
- **효과적인 프로젝트 특징**:  
  - 개인적으로 관심 있는 주제 선택  
  - 프론트엔드와 연계된 프로젝트 제작 (예: Tableau, Power BI)  
  - 최신 기술(Spark, Snowflake, Delta Lake 등) 적용  
  - 프로덕션 환경에서 실행되는 파이프라인 구현  
  
#### 개인 브랜딩 및 인터뷰 준비  
  
1. **LinkedIn 활용**:  
   - 채용 관리자, 동료와 네트워킹 구축  
   - 학습 여정을 공유하며 인지도를 높임  
  
2. **인터뷰 준비**:  
   - 인터뷰어 및 회사 배경 조사  
   - 질문에 차분하고 긍정적으로 대응  
   - 기술 및 직무에 대한 호기심과 열정 전달  
  
#### 결론  
  
- 2024년 데이터 엔지니어링 취업은 어려운 시장 상황에서도 체계적인 전략을 통해 접근 가능  
- 위 로드맵을 따라가면 목표하는 데이터 엔지니어링 직업에 더 가까워질 것

## Comments



### Comment 31666

- Author: joon14
- Created: 2024-11-25T11:00:09+09:00
- Points: 1

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