Scala는 객체지향의 개념과 함수형의 개념이 섞인 언어이다. 객체지향 개념이 있듯이 Scala에는 당연히 Class가 존재한다. Scala에서의 Class는 Java의 Class와 유사하지만, Scala에서는 Class가 파라미터를 가질 수 있다는 차이점을 갖고 있다. 아래 소스코드는 Scala 코드로 작성한 파라미터를 가지는 Class의 예제이다. class Complex(real: Double, imaginary: Double) { def re() = real def im() = imaginary } 이 Complex Class (복소수 클래스)는 두 개의 인자를 받는다. 하나는 복소수의 실수 부분이고, 또 다른 하나는 복소수의 허수 부분에 해당한다. 이 파라미터는 Complex 클래스의 인스턴스를..
Scala의 장점 중 하나는 Java 코드를 사용할 수 있다는 점이다. 사용하고 싶은 Java 클래스를 import 하여 사용하면 된다. 또한 java.lang 패키지 하위에 있는 모든 클래스들은 Scala에선 따로 import 하지 않아도 기본적으로 사용할 수 있다. 다음은 Java 코드를 Scala 코드에 적용해보겠다. Java의 Date class와 Dateformat class는 날짜 관련한 유틸리티 클래스로 강력한 기능을 제공하고 있다. 이를 Scala 코드에서 다음과 같이 사용할 수 있다. [ 현재 시간을 한국에서 사용하는 시간대 표현으로 출력하는 코드 ] import java.text.DateFormat._ import java.util.{Date, Locale} object KoreaDat..
스칼라 프로젝트를 만들고, Hello World를 출력해보는 코드를 작성해보자. 일반적으로 자바 프로그래밍을 해본 사람이라면 Hello World 코드를 다음과 같이 작성할 것이다. public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } 반면 스칼라 코드는 다음과 같다. object Helloworld { def main(args: Array[String]): Unit = { println("Hello, World") } } 자바에서 정적멤버(함수 또는 필드)를 선언하기 위해 클래스의 일부로 정적 멤버를 정의한다. 하지만 정적멤버에 대한 개념이 없는 스칼라에서는 이러한 ..
최근 예전에 꿈꿨던 데이터 엔지니어의 꿈을 다시 상기하면서 Scala 공부를 시작했다. Intellij를 사용하고 있기에 스칼라 개발 환경을 구축하는 것은 Intellij 플러그인 설치로 쉽게 해결했었는데, REPL 환경에서 공부를 하고 싶어 Window 10에서 Scala REPL 환경을 구축하는 내용을 공유해본다. REPL은 Run Evaluate Print Loop 의 준말이다. 실행하고, 평가하고(구문을), 출력하고, 이 과정을 반복한다는 뜻을 가진다. 먼저 Scala 공식 홈페이지에 접속 해보자. The Scala Programming Language www.scala-lang.org 다음은 스칼라 언어를 소개하는 문구이다. 스칼라는 객체지향 개념과 함수형 개념이 섞인 언어임을 설명하고 있다. ..