본문으로 건너뛰기

Scala 문법 스터디 - #0 스칼라 스터디 시작 & 특징들

회사에서 어쩌다 보니 스칼라를 공부하게 되었다.
사실 스칼라 자체보다 함수형 프로그래밍 개념을 배우기 위해 시작한 스터디였다.

첫 번째 책으로는 **「누구나 쉽게 스칼라 + 플레이」**를 선정했다.

누구나 쉽게 스칼라+플레이

국내에서 출간된 책이고 투표 결과 가장 많은 표를 얻어 선택했다.
책을 기반으로 정리하되, 추가적인 내용은 다른 자료로 보완할 예정이다.


스칼라의 특징

1. 직관적 + 신축성

  • 코드가 짧고 직관적
  • getter/setter 같은 반복작업 불필요

2. 풍부한 표현식과 연산자

  • 자바 기반이지만 자바보다 유연하고 가독성 높음

3. 동시성에 강한 언어

  • immutable을 통한 동시성 처리
  • Akka 같은 동시성 라이브러리 지원

4. 객체지향 + 함수형 언어

  • 모든 것이 객체

5. 맥락을 읽는 언어

  • 명시적 표현을 감춰 간결함 유지 가능

6. 자바와의 연계성

  • JVM 위에서 동작
  • Java 라이브러리 사용 가능

환경 세팅

JDK 설치

Scala IDE 설치


네이밍 컨벤션

  • 클래스, 객체, 트레이트: 대문자 시작
  • 전반적으로 Java와 유사한 관습을 따름

Hello World

object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello World!")
}
}
  • object HelloWorld → Java의 class HelloWorld
  • def main → 프로그램 시작점
  • println → 출력 함수

스칼라는 모든 것이 객체

  • object는 싱글턴 객체 (static class 개념)
  • new 없이 사용됨
  • static이라는 키워드가 없음
  • 연산자와 함수도 객체임

함수 정의 방식

def main(args: Array[String]): Unit = { ... }
// def [함수명]([인자]): [반환타입] = { ... }
  • Unit은 Java의 void에 해당

세미콜론 없음

  • 문장 끝에 세미콜론 ; 생략 가능
  • 써도 상관없지만 대부분 생략

스칼라 워크시트 (Scala REPL)

  • REPL: Read Eval Print Loop
  • 콘솔에서 실시간으로 테스트
  • 간단한 로직, 실험적 코드를 빠르게 실행

자유롭게 플레이그라운드처럼 사용 가능하며, 결과를 즉시 확인할 수 있어 학습과 실험에 유용하다.