프로그래밍 스칼라 (2판)
- 실용적인 스칼라 활용법을 익히는
가장 확실한 실전 바이블 (2.11.x 버전 기준)
프로그래밍에 대한 관심을 두다 보면,
다양한 프로그래밍 언어를 접할 수 있습니다.
물론 많은 사람들이 사용하는,
혹은 주변에서 좀 쉽게 접할 수 있는 언어라는 것들은
개개인에 따라 다를 수 있지만,
최근에는 '함수형 언어'라는 말을 좀 여러곳에서 들었습니다.
절차지향이라는 둥, 객체지향이라는 둥
어쩌면 정확히 개념을 알지도 못하면서
듣거나 떠들었을지도 모를
여러가지 언어들을 맛보고 사용해 보기도 했지만,
최근에는 함수형 언어에 대한 관심이
이전의 어느 때 보다도 더 늘어난것 같습니다.
함수형 언어에 대한 실체는 잘 모르겠지만,
어쨌든 함수형 언어와 관련된 책은
몇 권 본 것 같습니다.
LISP 에 대한 입문서도 읽어봤고,
이 책에서 알려주고 있는-이 책은 아닌-스칼라 언어에 대한
다른 책도 봤습니다. 이전에 봤던 책은 얇은 두께에
부담없이 읽을 수 있도록 난이도 또한 어렵지
않게 만들어진 입문서였습니다.
그 책에서는 스칼라에 대한 낯설음을 약간 해소할 수 있었고,
좀 더 넓고 깊은 스칼라에 세계를 알아보기 위해
이 책을 선택했습니다.
1. 이 책의 특징을 살펴보면 다음과 같습니다.
우선 가장 간단하게는 (혹은 당연하게는),
이 책의 제목과 부제에 나온 것 처럼
'실용적인' 스칼라 활용법을 익히기 위한 책입니다.
이는 상당히 중요한 이 책의 특징이라고 생각합니다.
어떤 프로그래밍 책의 경우, '실용적인' 측면보다는,
학문적인 측면이나, 이론적인 측면 혹은 정책이나 역사 등
다른 곳에 촛점을 맞추었을 수 있는데요.
프로그래밍 언어에 대한 실용적인 활용법을
목표로 하고 있다는 점에서, 프로그래밍 언어를 익히는데
좀 더 흥미롭게 다가갈 수 있었습니다.
둘째로는 이 책의 특징 혹은 난이도나 대상 독자를 확인할 수
있는 다음 문장으로 대신할 수 있습니다.
'이 책은 스칼라에 대한 전반적인 지식을 빠르게 얻고
싶어하는 경험 많은 개발자에게 적합하다' (13쪽)
라고 적혀있습니다.
프로그래밍에 대한 기본적인 경험이 있어야만 책을 좀 더
쉽고 효율적으로 읽어나갈 수 있다는 것을 알 수 있는데요
실제로 이 책에서는 독자가 객체지향 프로그래밍을 잘 알고 있다고
가정하고 설명해 나갑니다.
프로그래밍을 처음 배우는 초보자라면, 그다지 권하고 싶지 않습니다.
엄청나게 어려운 것은 아니지만, 효율성이라는 측면에서 다른 것을
먼저 학습해 보는 것도 나쁘지 않을 것 같습니다.
2. 기본적인 내용을 먼저 읽다
이 책은 전체 4부로 구성되어 있습니다.
그 중 앞의1, 2부가 기초적인 내용이고,
3, 4부가 좀 더 어려운 내용입니다.
실제 이 책의 분량을 확인해 보면, 2부가 45%정도 됩니다.
특정 프로그래밍 언어(스칼라)에 대한 학습을 하는 것이다보니
어쩌면 당연할 수도 있을 것 같습니다.
저 또한 스칼라에 대한 '실용적인' 쓰임새에 관심을 두다 보니
1, 2부 읽어 보고, 3부는 넘어가고, 4부는 21장을 우선 읽었습니다.
제 생각으로는 1부 1장 -> 4부 21장 -> 1부 2장 이후 이런 순서로
읽는 것이 좋을 것 같습니다.
기본적인 환경 설정에 대한 내용 (1부 1장)은
실습을 위해 필요하므로 자연스럽게 읽겠지만,
스칼라 도구와 라이브러리 (4부 21장)에 대한 설명은
책의 뒷부분에 나오기 때문에, 나중에 읽게 되기 쉬운데요
환경설정하면, 개발 환경에 대한 고민을 먼저 해보는 것도
나쁘지 않을 것 같습니다.
3. 스칼라 프로그래밍에 대한 초보자로서의 아쉬움
이런 바이블류의 책을 읽으면서 느끼는 아쉬움은 바로
샘플 코드에 대한 것입니다.
물론 각각의 기능에 대한 샘플 코드가 있어서,
개별 기능을 확인하는데 도움을 받을 수 있습니다.
하지만 개인적으로는, 단순 기능 확인 수준의
예제 코드보다는 좀 더 크고
초보자에게 너무 크지 않은
일종의 '미니 프로젝트' 형식의 예제가
좀 더 있었더라면 하는 아쉬움이 남습니다.
스칼라는 최근 유행하는 함수형 언어의 특징을 맛 볼 수 있는
대표적인 언어입니다. 실제로 많은 곳에서 실제 서비스 개발에
사용중인 살아있는 언어라고 할 수 있는데요.
스칼라의 실용적인 사용법을 확인해보고 싶은 분들에게
도움이 되리라 생각합니다.