JVM 언어 입문 (자바, 스칼라, 클로저, 코틀린, 그루비 체험하기)

JVM 언어 입문 (자바, 스칼라, 클로저, 코틀린, 그루비 체험하기)

$36.96
Description
자바 가상 머신(JVM)을 등장시킨 자바 플랫폼에 대한 개괄적인 내용과 JVM의 주요 개념을 설명하고 가장 인기 있는 사용 사례를 소개한다. JVM 언어로 가장 대표적인 자바의 기본 원리와 애플리케이션 개발 방법을 시작으로 스칼라와 클로저, 코틀린, 그루비의 기본 원리와 개발 방법을 다룬다. 다양한 JVM 언어의 차이를 이해하면 개발하고자 하는 프로그램에 가장 적합한 개발 언어를 선택할 수 있는 혜안을 갖게 될 것이다.
저자

빈센트반데르렌

저자빈센트반데르렌(VincentvanderLeun)
네덜란드위트레흐트에사는소프트웨어엔지니어다.여덟살때부터프로그래밍을시작해서,수년간다양한언어와플랫폼을가지고일해왔다.몇년전,자바를재발견한이후로자바7프로그래머로서오라클인증전문가가됐고JVM팬보이블로그를시작했을정도로자바를무척좋아한다.현재,현대식전자상거래솔루션을전문으로하는클라우드스위트(CloudSuite)에서근무하고있다.클라우드스위트에서다양한백엔드시스템과웹서비스영역을담당하고,프론트엔드애플리케이션을위한자바스크립트코드를작성하는일을한다.또한복잡한SQL질의문을작성해서컨설턴트를지원하며동료개발자들과디자인관련토론을즐긴다.새로운웹프레임워크나기술을연구하지않는여가에는컬트영화와잘알려지지않은액션영화DVD와블루레이를수집하고고전과학소설을읽거나비주류가수와작사가의콘서트를관람한다.

목차

1장.자바가상머신
JVM구현체
왜JVM에서개발하는가?
시장변화에적응한JVM
자바클래스라이브러리
생태계
일반사용사례
웹애플리케이션
빅데이터
IoT
JVM개념
가상머신
JIT컴파일러
기본형데이터타입
클래스
참조타입
가비지컬렉터
하위호환성
빌드도구
자바에디션
자바SE
자바EE
예제
자바ME
JVM의다른언어들
자바외에다른언어를선택하는이유
자바는매우장황한언어다
프로젝트에JVM언어혼용하여사용하기
다른언어로단위테스트작성하기
요약

2장.자바가상머신에서개발하기
JDK
JDK설치
JDK들여다보기
JRE
패키지를포함한클래스구조
패키지란?
패키지이름정하기
패키지이름예제
정규화된클래스이름
자바클래스라이브러리
자바클래스라이브러리구조
패키지개요
java.lang패키지의기본클래스
컬렉션API-java.util.ArrayList와java.util.HashMap
커맨드라인에서JVM애플리케이션실행
적어도하나이상의클래스에정적main()메소드구현
클래스파일에필요한디렉터리구조
JVM인스턴스를위한클래스경로설정
JAR파일에클래스파일배치하기
java명령어로프로그램실행하기
JVM에서실행하는프로젝트실무사례
이클립스IDE
이클립스IDE다운로드
이클립스IDE설치
요약

3장.자바
자바에서의OOP
클래스정의
클래스접근제한자
Final클래스제한자-클래스잠금
패키지정의
클래스가져오기
클래스멤버,변수와메소드추가하기
제한자
생성자와종료자
상위형변환과하위형변환
자바코드작성
연산자
조건체크
POJO
배열
제너릭과컬렉션
루프
스레드
람다
스타일가이드
퀴즈
요약

4장.자바프로그래밍
이클립스IDE구성
자바로웹서비스제작하기
이클립스에서새로운그래들프로젝트생성하기
그래들빌드파일수정
프로젝트빌드
백엔드클래스작성
요약

5장.스칼라
스칼라설치
스칼라의REPL셸
함수형vs명령형프로그래밍
스칼라언어문법과규칙
정적타입언어
가변변수와불변변수
기본스칼라타입
Strings
스칼라에서의OOP
패키지와하위패키지선언
멤버가져오기
클래스정의
인스턴스변수와메소드
생성자
클래스확장
메소드오버로딩
추상클래스
트레이트
싱글턴객체
연산자오버로딩
case클래스
스칼라의표준라이브러리
제너릭
컬렉션
XML처리
스칼라에서의함수형프로그래밍
함수를사용해서컬렉션검색하기
맵과필터,리듀스디자인패턴
커링
퀴즈
요약

6장.스칼라프로그래밍
이클립스플러그인형태의스칼라IDE
이클립스에스칼라IDE설치
스칼라IDE퍼스펙티브전환
SBT
SBT설치
SBT기반이클립스IDE프로젝트생성
스칼라컴파일러(scalac)
아카프로젝트생성
SBT빌드파일에아카의존성추가
스칼라IDE프로젝트업데이트
아카개념
첫번째아카액터QuotesHandlerActor생성
메시지생성
ScalaTest기반단위테스트작성
메시지처리기구현
QuotePrinterActor생성
메인애플리케이션
요약

7장.클로저
클로저설치
시작스크립트작성
클로저대화형셸(REPL)
클로저언어
문법
표현식
변수정의
함수정의
데이터구조
자바클래스와동작하기
deftype과defrecord를가진간단한자바클래스생성
에이전트로상태관리하기
에이전트예제
스타일가이드
퀴즈
요약

8장.클로저프로그래밍
이클립스IDE의카운터클락와이즈플러그인
카운터클락와이즈플러그인설치
자바퍼스펙티브로변환하기
라이닌겐빌드도구
라이닌겐설치
클로저에서실행가능한프로그램작성
라이닌겐없이클래스파일컴파일
라이닌겐으로프로젝트컴파일
새로운카운터클락와이즈프로젝트생성
이클립스IDE안의클로저REPL
프로젝트의클로저버전변경
의존성추가
테스트주도개발을통해모나드탐구
루미너스웹프레임워크
루미너스프로젝트생성
카운터클락와이즈에서프로젝트가져오기
루미너스프로젝트탐색
웹애플리케이션에페이지추가
요약

9장.코틀린
코틀린설치
실행스크립트
코틀린REPL대화형셸
코틀린언어기본
로컬변수정의
함수정의
코틀린유형
반복
코틀린에서OOP
패키지정의
멤버가져오기
클래스와생성자정의
클래스에멤버추가
상속
인터페이스
가시성제한자
싱글턴과컴패니언객체
데이터클래스
람다와인라인함수
코틀린에서절차적프로그래밍
스타일가이드
퀴즈
요약

10장.코틀린프로그래밍
이클립스IDE를위한코틀린플러그인
이클립스IDE를위한코틀린플러그인설치
코틀린퍼스펙티브로전환
아파치메이븐
아파치메이븐설치
사전에구성된코틀린스타터키트다운로드
이클립스IDE에프로젝트가져오기
pom.xml빌드파일탐구
이클립스에서빌드파일변경
자바FX데스크톱GUI애플리케이션제작
프로젝트준비
실행가능한애플리케이션제작
확장함수작성
레이아웃페인
BorderPane기반레이아웃구현
애니메이션구현
프로그램디버깅
요약

11장.그루비
그루비설치
그루비콘솔과그루비셸
그루비언어
그루비에서객체지향프로그래밍
그루비개발자키트(GDK)
그루비문자열(GStrings)
컬렉션
동적,정적프로그래밍
메타프로그래밍
그루비에서정적프로그래밍
퀴즈
요약

12장.그루비프로그래밍
그루비이클립스플러그인설치
자바퍼스펙티브변환
아파치아이비와IvyDE
이클립스IDE용아파치IvyDE플러그인설치
프로젝트생성과구성
새로운그루비이클립스프로젝트생성
아이비를위한ivy.xml파일생성
JDBC(JavaDatabaseConnectivity)
H2데이터베이스
메모리내데이터베이스생성
마크업빌더를사용한XML생성
SQL기반으로XML생성
Vert.x마이크로서비스플랫폼..
아이비에Vert.x의존성추가
웹서비스생성
요약

부록A.다른JVM언어
오라클나스호른
JVM기반프로젝트에나스호른포함시키기
나스호른실행
자이썬(파이썬)
C파이썬과자이썬의차이
자이썬실행
제이루비(루비)
루비온레일즈와제이루비
제이루비실행
프레게(하스켈)
프레게에서자바코드호출
프레게실행
실론
실론의모듈시스템
실론실행
요약

출판사 서평

★이책에서다루는내용★
■JVM에대한실질적인정보얻기
■인기있는JVM언어와자바클래스라이브러리이해
■명령형과객체지향,함수형과같은다양한프로그래밍패러다임
■이클립스IDE와그래들(Gradle),메이븐(Maven)같은일반적인JVM툴사용
■스파크자바(SparkJava),Vert.x,아카(Akka),자바FX(JavaFX)와같은프레임워크탐구
■자바스크립트(JavaScript)와파이썬(Python),루비(Ruby)등을포함한다른유명한프로그래밍언어의변형에대한지식

★이책의대상독자★
이책은자바가상머신(JVM)에관심있으며JVM개발에가장인기있는프로그램언어를알고싶은개발자를대상으로한다.객체지향프로그래밍을지원하는프로그래밍언어(자바스크립트,파이썬,C#,VB.NET,C++)에대한경험적지식이있다고가정한다.

★옮긴이의말★
자바가상머신(JVM)은자바코드를컴파일해서운영체제가이해할수있는바이트코드를생성함으로써자바애플리케이션을운영체제에독립적으로사용할수있게해주는실행환경으로시작했다.하지만최근에는다양한개발언어들이자바바이트코드를생성하거나JVM위에서실행되는인터프리터를지원하고서로라이브러리를공유하면서JVM자체가거대한생태계가되었다.
이러한개발언어가등장하면서상대적으로무겁고거대한자바의인기가시들어질것이라는예측도있었으나다양한언어의장단점을수용하고개선의노력을지속한결과여전히자바는기업형솔루션,웹,앱등다양한분야에서사용되고있다.한편JVM기반에서실행되는다른언어들은자바를보완할수있는경량의유연한방법을제공해다양한영역에서자바의대체재로쓰이며활용도가높아지고있다.
이책에서는JVM을기반을하는다양한언어중자바,스칼라,클로저,코틀린,그루비다섯가지언어를소개한다.먼저각언어에서중요한개념을소개하고샘플프로젝트를작성하면서개념을실습해본다.그리고각언어를자바와의차이점을비교해설명함으로써이해를돕는다.정적/동적자료형타입이나객체지향프로그래밍과함수형프로그래밍에대해서도간략히설명하지만아주심도있는개념까지다루지는않았으므로,자바개발경험이없는개발자들도쉽게이해할수있으리라생각한다.자바개발경험이많은개발자에게는다소내용이평이하게느껴질수있지만,비교를통한설명으로새로운개발언어에흥미를갖게되고자신의애플리케이션에가장적합한언어를발견하는계기가될것이다.