스칼라 학교!

∅ 에서 분산 서비스까지

다른 언어: English Русский

소개

스칼라 학교는 트위터에서 기획된 강좌로, 경력이 많은 엔지니어들이 생산성 높은 스칼라(Scala) 프로그래머가 되도록 준비시키기 위한 것이었다. 스칼라는 비교적 새로운 언어이지만, 많은 기존 개념을 활용하고 있다. 따라서 이 강좌에서는 독자들이 개념에 대해서는 어느정도 잘 알고 있다고 가정하고 이를 스칼라에서 어떻게 사용하는지를 보여줄 것이다. 이런 방식을 택하면 엔지니어들이 더 효과적이고 빠르게 일정 수준에 도달할 수 있음을 알게 되었다. 이 글은 강좌에서 사용된 보조 교재이다. 하지만 그 자체로도 유용하다는 사실을 알게 되었다.

접근방식

스칼라를 가르칠 때, 발전된 자바로 다루기 보다는 새로운 언어로 취급하는 편이 더 합리적이라 생각한다. 자바 경험이 필요하지는 않다. 인터프리터와 객체지향-함수형 언어 스타일, 그리고 여기(트위터)에서 프로그래밍하는 스타일에 더 촛점을 맞출 것이다. 유지보수성, 표현의 명확성, 그리고 타입 시스템의 기능을 최대한 활용하는 쪽에 강조점이 주어질 것이다.

대부분의 강좌에서는 스칼라 REPL만 있으면 충분하다. 강좌를 따라해 보고 더 많은 실험을 해보길 바란다. 각 강좌를 스칼라를 탐구하기 위한 출발점으로 삼아라.

추가 정보

다음 링크에서 더 많은 것을 배울 수 있다.

한글 번역: 오현석(Hyunsok Oh)

Lessons

기초
값, 함수, 클래스, 메소드, 상속, try-catch-finally. 식 중심의 프로그래밍
기초(계속)
케이스 클래스, 객체, 패키지, apply, update, 함수는 객체이다(동일한 억세스 원칙), 패턴 매치
컬렉션
리스트, 맵, 함수 콤비네이터(map, foreach, filter, zip, fold들)
패턴 매치와 함수 합성
함수에 대한 추가 설명, 부분함수, 패턴 매치에 대한 설명
타입과 다형성의 기초
기본 타입, 타입 다형성, 타입 추론, 공변성, 바운드, 한정하기
타입(고급 주제)
타입에 대한 추가 설명, 뷰 바운드, 상류 타입, 재귀적 타입, 구조적 타입
SBT
표준 스칼라 빌드 도구인 SBT에 대한 설명
컬렉션(계속)
스칼라 컬렉션 라이브러리 소개
specs로 테스트하기
Scala 테스트 프레임워크 Specs로 테스트하기
스칼라의 동시성
Runnable, Callable, 쓰레드, Future
Java + Scala
자바에서 스칼라 사용하기
피네이글(Finagle) 소개
피네이글 기본 요소: Future, Servie, Filter, Builder
검색조(Searchbird)
피네이글로 분산 검색 엔진 만들기
Fork me on GitHub Built at @twitter by @stevej, @marius, and @lahosken with much help from @evanm, @sprsquish, @kevino, @zuercher, @timtrueman, @wickman, and @mccv; Russian translation by appigram; Chinese simple translation by jasonqu; Korean translation by enshahar;