1.스칼라?
스칼라는 2004년 마틴 오더스키(Martin Odersky)가 발표한 객체 지향 언어의 특징과 함수형 언어의 특징을 함께 가지는 다중 패러다임 프로그래밍 언어입니다.
특징
JVML(Java Virtual Machine Language)
스칼라는 자바가상머신(JVM)에서 동작하는 JVML입니다. JVML이란 자바가상머신(JVM) 위에서 동작하는 언어들로 scala, kotlin, Groovy 등1이 있습니다.
자바 가상 머신 위에서 동작하기 때문에 자바의 모든 라이브러리를 사용할 수 있습니다. 스칼라는 스칼라 컴파일러를 통해 스칼라 코드를 바이트 코드로 변환하고, 바이트 코드는 JVM 상에서 자바와 동일하게 실행됩니다.
![](https://blog.kakaocdn.net/dn/p2T55/btrtNQCsyw0/MGU8APCz5j9OTRIK1vv4k1/img.png)
함수형 언어
스칼라는 함수형 언어의 특징을 가지기 때문에 자바에 비하여 코드길이가 짧습니다. 겟터, 셋터, 생성자를 제거하고, 표현식을 간소화 하여 자바대비 짧은 코드로 동일한 내용을 작성할 수 있습니다.
![](https://blog.kakaocdn.net/dn/bnRFw1/btrtNROXPXB/jeeZbTjq1dN8IbpXZBptd0/img.png)
바이트 코드 최적화
바이트 코드를 최적화 하여하여 자바 보다 20% 정도 속도가 빠릅니다. 같은 일을 하는 프로그램을 작성하여도 자바에 비해 코드도 짧고, 속도도 빠릅니다.
![](https://blog.kakaocdn.net/dn/uuwh0/btrtNQ3wLuQ/cAtF7v2vaQeNyVKzluD9k1/img.png)
동시성에 강함
스칼라는 변경 불가능한 Immutable 변수를 많이 가지고 있습니다. 이를 통해 속성을 변경 불가능하게 하고, 순수 함수를 사용하여 병렬 프로그래밍 처리에 강합니다.
'빅데이터 & 인공지능' 카테고리의 다른 글
Spark MLlib(Spark Machine Learning Library) (0) | 2022.02.21 |
---|---|
Spark RDDs vs DataFrames vs SparkSQL 성능비교 (0) | 2022.02.21 |
RDD(Resilient Distributed Dataset ) (0) | 2022.02.21 |
Apache Spark (0) | 2022.02.21 |
MPP(Massivly Parallel Processing Database) (0) | 2022.02.21 |