서브메뉴

본문

폴리글랏 프로그래밍 (새로운 자바 언어를 기다리는 히치하이커를 위한 안내서)
폴리글랏 프로그래밍 (새로운 자바 언어를 기다리는 히치하이커를 위한 안내서)
저자 : 임백준
출판사 : 한빛미디어
출판년 : 2014
ISBN : 9788968480867

책소개

이 책은 제일 먼저 폴리글랏이라는 개념 자체에 대해 알아본다. 이어서 자바의 역사와 현주소를 짚어보고, 자바와 함께 동시대의 한 축을 담당했던 C#의 역사와 기능에 대해서 살펴보고, 마지막으로 JVM 위에서 차세대 언어로 주목을 받는 함수형 언어인 스칼라에 대해서 살펴본다. 책의 1부에서는 자바에 대해서 논하고, 2부에서는 C#에 대해서, 그리고 마지막인 3장에서는 스칼라에 대해서 다룬다. 수많은 언어 중에서 특별히 세 언어를 선택한 것은 필자의 개인적인 경험과 무관하지 않지만, 책에서 말하고자 하는 주제를 풀어가기에 도움이 되기 때문이기도 하다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

이 책이 제시하는 핵심 내용

이제 프로그래머는 어느 언어 하나에 안주할 수 없다. 패러다임을 달리 하는 여러 언어를 자유롭게 구사하지 않으면 살아남을 수 없는 폴리글랏 프로그래밍의 시대가 도래했기 때문이다. 물론, 자신의 포트폴리오를 어떤 언어로 구성하는지는 각자의 몫이다. 하지만 앞으로는 '프로그래머가 어떤 언어에 대해서 얼마나 많이 알고 있는가'가 아니라 '어떤 언어를 얼마나 빠르게 학습할 수 있는가'가 더 중요하다는 점을 기억하기 바란다.

* 폴리글랏이란 무엇인가?
여러 개의 언어를 사용하는 것을 영어로 폴리글랏(ployglot)이라고 말한다. 원래는 한국어나 영어 같은 실제 세계의 언어에 대해서 적용되는 단어지만 이 책에서는 컴퓨터 프로그래밍 언어를 대상으로 사용했다. 새로운 표현은 아니다. 미국의 프로그래밍 업계에서는 폴리글랏이라는 표현을 사용한 지가 이미 오래되었다.

이 책의 특징과 장점

이 책은 제일 먼저 폴리글랏이라는 개념 자체에 대해 알아본다. 이어서 자바의 역사와 현주소를 짚어보고, 자바와 함께 동시대의 한 축을 담당했던 C#의 역사와 기능에 대해서 살펴보고, 마지막으로 JVM 위에서 차세대 언어로 주목을 받는 함수형 언어인 스칼라에 대해서 살펴본다. 책의 1부에서는 자바에 대해서 논하고, 2부에서는 C#에 대해서, 그리고 마지막인 3장에서는 스칼라에 대해서 다룬다. 수많은 언어 중에서 특별히 세 언어를 선택한 것은 필자의 개인적인 경험과 무관하지 않지만, 책에서 말하고자 하는 주제를 풀어가기에 도움이 되기 때문이기도 하다.

어떤 독자를 위한 책인가?

이 시대를 살아가는 모든 프로그래머의 필독서다

저자의 말

나는 15년 이상 자바로 프로그래밍을 수행해왔다. 중간에 회사를 옮기면서 C#과 스칼라를 순차적으로 익히게 되었는데, 자바와 다른 언어를 공부하면서 전과 다른 프로그래밍의 맛을 알게 되었다. 그런데 이 ‘맛’이라는 것이 개인의 흥취하고만 연관된 것이 아니라 어느 정도 시대의 흐름을 반영하고 있다는 생각을 하게 되었다. 이 책은 이러한 나의 생각과 경험을 바탕으로 해서 쓰게 되었다.
오늘날 프로그래밍 언어는 진정한 의미에서의 춘추전국시대를 구가하고 있다. 범위를 JVM으로만 좁혀서 생각해도 (대학이나 연구실에서 만들어내는 실험용 언어를 제외하고) 실제로 현장에서 사용되는 언어 수가 50개가 넘는다. 그중에서 스칼라(Scala), 클로저(Clojure), 그루비(Groovy), 팬텀(Fantom) 등이 자바의 후계자로서 많은 관심을 받으면서 발전하고 있고, 동적언어인 루비나 파이썬 등을 JVM용 언어로 수정한 제이루비(Jruby)나 제이썬(Jython) 등도 심심치 않게 사용되고 있다.
마이크로소프트 닷넷 진영의 CLR 위에서도 비슷한 양상이 펼쳐지고 있다. 앞에서 언급한 언어들이 대부분 CLR에서 동작하는 것은 물론이고 함수형 언어인 F#이 많은 주목을 받고 있다. 요즘은 함수형 프로그래밍 언어에 대한 관심이 상당히 크게 일어나서 해스켈(Haskell), 얼랭Erlang), 오캐멀Ocaml)과 같은 언어들을 이용해서 소프트웨어를 제작하는 사례도 많다. 물론 자바스크립트도 있다. 자바스크립트가 조잡한 HTML 렌더링 도구에 불과하던 시절은 오래전 이야기다. 자바스크립트를 비롯해서 마이크로소프트의 타입스크립트TypeScript)나 구글의 다트Dart를 빼놓고 프로그래밍 언어를 이야기할 수는 없다. 매쓰메티카(Mathematica)라는 작은 성안에서만 안주하다가 최근 들어서 세상 밖으로 머리를 내밀고 있고 울프람(Wolfram) 언어도 있다. 이러한 언어의 나열에는 끝이 없을 정도다.
이러한 상황에서는 단순히 언어를 선택하는 것이 문제가 아니다. 정적타입 시스템 vs 동적타입 시스템, 혹은 객체지향 패러다임 vs 함수형 패러다임과 같이 패러다임을 선택하는 것이 문제가 되는 경우가 많다. 실전 프로그래밍에 대해서 깊고 풍부한 지식을 쌓지 않은 사람에게 패러다임의 선택은 쉽게 내릴 수 없는 어려운 결정이다. 물론 일반적인 프로그래밍을 수행하는 사람들이 이러한 언어와 패러다임을 모두 알아야 할 필요는 없다. 그렇게 하는 것은 가능하지도 않다.
모든 것을 알 필요가 없다고 해서 어떤 하나의 언어와 평생을 함께해도 좋다는 뜻은 아니다. 좋은 프로그래머가 되려면 기본적으로 능숙하게 다루는 언어가 두세 개 정도는 되어야 한다. 그 밖에 다른 언어들에 대해서도 개략적인 흐름 정도는 의식하고 있어야 한다. 자기가 다루는 언어 하나만으로 평생을 ‘우려먹으려는’ 생각을 가지고 있는 사람은 언젠가 도태될 수밖에 없다. 예컨대 C 언어나 자바를 사용하는 프로그래머 중에서 자기 것 이외에 다른 도구는 바라볼 생각조차 하지 않는 사람이 적지 않은데, 어떤 의미에서 이 책은 그러한 사람들에게 새로운 인식의 지평을 제공하기 위해서 쓰였다고 봐도 좋을 것이다.
이 책은 새로운 언어의 문법이나 프로그래밍 테크닉을 학습하기 위한 책이 아니다. 그런 책은 이미 시중에 충분히 많다. 글을 쓰다가 문득 언어의 문법적인 측면을 설명하는 데 집중하고 있는 자신을 발견하고, 쓰던 내용을 모두 삭제한 적이 여러 번 있었다. 언어에 대해서 이야기하려면 구체적인 문법 이야기를 완전히 피할 수는 없지만 이 책에서는 구체적인 문법이나 테크닉과 관련된 내용을 최소한으로 줄이기 위해서 노력을 기울였다. 그렇기 때문에 독자가 사용하는 언어가 자바든, C 언어든, C++든 상관없이 이 책을 즐길 수 있을 것이다.
그동안 팟캐스트, 블로그, 책, 인터넷 사이트 등을 통해서 보고 들은 흥미로운 이야기 중에서 자바, C#, 스칼라에 대한 이야기를 추리고 정리하여 이 책에 담았다. 여기서 이야기라고 함은 내가 생각하기에 재미도 있고 의미도 있을 거라고 생각하는 내용을 두서없이 풀어가는 ‘잡설’이다. 나는 그런 식으로 흘러가는 이야기를 읽는 것을 좋아해서, 그런 식의 이야기를 쓰는 것도 좋아한다. 그래서 내가 지금까지 써온 책들이 모두 다 그랬듯이, 이 책 또한 도서관에서 자세를 가다듬고 읽는 것이 아니라 버스나 전철 안에서, 화장실이나 식탁 위에서, 잠자기 직전에 침대에서, 읽다가 던지고 읽다가 던지는 가볍고 경쾌한 내용일 거라고 믿는다..
[교보문고에서 제공한 정보입니다.]

목차정보

프롤로그

01. 자바
__자바를 넘어서
__제임스 고슬링과 오라클
__람다와 클로저
__닐 게프터
__연산자 오버로딩
__제네릭
__자바 8

02. C#
__델파이
__속성과 대리자
__일급 함수
__또 다른 차이들
__링큐 LINQ

03. 스칼라
__가디언
__제임스 스트라칸 2009년 7월 6일 월요일
__트위터
__월스트리트
__마틴 오더스키
__언어의 추상
__트레이트

에필로그
부록. 스칼라 학습을 위한 자료
[교보문고에서 제공한 정보입니다.]

QuickMenu