본문 바로가기

카테고리 없음

누구나 쉽게 스칼라+플레이


<누구나 쉽게스칼라+플레이>나는 사실 이 책의 제목에 표시된 "스칼라"도 모르고 "플레이"라는 것도 모른다.그래서 도대체 그것들이 무엇인지 궁금했었기에 이번에 한빛미디어에서 진행하는 "나도리뷰어"라는 서평에 참가하게 되었다.자 그럼! 어떤 내용들로 구성되어있는지 확인해보자.<스칼라+플레이 구성>전반부(Chapter 1 ~ 10)는 "스칼라"에 대한 설치부터 문법들에 대한 전반적인 내용들로 구성되어 있다.후반부(Chapter 11 ~ 21)는 "플레이 프레임워크"에 대한 내용으로 구성되어 있다.목차는 여기"http://www.hanbit.co.kr/store/books/look.php?p_code=B3093563566"에서 확인해면 된다.<스칼라는 무엇인가?????>저자의 서문을 보면"스칼라는 마치 자바의 미래 모습을 미리 맛보는 듯한 느낌을 줍니다. 자바는 사실 보수적인 언어이고 그에 따른 장점이 있는 언어이지만,스칼라는 좀 더 세련되고 젊은 감각으로 자바의 미래를 반영합니다."라고 씌여있다.도서를 읽고 나니왜? 저자가 스칼라를 젊은 감각이라고 하는지 알 수 있게 되었다.스칼라를 알아가다 보면 복잡하고 불편한 과거의 스타일을 간소화하고 깔끔하게 정리한듯 한듯한 느낌을 받을 수 있었다.특히 Chapter 6. 패턴매칭 부분을 보면 정말 자바나 다른 언어들과 다르게 너무 자유로운 스칼라의 멋진 모습을 엿볼 수 있었다.<스칼라+플레이의 장점은??>1. 스칼라와 자바를 비교하면서 설명하고 있다. 전체적으로 자바의 기반을 하고 있는 스칼라이기 때문에 스칼라 설명 시 자바와 비교하여 설명해주니 쉽게 이해하는데 도움이 된다. 그리고 왜 그렇게 사용해야 하는지에 대한 답도 들을 수 있다.2. 책이 생각보다 쉽게 읽힌다. 저자가 우리나라 사람이라서 그런지 모르겠으나 번역서들 보다는 좀 더 쉽게 읽히는듯한 느낌을 받았다.3. 저자의 경험이 묻어나는 TIP들이 도움이 된다. Chapter 중간중간 나오는 저자의 TIP 공간은 저자의 경험에서 나온 답변이나 궁금해할만한 내용들에 대해서 잘 설명해주고 있다.4. 재미난 예제들에 웃음이 난다. 역시나 외국 저자가 아니여서 그런지 예제는 딱 봐도 우리 입맛에 맞게 씌여져 있는 것 같다. 예로 "드랍십"이라는 단어도 보이고 "고지용", "김말자", "김말이" 등을 보면서 헛움음이 자아냈다.5. 간단한 미리게임 및 실습을 따라해볼 수 있다. 스칼라를 이용해서 야구게임을 만들어 볼 수 있다. 그리고 플레이 프레임워크에서는 웹소켓등을 이용하여 채팅페이지도 만들어볼 수 있다.<누구나쉽게스칼라+플레이> 는 스칼라를 처음 접할 때 보기에 편한 책인 것 같다.더불어 플레이 프레임워크와 아카 등 웹 개발에 대한 부분도 함께할 수 있다.갑자기 이말이 생각 나네요!"입문하기 좋은 날이다~~~"끝!
초경량 초고속 웹 개발을 위한 가장 확실한 지침서

멀티패러다임 언어 스칼라의 특징과 핵심 문법을 설명하며, 자바 기반 웹 프레임워크 플레이의 기초와 활용법을 다룬다. 회원가입 폼, 게시판, 채팅 프로그램을 제작하며 웹 프로그래밍을 익히고 JSON으로 데이터를 다루는 방법, 안전한 데이터 처리를 위해 공격을 탐지하고 방지하는 방법까지 살펴본다.

그동안 스칼라와 플레이를 배우고 싶었지만 너무 두꺼운 입문서가 부담스러웠던 개발자, 힘들게 웹에서 외국 자료를 찾아야 했던 개발자에게 선물 같은 책이다.

※이 책의 Part 1 스칼라는 전자책으로 출간되었던 누구나 쉽게 배우는 스칼라 (리얼타임)와 동일한 내용입니다.


PART 1. 스칼라

chapter 1 스칼라 준비하기
__1.1 스칼라는 어떠한 언어인가?
__1.2 JDK 설치하기
__1.3 Scala IDE 설치
__1.4 Hello World!
__1.5 스칼라 워크시트 사용하기

chapter 2 변수 다루기
__2.1 변수 선언
__2.2 기본 자료형과 참조 자료형

chapter 3 조건문과 반복문
__3.1 조건문: if / else
__3.2 반복문: for
__3.3 반복문: while과 do while
__3.4 반복문: 이중 for
__3.5 반복문: 조건이 있는 반복
__3.6 반복문: 인덱스가 있는 for 문

chapter 4 클래스 / 객체 / 트레이트
__4.1 객체지향 프로그래밍
__4.2 클래스와 객체
__4.3 상속
__4.4 트레이트와 추상 클래스
__4.5 트레이트 쌓기

chapter 5 함수
__5.1 왜 함수형 언어인가?
__5.2 스칼라의 함수
__5.3 함수 정의
__5.4 CALL-BY-NAME 함수
__5.5 함수의 일부 인수 고정하기(부분 적용 함수)
__5.6 =〉를 이용한 함수 표현식
__5.7 함수 표현식 예제
__5.8 매개변수가 여러 개인 함수
__5.9 매개변수의 기본값 설정
__5.10 apply()
__5.11 implicit 함수

chapter 6 패턴 매칭
__6.1 패턴 매칭이란?
__6.2 기본 자료형 패턴 매칭
__6.3 객체 패턴 매칭
__6.4 Extractor로 패턴 매칭 이해하기

chapter 7 컬렉션
__7.1 배열
__7.2 리스트
__7.3 맵
__7.4 집합
__7.5 튜플
__7.6 옵션
__7.7 시퀀스
__7.8 이터레이터

chapter 8 함수 컴비네이터
__8.1 map(), foreach()
__8.2 filter(), filterNot()
__8.3 foldLeft(), foldRight()
__8.5 :::() zip(), unzip()
__8.6 find()
__8.7 drop(), dropWhile()
__8.8 flatten()

chapter 9 기타 중요 문법
__9.1 변경불가능하게 컬렉션 이용하기
__9.2 예외처리
__9.3 사용자 입력
__9.4 아이더
__9.5 파일 입출력
__9.6 접근 제한자

chapter 10 숫자야구 게임 만들기
__10.1 Random 클래스로 무작위 숫자 만들기
__10.2 사용자 입력을 정규표현식으로 패턴 매칭
__10.3 반복문으로 입력 값과 답 비교하기
__10.4 반환된 볼카운트 판단하기
__10.5 전체 코드

PART 2. 플레이

chapter11 플레이 프레임워크 만나기
__11.1 최근의 웹 트렌드
__11.2 웹 프레임워크의 새로운 강자
__11.3 Activator 기반 개발환경 구축하기
__11.4 콘솔-이클립스 기반 프로젝트 만들기
__11.5 리눅스 기반 설치하기
__11.6 IDE로 프로젝트 임포트하기
__11.7 데이터 관리를 위한 데이터베이스 설치하기

chapter 12 플레이 프레임워크 구조와 뷰, 컨트롤러
__12.1 플레이 프레임워크의 구조
__12.2 Hello World!

chapter 13 모델 구현과 데이터베이스 연동
__13.1 모델 구상하고 뷰에 전달하기
__13.2 플레이 프레임워크와 데이터베이스 연동하기
__13.3 데이터베이스 모델과 연결하기

chapter 14 폼 전송과 데이터 삽입
__14.1 컨트롤러에서 폼 만들기
__14.2 뷰에서 전송받은 폼 뿌려주기
__14.3 폼 전송 후 데이터베이스에 저장하기
__14.4 파일 업로드하기

chapter 15 고급 데이터 핸들링
__15.1 컴퓨터 데이터베이스 구상하기
__15.2 models 구성요소
__15.3 controllers 구성요소
__15.4 views (템플릿) 구성요소
__15.5 conf/routes 구성요소

chapter 16 Slick을 이용한 DB 연동
__16.1 Slick을 이용한 웹 애플리케이션의 구조
__16.2 데이터베이스 설정
__16.3 테이블로 객체 선언
__16.4 기본 SQL문을 스칼라처럼
__16.5 기타 구문

chapter 17 JSON으로 데이터 다루기
__17.1 JSON과 XML
__17.2 JSON 데이터를 JsValue로 변환하기
__17.3 JsValue와 객체 간 상호작용 다루기
__17.4 JSON HTTP 통신하기

chapter 18 아카와 웹 소켓 다루기
__18.1 액터 모델을 통한 동시성 극복 맛보기
__18.2 웹 소켓 + 클라이언트
__18.3 웹 소켓 + 채팅 서버

chapter 19 안전한 데이터 처리
__19.1 CSRF 방지
__19.2 안전한 패스워드 저장
__19.3 기타 플레이 프레임워크 보안 기능

chapter 20 기타 플레이 기능
__20.1 여러 언어 지원하기
__20.2 로그 남기기

chapter 21 기타 유용한 정보
__21.1 스칼라 API 문서 참조 방법
__21.2 커피스크립트를 이용한 자바스크립트 개발
__21.3 LESS를 이용한 CSS 개발
__21.4 디자인 프레임워크

에필로그