스칼라 초보가이드

개요

Scala는 스위스의 École Polytechnique Fédérale de Lausanne (EPFL)에서 교수를 하는 독일계 컴퓨터 과학자 Martin Odersky가 디자인한 언어입니다. Martin은 2001년 Scala의 생성을 위해 일시 시작했고, 그것은 2004년 처음 발표되었습니다.

Scala는 Scalable Language의 약자로 일반적인 목적의 언어로 객체 지향이며 Java 프로그래밍 언어와 일부 공통점을 가지고 있습니다. 함수형 프로그래밍을 지원합니다. Scala의 디자인 결정 중 많은 것들은 Java 프로그래밍 언어의 단점을 해결하기 위한 것입니다.

Scala가 제공하는 몇 가지 특징은 다음과 같습니다:

  • Scala의 소스 코드는 Java bytecode로 컴파일 될 수 있으며, Java 가상 머신 (JVM)에서 실행할 수 있습니다.

  • Java와의 언어 상호 운용성을 제공하여 양쪽 언어로 작성된 라이브러리를 Scala 또는 Java 코드베이스에서 참조할 수 있습니다.

  • Java와 마찬가지로 Scala는 중괄호 문법을 사용합니다.

  • 함수형 프로그래밍 언어들의 많은 기능을 가지고 있습니다. 例如 Scheme, Standard Machine Learning, Haskell 같은 것들로부터 쿠리RING, 형 추론, 불변성, 지지 않은 평가, 패턴 매칭 등이 있습니다.

  • JavaScript를 사용하는 Web 어플리케이션 지원

  • Java와는 달리 Scala는 연산자 오버로딩, 선택적인 매개변수, 명명된 매개변수, 그리고 라이브 문자열을 지원합니다.

Scala에 대한 흥미로운 사실은 스칼라의 확장성과 백엔드 운영에서 사용할 수 있는能力로 Apple, Twitter, Walmart, Google와 같은 기업에서 广泛地 사용되고 있음을 말합니다.

Jupyter Notebook에 Scala 설정

Jupyter Notebook은 컴퓨터 과학에서 가장 널리 사용되는 도구로, 특히 데이터 과학 분야에서입니다. spylon-kernel의 도움으로 Scala 개발을 지원합니다.

노트: Jupyter Notebook에 익숙치 않은 분들은 자세한 튜토리얼을 자유롭게 확인해 주세요.

Scala 환경을 Jupyter Notebook에 설정하는 것은 별로 어렵지 않습니다. 그러니까 몇 가지 단계로 빨리 설정해 보겠습니다.

  • 첫째, spylon-kernel을 설치합니다.

    pip install spylon-kernel (Python 2)
    pip3 install spylon-kernel (Python 3)

  • 다음으로, Jupyter notebook에서 scala-kernel을 선택할 수 있는 코어 스펙리퍼레이션을 생성합니다.

    python -m spylon_kernel install (Python 2)
    python3 -m spylon_kernel install (Python 3)

  • 그리고 중요한 단계로, spylon-kernel이 일부 spark 구성요소를 설치하기 때문에 pysparkfindspark를 설치합니다.

    pip install pyspark findspark (Python 2)
    pip3 install pyspark findspark (Python 3)

  • 결국, 你的 Jupyter 노트북을 시작하고 spylon-kernel 쿼리를 통해 훅ernel을 선택하면 준비되었습니다!

  • let’s 한 가지 코드 조각을 실행하여 Scala 훅ernel이 정확하게 구성되었는지 확인해봅시다.
val x = 2 val y = 3 x*y
x: Int = 2 y: Int = 3 res1: Int = 6

좋아! 따라서 상위 출력을 보면, 你的는 Jupyter 노트북에서 Scala 환경을 성공적으로 구성했다는 것을 알 수 있습니다.

기본적인 문법

let’s 시작하여 Scala에서 Hello, World!를 인쇄하십시오.

print("Hello, World!")
Hello, World!

正如你所见,这只是个 print 명령어를 따라 입력을 인자로 하는 것뿐입니다.

Now, let’s 여러 Syntax 관련 세부 사항을 Scala로 살펴봅시다:

  • Scala는 대소문자 구분되는 언어이며, DataCampdataCamp가 Scala에서 다른 의미를 가지는지 보았습니다.

  • Scala에서는 모든 클래스 이름은 첫 글자가 Upper Case로 되어야 합니다. 여러 単語이 조합되어 클래스 이름을 만들 때, 각 單어의 첫 글자는 모두 Upper Case로 되어야 합니다. 예를 들어 class MyScalaDataCampTutorial입니다.
  • Scala의 메서드 이름클래스 이름과 구별하기 위해 약간 다르게 작동합니다. 메서드 이름은 소문자로 시작해야 합니다 (Source). 여러 단어가 결합되어 메서드 이름을 형성하는 경우, 각 내부 단어의 첫 글자를 대문자로 합니다. 예를 들어, def firstDatacampScalaTutorial()

  • Scala에서 프로그램 파일의 이름은 객체 이름과 정확하게 일치해야 합니다. 파일을 저장할 때 객체 이름으로 저장하고 이름 끝에 .scala를 추가해야 합니다. 예를 들어 객체 이름이 ScalaTutorial인 경우 파일은 ScalaTutorial.scala로 저장해야 합니다.

    참고: 파일 이름과 객체 이름이 일치하지 않으면 프로그램이 컴파일되지 않습니다.

  • 마지막으로, 대부분의 프로그래밍 언어와 마찬가지로 Scala 프로그램 처리도 main() 메서드에서 시작되며, 이는 모든 Scala 프로그램의 중요한 부분입니다.

아래 그림은 Scala에서 상수나 변수로 사용하거나 다른 식별자로 사용할 수 없는 예약어를 보여줍니다.

(Source)

데이터 타입

Scala의 데이터 타입은 C, C++, Java, Python과 같은 다른 프로그래밍 언어와 ほぼ 동일하며, 유사한 메모리 footprint과 정밀도를 갖추고 있습니다.

결국, Scala에서 存在하는 데이터 타입의 일부를 살펴봅시다.

  • Int: 32-bit signed(正值와 부정값 双方을 취할 수 있음) 값의 범위는 $2^{-31}$에서 $2^{31} – 1$까지입니다.

  • Byte: 8-bit signed 값의 범위는 $2^{-7}$에서 $2^{7} – 1$까지입니다.
  • Short: 16-bit signed 값의 범위는 $2^{-15}$에서 $2^{15} – 1$까지입니다.
  • Long: 64-bit signed 값의 범위는 $2^{-63}$에서 $2^{63} – 1$까지입니다.
  • Float: 32-bit(単精度 浮動小数点)와 64-bit(双精度 浮動小数点)로 存在합니다.
  • Char: 16-bit unsigned(正值만 취할 수 있음) Unicode 문자입니다.

다른 데이터 형식들 중 일부는 문자열, BOOLE안, NULL입니다.

결론

이 튜토리얼을 완료하신 것을 축하드립니다.

Scala를 배울 수 있는 초보자들의 좋은 시작점입니다.

더 배우기 위해 DataCamp의 Scala 튜토리얼을 확인하세요:

Scala中的 함수와 메서드 기초

Scala中的 IF ELSE

Scala의 연산자

Scala의 리스트

Scala에 관련된 정보는 if/else, for 루프, Scala의 다양한 연산자 등이 더 있으며,将这些内容将在未来的教程中介绍, 따라서 계속 지켜봐 주세요!

참고:

이 튜토리얼과 관련된 질문은 아래 댓글 섹션에 자유롭게 남겨 주세요.

Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala