Python은 데이터 분석 캠프를 진행하면서 많이 사용해 보았기 때문에
정확히 알지 못했던 개념들이나 코드 작성 방식, 유의사항들을 위주로 학습할 예정이다.
Airflow에서 Python Task를 작성할 때는 주로 간단한 스크립트를 실행시키는 수준의 문법만 필요하다. 데이터 엔지니어링 관점에서 보면, 대규모 데이터 프로세싱은 대부분 Java 기반의 프로그램이나 시스템에서 수행되고, 서버 역시 Java로 운영되는 경우가 많기 때문에 Java 문법은 상대적으로 깊게 다뤘다. 반면 Python은 간단한 자동화 스크립트나 Airflow와 같은 오케스트레이션 도구에서 특정 작업(Task)을 실행할 때 주로 사용하는 정도다.
Spark처럼 기본적으로 Java 기반으로 설계되었지만, 하이레벨 프로그래밍 모델을 통해 Python 전용 API도 제공하는 프레임워크들이 늘고 있긴 하다. 이런 경우 Python으로 코드를 작성하더라도 실제 실행은 내부적으로 Java 코드로 변환되어 처리된다. 사용성 측면에서는 Python이 더 쉽기 때문에 이러한 하이레벨 API를 제공하지만, 이는 어디까지나 비전문가나 분석가 등에게 편의성을 제공하기 위한 것이다.
기능 측면에서는 기본 API만 사용할 수 있기 때문에 한계가 있으며, 성능을 고려하거나 시스템을 깊이 이해하고 최적화하려면 결국 Java 기반 프로그래밍으로 돌아가야 하는 경우가 많다. 머신러닝 분야처럼 Python을 깊게 사용하는 영역도 있지만, 데이터 엔지니어링 자체에서는 Python이 그렇게 주력 언어로 사용되지는 않기 때문에 Python 문법 학습의 범위를 제한적으로 설정했다.