클로저 시작하기: 기본 개념과 7주 훈련 프로그램

클로저 시작하기 표지_small

 

저 자 : 캐린 마이어
역 자 : 박상규, 김만명, 김영태
판 형 : 172×225
쪽 수 : 280 페이지 (1도)
가격: 23,000원
ISBN : 978-89-6626-180-2 (93000)

 

 

처음 배우는 클로저, 이 책 한권이면 된다!

 

 
클로저를 다룬 많은 책들은 그 내용을 설명할 뿐이지만, 이 책은 실제로 가르쳐준다. 이 책의 훈련 프로그램을 따라가면 기초부터 탄탄하게 배울 수 있고, 클로저를 업무에 활용할 수 있는 충분한 능력을 갖추게 될 것이다.
—콜린 존스(Colin Jones), 8th Light 소프트웨어 서비스 이사

 

 
이 책은 클로저(Clojure) 전반에 대해 소개하는 친절한 안내서를 찾고 있는 프로그래머에게 안성맞춤이다. 저자는 JVM에서 실행되는 클로저라는 언어와 함수형 프로그래밍 개념에 대해 실용적인 방식으로 설명하고, 클로저를 체계적으로 배울 수 있도록 잘 설계된 7주의 훈련 코스를 제공한다.
이 책은 크게 두 부분으로 나눠볼 수 있는데, 전반부는 클로저의 고유한 특징을 소개하고 웹 앱을 포함한 두 개의 클로저 프로젝트를 실습할 수 있도록 안내한다. 후반부는 클로저 커뮤니티에 참여하는 방법과 프로그래밍에 필수적인 도구, 리소스를 제공한다.
클로저 1.8 버전에 맞춰 업데이트한 코드를 차근차근 따라하다 보면 어느새 클로저의 방식으로 사고하는 법을 몸에 익히게 될 것이다.

이 책에서 다루는 내용
· 클로저 식(expression)의 기본 구조
· 함수형 방식으로 코드를 만들고 제어하는 방법
· 클로저에서 현실 세계의 상태와 병행성을 다루는 방법
· 자바 클래스 이용 방법과 클로저에서의 다형성
· 클로저 프로젝트에서 라이브러리 사용/관리 방법
· 비동기적이고 병행적인 통신에 core.async를 사용하는 방법
· 클로저 프로그래밍에서 매크로의 힘을 알아보기
· 클로저 방식으로 생각하게 해주는 7주 훈련 코스

 

글쓴이 | 캐린 마이어 Carin Meier
대학에서 물리학을 공부했으며, 현재는 기업과 창업가를 위해 소프트웨어를 개발하고 있다. 대기업과 벤처 기업 모두에서 일해 본, 경험 많은 소프트웨어 개발자로 루비와 클로저의 전문가이다. 커뮤니티에 적극적으로 참여하고 있으며, 2013 OSCON과 스트레인지 루프(Strange Loop)에서의 기조 발표를 포함하여 다수의 콘퍼런스에서 발표했다. 신시내티 함수형 프로그래머 그룹(Cincinnati Functional Programmers Group)을 이끌고 있다.

옮긴이 | 박상규
자칭 한국의 클로저 전도사. 15년 경력의 임베디드와 애플리케이션 프로그래머로 현재 클로저 코리아 위키(http://clojure.or.kr)를 운영하고 있다. 구글 그룹스 K-Lisper와 한국 클로저 사용자 모임에서 구르마란 별칭으로 활동하고 있으며 IT 유니온에서 IT 노동자의 노동 조건 개선을 위해 노력하고 있다.

옮긴이 | 김만명
프로그래머. 웹 개발, 인공지능, 학습에 관심이 많다. 서울대학교에서 캐릭터 동작에 대한 주제로 박사학위를 받았다. 엔씨소프트, 소나클로를 거쳐 현재 인포크래프트에서 일하고 있다.

옮긴이 | 김영태
프로그래머. 수학과 TeX, 벡터 그래픽에 관심이 많다. 서울대학교에서 영어영문학을 전공했으며, 2009년 설립된 구글 그룹스 K-Lisper에서 초창기부터 현재까지 멤버로 활동하며 커먼 리스프와 클로저를 공부했다. 소나클로를 거쳐 현재 인포크래프트에서 일하고 있다.

 

 

[목차]

1부 클로저 여행 안내
1장 클로저의 구조
단순값으로 처음 시작하기
클로저 데이터를 컬렉션에 담기
– 리스트 컬렉션 사용하기
– 리스트로 무엇을 할 수 있을까?
– 벡터를 사용해 인덱스로 데이터 접근하기
– 컬렉션들의 공통점들
– 맵을 사용해 키-값 쌍의 데이터를 저장하기
집합을 사용해 유일한 데이터의 컬렉션 표현하기
– 단순값과 컬렉션에 대한 요약
리스트는 클로저의 핵심이다
심볼과 바인딩의 기술
함수 만들기
– 이름 공간에서 심볼을 관리하기

2장 제어문과 함수형 변환
논리에 따라 흐름 제어하기
– 컬렉션에 사용하는 논리 검사
– 흐름 제어 이용하기
함수를 만드는 함수
구조분해
지연의 힘
재귀
함수형 프로그래밍에서의 데이터 변환
– 궁극의 map
– 궁극의 reduce
– 다른 유용한 데이터 처리 함수들
3장 상태와 병행성
현실 세계의 상태와 병행성 다루기
– 독립적인 항목에 아톰 사용하기
– 조화로운 변경을 위해 ref 사용하기
– 비동기적 변경을 관리하기 위해 에이전트 사용하기

4장 자바 코드 가져다 쓰기와 다형성
자바 코드 가져다 쓰기
실용적인 다형성

5장 클로저 프로젝트와 라이브러리 사용법
클로저 에디터 선택하기
라이닝언으로 프로젝트 만들기
라이닝언으로 의존 라이브러리 관리하기
프로젝트에서 라이브러리 사용하기

6장 core.async로 통신하기
core.async 채널의 기본
core.async로 다과회에서 차 서비스하기
명령창에서 실행되는 다과회 만들기
– uberjar를 이용해 패키지 만들기

7장 클로저로 웹 애플리케이션 만들기
컴포저로 웹 서버 만들기
체셔 라이브러리와 링을 이용하여 JSON으로 응답하기
클로저스크립트로 브라우저에서 클로저 사용하기
브라우저 접속 REPL
클로저스크립트와 cljs-http 라이브러리로 HTTP 호출하기
클로저스크립트와 인포커스로 DOM 제어하기
인포커스로 이벤트 처리하기
클로저와 클로저스크립트 웹 애플리케이션 요약정리
다른 유용한 웹 개발 라이브러리들
– 히컵을 사용해 HTML 만들기
– 인라이브를 이용해 정적 HTML 파일을 템플릿으로 사용하기
– 내용 협상과 몇 가지 유용한 기능을 가진 리버레이터 사용하기
– JSON의 대안으로 작고 빠른 트랜싯 사용하기
– 옴을 사용해서 강력한 클라이언트 애플리케이션 만들기
– 웹 개발을 위한 라이브러리를 포괄적으로 모아 놓은 호플론과 루미너스 사용하기
– 데이터베이스 다루기
8장 매크로의 힘
매크로 탐험하기
매크로 만들기
템플릿을 이용해 매크로 만들기
2부 클로저 시작하기 훈련 프로그램
9장 클로저 커뮤니티에 참여하기
클로저 문서
– 클로저독스
– 그리므와
– 소스 찾아보기
라이브러리 탐색하기
– 클로자
– CrossClj
– 클로저웍스와 클로저 툴박스
클로저 뉴스
다른 클로저 프로그래머들 만나기
– 채팅하기
– 컨퍼런스
문제가 생겼을 때 도움받기
열정적인 클로저 프로그래머들과 함께 작업하기
요약정리

10장 클로저 시작하기 주간 훈련
이 훈련을 이용하는 방법
일정이 하루나 이틀 밀리면 어떻게 할까?
문제가 이해되지 않는다면?
1주차
– 1일차
– 2일차
– 3일차
– 4일차
– 5일차
2주차
– 1일차
– 2일차
– 3일차
– 4일차
– 5일차
3주차
– 1일차
– 2일차
– 3일차
– 4일차
– 5일차
4주차
– 1일차
– 2일차
– 3일차
– 4일차
– 5일차
5주차
– 1일차
– 2일차
– 3일차
– 4일차
– 5일차
6주차
– 1일차
– 2일차
– 3일차
– 4일차
– 5일차
7주차
– 1일차
– 2일차
– 3일차
– 4일차
– 5일차
축하합니다!

11장 더 먼 곳으로의 모험
변환자 소개
더 읽을거리