데이터 엔지니어링에서 프로그래밍 언어의 활용

2019-03-04

Data Engineering TIL (20190302)

study program : https://www.fastcampus.co.kr/extension_des

[학습목표]

  • 데이터 엔지니어링에서 프로그래밍 언어의 활용 이해

  • Python 프로그래밍 언어 숙달

[학습기록]

  • 데이터 사이언스 분야로 진출하려면 파이썬 프로그래밍 언어를 숙달하는 것이 좋다. 데이터 사이언스 관련 어플리케이션 지원이 많이 되기 때문이다. 프로그래밍 언어는 잘하면 잘할 수록 업무의 퍼포먼스가 향상된다.

  • 데이터 엔지니어링 분야로 진출하고자 하면 파이썬 뿐만 아니라 몇몇 프로그래밍 언어를 더 숙달해야 한다. 자바, 스칼라, 자바스크립트 프로그래밍 언어정도는 추가적으로 알고 있어야 한다.

  • 데이터 엔지니어가 되려면 참 알아야할 것이 많다. 예를들어 데이터 엔지니어링은 빅데이터를 다루기 때문에 기본적으로 하둡의 원리를 알아야하는데 자바 프로그래밍 언어로 만들어졌기 때문이다. 하둡 사용자 입장에서는 굳이 자바프로그래밍 언어를 알아야 할 필요까지는 없지만 엔지니어 입장에서는 인프라의 구조와 원리를 안다는 측면에서 자바를 알고 있는 것이 좋다.

  • 아파치 스파크가 스칼라 언어로 짜여져 있기 때문에 알아야 한다. 파이썬 프로그래밍 언어는 왜 중요하냐면 머신러닝, 딥러닝 분야가 파이썬을 중심으로 발전했기 때문이다. 그런의미에서 파이썬은 필수이다. 스파크도 최신기술들이 파이썬을 중심으로 배포가 되고 있어서 중요하다. 한마디로 파이썬은 머신러닝, 딥러닝, 빅데이터 분야 모두를 커버할 수 있는 언어이다. 그 외로 자바스크립트는 웹에서 데이터 분석관련 시각화를 할 수 있기 때문에 알고 있어야 한다.

  • 머신러닝 분야에는 고성능 연산이 필요한데 몇줄 안되는 코드로 복잡한 연산을 구현할 수 있고, C언어와 연결이 용이한 파이썬 프로그래밍 언어가 많이 쓰인다. 이런 장점 때문에 데이터분석 관련 파이썬 툴도 다양하게 잘 개발되었다.

  • 아파치 스파크는 빅데이터를 다루는 도구이다. 판다스에서 하는 일을 빅데이터 스케일에서 할 수 있는 프레임워크이다. 스파크는 스칼라 언어로 작성되어 제공되고 있지만 통상 PySpark라는 이름으로 파이썬언어를 이용해서 많이 활용하고 있다. 과거에는 스칼라로 작성된 스파크 엔진이 PySpark보다 성능이 좋았지만 현재는 PySpark도 비슷한 성능을 내고 있다. 최근에 머신러닝 분야가 발전하면서 PySpark 사용빈도가 급격하게 늘고 있는 추세이다.

[수업중 Q&A]

  • 질문 : 통상 사람이 먼저 가설을 세우는것이 아니라 데이터를 먼저 분석하고 거기에 따른 가설이 나오는 자동화 프로그램(?)이 있다고 하신게 기억이 납니다. 머신러닝 관련 내용이었던것 같은데, 관련 자료나 간단하게 시작해볼수 있는 것들이 있을지 궁금합니다.

  • 답변 : 최근에 머신러닝, AI분야가 발전하면서 가설을 세우고 모델을 구현하는 방식의 순서가 조금씩 바뀌고 있는것으로 판단된다. 예를들어서 EDA, 최적의 모델 등을 자동으로 찾아주는 ‘데이터로봇’이라는 프로그램이 있다.