Origin: http://twitter.github.io/scala_school/ko/index.html # 스칼라 학교! ∅ 에서 분산 서비스까지 **다른 언어:** [English](http://twitter.github.io/scala_school/index.html) [Русский](http://twitter.github.io/scala_school/ru/index.html) ## 소개 스칼라 학교는 트위터에서 기획된 강좌로, 경력이 많은 엔지니어들이 생산성 높은 [스칼라(Scala)](https://www.scala-lang.org/) 프로그래머가 되도록 준비시키기 위한 것이었다. 스칼라는 비교적 새로운 언어이지만, 많은 기존 개념을 활용하고 있다. 따라서 이 강좌에서는 독자들이 개념에 대해서는 어느정도 잘 알고 있다고 가정하고 이를 스칼라에서 어떻게 사용하는지를 보여줄 것이다. 이런 방식을 택하면 엔지니어들이 더 효과적이고 빠르게 일정 수준에 도달할 수 있음을 알게 되었다. 이 글은 강좌에서 사용된 보조 교재이다. 하지만 그 자체로도 유용하다는 사실을 알게 되었다. ## 접근방식 스칼라를 가르칠 때, 발전된 자바로 다루기 보다는 새로운 언어로 취급하는 편이 더 합리적이라 생각한다. 자바 경험이 필요하지는 않다. 인터프리터와 객체지향-함수형 언어 스타일, 그리고 여기(트위터)에서 프로그래밍하는 스타일에 더 촛점을 맞출 것이다. 유지보수성, 표현의 명확성, 그리고 타입 시스템의 기능을 최대한 활용하는 쪽에 강조점이 주어질 것이다. 대부분의 강좌에서는 스칼라 REPL만 있으면 충분하다. 강좌를 따라해 보고 더 많은 실험을 해보길 바란다. 각 강좌를 스칼라를 탐구하기 위한 출발점으로 삼아라. ## 추가 정보 다음 링크에서 더 많은 것을 배울 수 있다. * **[효율적 스칼라(Effective Scala)](https://twitter.github.com/effectivescala/)** 트위터의 스칼라 "성공 사례"이다. 트위터 코드에 사용된 여러 용례를 익히는 데 유용하다. * **[scala-lang.org 문서](https://www.scala-lang.org/node/197)** 에는 자습서, 메뉴얼, API 참조문서, 여러 도서 등에 대한 정보가 포함되어 있다. * **[Scala API 문서](https://www.scala-lang.org/api/)** ### 한글 번역: [오현석(Hyunsok Oh)](https://enshahar.com/) ## Lessons <dl> [기초](https://hackmd.io/@2minchul/ryPMp0teH) <dd>값, 함수, 클래스, 메소드, 상속, try-catch-finally. 식 중심의 프로그래밍</dd> <dt>[기초(계속)](basics2.html)</dt> <dd>케이스 클래스, 객체, 패키지, apply, update, 함수는 객체이다(동일한 억세스 원칙), 패턴 매치</dd> <dt>[컬렉션](collections.html)</dt> <dd>리스트, 맵, 함수 콤비네이터(map, foreach, filter, zip, fold들)</dd> <dt>[패턴 매치와 함수 합성](pattern-matching-and-functional-composition.html)</dt> <dd>함수에 대한 추가 설명, 부분함수, 패턴 매치에 대한 설명</dd> <dt>[타입과 다형성의 기초](type-basics.html)</dt> <dd>기본 타입, 타입 다형성, 타입 추론, 공변성, 바운드, 한정하기</dd> <dt>[타입(고급 주제)](advanced-types.html)</dt> <dd>타입에 대한 추가 설명, 뷰 바운드, 상류 타입, 재귀적 타입, 구조적 타입</dd> <dt>[SBT](sbt.html)</dt> <dd>표준 스칼라 빌드 도구인 SBT에 대한 설명</dd> <dt>[컬렉션(계속)](coll2.html)</dt> <dd>스칼라 컬렉션 라이브러리 소개</dd> <dt>[specs로 테스트하기](specs.html)</dt> <dd>Scala 테스트 프레임워크 Specs로 테스트하기</dd> <dt>[스칼라의 동시성](concurrency.html)</dt> <dd>Runnable, Callable, 쓰레드, Future</dd> <dt>[Java + Scala](java.html)</dt> <dd>자바에서 스칼라 사용하기</dd> <dt>[피네이글(Finagle) 소개](finagle.html)</dt> <dd>피네이글 기본 요소: Future, Servie, Filter, Builder</dd> <dt>[검색조(Searchbird)](searchbird.html)</dt> <dd>피네이글로 분산 검색 엔진 만들기</dd> <hr /> [Fork me on GitHub](https://github.com/twitter/scala_school) Built at [@twitter](https://twitter.com/twitter) by [@stevej](https://twitter.com/stevej), [@marius](https://twitter.com/marius), and [@lahosken](https://twitter.com/lahosken) with much help from [@evanm](https://twitter.com/evanm), [@sprsquish](https://twitter.com/sprsquish), [@kevino](https://twitter.com/kevino), [@zuercher](https://twitter.com/zuercher), [@timtrueman](https://twitter.com/timtrueman), [@wickman](https://twitter.com/wickman), [@mccv](https://twitter.com/mccv) and [@garciparedes](https://github.com/garciparedes); Russian translation by [appigram](https://github.com/appigram); Chinese simple translation by [jasonqu](https://github.com/jasonqu); Korean translation by [enshahar](https://github.com/enshahar); Licensed under the [Apache License v2.0](https://www.apache.org/licenses/LICENSE-2.0).