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 HelloWorlddef main→ 프로그램 시작점println→ 출력 함수
스칼라는 모든 것이 객체
object는 싱글턴 객체 (static class 개념)new없이 사용됨static이라는 키워드가 없음- 연산자와 함수도 객체임
함수 정의 방식
def main(args: Array[String]): Unit = { ... }
// def [함수명]([인자]): [반환타입] = { ... }
Unit은 Java의void에 해당
세미콜론 없음
- 문장 끝에 세미콜론
;생략 가능 - 써도 상관없지만 대부분 생략
스칼라 워크시트 (Scala REPL)
- REPL: Read Eval Print Loop
- 콘솔에서 실시간으로 테스트
- 간단한 로직, 실험적 코드를 빠르게 실행
자유롭게 플레이그라운드처럼 사용 가능하며, 결과를 즉시 확인할 수 있어 학습과 실험에 유용하다.