
파이썬(Python)과 자바(Java)는 가장 많이 사용되는, 인기 있는 프로그래밍 언어 중 하나이다. 올해 10월 티오베 지수(TIOBE Index)에서 파이썬이 자바를 제치며 20여 년 만에 가장 인기 있는 프로그래밍 언어로 올라섰다.
자바와 파이썬 모두 객체 지향 프로그래밍 언어로 오늘날 데이터 과학에서 가장 선호되는 언어이기도 하다. 그런데 데이터 과학을 위해선 어떤 언어를 선택해야 할까? 애널리티스 인디아 매거진이 데이터 과학 관점에서 파이썬과 자바의 문법, 퍼포먼스, 프레임워크 및 도구를 비교했다.
■ 문법(구문)
자바와 파이썬의 주요 차이점 중 하나는 문법에 있다. 프로그래머는 자바에서 코드를 작성할 때 변수의 데이터 유형을 정의해야 한다. 그리고 이 데이터 유형은 명시적으로 변경할 수 없으며 프로그램의 수명 동안 유지된다. 이는 자바가 강력한 타입화된 언어로 만든다.
반면 파이썬의 경우 변수의 데이터 타입이 런타임에 자동으로 정의된다. 변수의 타입은 프로그램 수명 동안 변경될 수 있으며, 파이썬은 동적으로 타입화된 프로그래밍 언어가 된다.
동적 타이핑을 사용하면 해당 언어를 사용하기 쉽고 코드 줄 수를 줄일 수 있다. 또한 자바에서는 쌍반점(;)을 사용해 구문을 끝내지 않거나 중괄호를 생략하면 컴파일 중 오류가 발생한다. 반면 파이썬은 이러한 복잡한 프로그래밍 구조를 따르지 않아 학습과 사용이 더 쉽다.
■ 퍼포먼스
속도의 측면에서는 자바가 더 유리하다. 파이썬은 소스 코드를 한 줄 한 줄 읽는 해석된 언어이다. 이는 파이썬의 소스 코드 속도를 느리게 만든다. 실제로 파이썬 프로그래밍에서 디버깅은 런타입 동안 발생한다. 반면 자바는 동시에 여러 개의 계산을 수행한다.
■ 프레임워크 및 도구
파이썬과 자바 모두 데이터 과학, 데이터 분석 및 머신러닝 작업을 지원하는 라이브러리 목록을 제공한다.
파이썬 라이브러리
- 판다스(Pandas) : 판다스는 파이썬에서 가장 인기 있는 오픈 소스 라이브러리이다. 대용량 데이터 집합을 처리하는 데 사용되며, 데이터 정렬, 고급 인덱싱 및 누락된 데이터 처리와 같은 직관적인 기능과 함께 유연하고 빠르고 표현력이 뛰어난 데이터 구조를 제공한다.
- 싸이파이(SciPy, Scientific Python) : 이름에서 알 수 있듯이 싸이파이는 과학, 복합적 수학, 공학과 관련된 문제를 푸는 데 사용된다. 통계, 선형 대수, 최적화 및 통합을 위한 루틴을 제공한다.
- 넘파이(NumPy, Numerical Python) : 넘파이는 통계 및 수학적 계산을 위한 기초적인 도구이다. 넘파이 위에 싸이파이, 판다스, 매트플롯 라이브러리(Matplotlib), 스테츠모델스(Statsmodels)를 포함한 라이브러리들이 세워진다.
- 텐서플로(TensoFlow) : 텐서플로는 구글 브레인 팀이 개발한 오픈 소스 라이브러리로 주로 파이썬의 딥 러닝 애플리케이션에 사용된다. ML 기반 애플리케이션의 배치를 돕는다.
자바 도구
- WEKA 3: 지식 분석을 위한 와이카토(Waikato) 환경의 줄임말로 데이터 구현과 처리 도구를 제공하는 오픈 소스 소프트웨어이다. 예측 모델링, 데이터 마이닝 및 분석에 주로 사용한다.
- 아파치 스파크(Apache Spark) : 빅데이터 처리를 위한 사용하기 쉽고 빠른 엔진이다. 아파치 하둡 맵리듀스(Apache Hadoop MapReduce)를 기반으로 하며 주로 대규모 데이터셋을 처리하는 데 사용된다. 여기에 스파크 SQL, 스파크 스트리밍, 스파크 머신러닝 라이브러리 등의 모듈이 내장되어있다.
- 자바 머신러닝(Java Machine Learning): 자바 머신러닝 라이브러리는 데이터 분류, 처리 및 클러스팅에 사용할 수 있는 방대한 머신러닝 및 데이터 마이닝 알고리즘을 제공한다.
- 딥러닝4j(Deeplearning4j): 딥러닝4j는 자바 프로그래머들이 머신러닝 애플리케이션을 만들 수 있도록 도와주는 오픈 소스 라이브러리이다.
■ 학습 난이도
파이썬의 학습 곡선이 자바만큼 가파르지 않기 때문에, 머신러닝 프로그래머, 특히 초보자들은 자바보다 파이썬을 선호한다. 실제로 파이썬은 '초보자 언어'로 꼽히는데, 머신러닝과 데이터 사이언스 온라인 학습 강좌 대부분이 초보자 친화적 기능을 위해 파이썬을 강조하고 있어 데이터 과학 분야에서 파이썬의 인기가 높아지고 있다.
한편 연구자들은 자신만의 라이브러리를 만들 때 깃허브(GitHub)와 같은 오픈 소스 플랫폼에 업로드한다. 이러한 대규모 개발자 컴퓨니티 지원으로 머신러닝 애플리케이션을 개발할 때 파이썬을 사용하는 것이 더 용이해진다.
[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]