프로그래밍

[SCALA] 스칼라란?

손가든 2024. 7. 12. 10:30

scala 코드를 분석하는 업무를 수행하며 스칼라 코드에 대해 처음 알게 되었다.
 
 
scala는 java보다 늦게 생겨나, 오래 전부터 인기를 끌어온 java보다 유명하지 않지만
 
최근 떠오르고 있는 함수형 프로그래밍을 접목하되, 객체 지향 프로그래밍까지 같이 챙겨가면서 Java와의 호환성도 좋아
 
비교적 최근에 많은 호응을 얻었다고 한다.
 
 
이미 자리 잡은 개발자들에게 스칼라가 왜 매력있는 언어였는지, 또 Java와는 어떤 연관성이 있는지 정리해보겠다.
 


 

Scala의 장점

 
1. 간결함, 그리고 표현력
 
스칼라는 함수형 프로그래밍을 지원하여 고전 Java에 비해 더 간결하고 표현력 있는 코드를 작성할 수 있게 해준다.
예를 들면 순회 컬렉션 처리에서의 람다 함수와 고차 함수를 사용하면 복잡한 코드를 더 간결하게 작성할 수 있다.
 

val numbers = List(1, 2, 3, 4, 5)
val sumOfSquares = numbers.map(x => x * x).sum

 
이러한 람다 식은 Java도 뒤늦게 이점을 확인하고, Java8에서 lambda 기능을 추가할 정도로 큰 이점 중 하나였다.
 
 
2. 고차 함수 및 불변성
 
함수형 프로그래밍의 핵심 요소인 고차 함수와 불변성을 기본적으로 지원한다.
고차 함수란 다른 함수를 파라미터로 받는 함수를 말한다.
 
고차 함수는 결과를 위해서 전역적인 추론이 필요한 상황들을 해당 함수 내의 지역적인 코드로 추론할 수 있도록 캡슐화 하는데에 이점이 있다. 
 
 
3. 패턴 매칭
 
패턴 매칭을 통해 복잡한 데이터 구조를 간단하고 명확하게 처리할 수 있다.
예를 들어 아래 처럼 if-else 상황을 case문으로 해결한다.

def describe(x: Any): String = x match {
  case 0 => "zero"
  case i: Int => "an integer"
  case _ => "something else"
}

 
 
4. 타입 추론
 
스칼라는 강력한 타입 추론을 제공하여 개발자가 명시적으로 타입을 지정하지 않아도 된다.
따라서 코드의 가독성이 높아지고, 작성 속도가 빨라진다.
 
 
5. 풍부한 표준 라이브러리 & Java와의 상호 운용성
 
스칼라는 Java와 같이 JVM 내에서 구동되므로, Java의 라이브러리의 호환성이 적용된다.
따라서 매우 다양한 작업을 쉽고 유연하게 처리할 수 있다.
 
또한 Java 코드와의 통합도 용이하다.