초보자를 위한 Kotlin 200제
Description
200개의 예제로 안전성을 유지하는 코틀린 마스터하기!
프로그래밍을 처음 배워도, 경험이 있어도 모두 도전!

이 책은 프로그래밍 입문자의 시선에서 코틀린을 설명한 입문서이다. 코틀린은 함수형 프로그래밍을 지원하는 언어이기 때문에 문제 접근 방식이 객체지향 언어인 자바와는 조금 다르다. 마치 C언어에서 Java로 넘어갈 때 객체지향이라는 패러다임을 받아들이는 것처럼, 코틀린을 배우려면 새로운 패러다임인 함수형 프로그래밍을 받아들여야 한다.

코틀린은 자바에서 지나치게 길었던 상용구 코드를 줄여주는 문법들이 있으며, 자바에 비해 더 안전한 코드를 작성할 수 있도록 해준다. 그렇기 때문에 예제를 모두 실행하다 보면 코틀린의 매력에 점점 빠지게 될 것이며, 이 혁신적인 언어에 분명 큰 감명을 받게 될 것이다.
저자

엄민석

저자엄민석

취미로프로그래밍을하고있으며Android플랫폼에관심이많다.대표작으로전국학교의급식식단표를보여주는'급식'앱이있다.프로그래밍과급식앱을주제로블로그(blog.naver.com/eominsuk55)를운영중이다.현재㈜버즈니에서Android클라이언트엔지니어로홈쇼핑모아서비스를개발하고있다.

목차

PART1입문//코틀린기초문법살펴보기
001Hello,Kotlin!
002표현식(Expression)
003변수(Variable)
004리터럴의타입
005산술연산자(ArithmeticOperator)+-*/%
006증감연산자(Increment&DecrementOperator)++--
007비트연산자(BitwiseOperator)andorxorinvshlshrushr
008정수타입과실수타입
009실수타입의함정
010문자타입
011문자열(String)
012문자열안에표현식의값을집어넣기
013타입별명(TypeAlias)
014주석(Comment)
015배정연산자(AssignmentOperator)=
016문장(Statement)
017비교연산자(ComparisonOperator)==!=><>=<=
018논리연산자(LogicalOperator)&&||!
019흐름제어-조건문if
020흐름제어-조건문if-else
021if와else의중첩
022if-else를표현식으로사용하기
023흐름제어-조건문when
024when을표현식으로사용하기
025흐름제어-반복문while
026흐름제어-반복문do-while
027흐름제어continue
028흐름제어break
029레이블(Label)
030함수(Function)
031매개변수(Parameter)와인수(Argument)
032Unit타입
033디폴트인수
034가변인수
035함수오버로딩(FunctionOverloading)
036지역변수(LocalVariable)와전역변수(GlobalVariable)
037지역변수와전역변수의이름이중복될때
038지역변수와다른함수의지역변수가중복될때
039지역함수(LocalFunction)
040메모리의스택(Stack)영역
041소스파일여러개로분리하기
042패키지(Package)
043다른패키지의함수호출하기
044import

PART2초급//코틀린중급문법살펴보기
045객체(Object)
046메모리의힙(Heap)영역
047클래스(Class)
048힙영역의존재이유
049문자열간+연산시주의점
050가비지컬렉션(GarbageCollection)
051===,!==연산자
052멤버함수(MemberFunction)
053프로퍼티와멤버함수의매개변수이름이중복될때
054생성자(Constructor)와초기화(Initializer)블록
055init블록나누어쓰기
056생성자와프로퍼티한번에쓰기
057보조생성자(SecondaryConstructor)
058프로퍼티와Getter/Setter
059연산자오버로딩(OperatorOverloading)
060번호붙은접근연산자(IndexedAccessOperator)[]
061호출연산자(InvokeOperator)()
062in연산자
063멤버함수의중위표기법(InfixNotation)
064상속(Inheritance)
065업캐스팅(Upcasting)
066오버라이딩(Overriding)
067프로퍼티를오버라이딩하기
068다형성(Polymorphism)의활용
069클래스를상속하는객체
070Any클래스
071예외(Exception)
072예외처리
073예외던지기
074Nothing타입
075Nullable타입과null
076안전한호출연산자(SafeCallOperator)?
077Not-null단정연산자(Not-nullAssertionOperator)!!
078엘비스연산자(ElvisOperator)?:
079스마트캐스팅
080is연산자
081as연산자와다운캐스팅
082접근지정자(AccessModifier)
083접근지정자:private
084접근지정자:protected
085접근지정자오버라이딩
086확장함수(ExtensionFunction)
087확장프로퍼티(ExtensionProperty)

PART3중급//코틀린고급문법살펴보기
088객체선언(ObjectDeclaration)
089동반자객체(CompanionObject)
090inline함수
091const
092lateinit
093Nullable리시버
094동반자객체의확장함수
095확장함수의리시버타입이상속관계에있을때
096추상클래스(AbstractClass)
097인터페이스(Interface)
098다이아몬드문제(TheDiamondProblem)
099중첩클래스(NestedClass)
100내부클래스(InnerClass)
101데이터클래스(DataClass)
102객체분해하기
103함수리터럴(FunctionLiteral)과람다식(LambdaExpression)
104익명함수(AnonymousFunction)
105it식별자
106함수참조(FunctionReference)
107고차함수(Higher-orderFunction)
108클로저(Closure)
109리시버가붙은함수리터럴
110제네릭(Generic)
111여러타입을인수로받기
112구체화된(Reified)타입매개변수
113클래스와인터페이스에서제네릭사용하기
114제네릭이적용된클래스/인터페이스상속·구현하기
115특정타입을상속·구현하는타입만인수로받기
116in/out키워드
117..연산자와범위표현식(RangeExpression)
118반복자(Iterator)
119흐름제어-반복문for
120배열(Array)
121배열을가변인수로활용하기
122열거클래스(EnumClass)
123열거클래스에프로퍼티와멤버함수선언하기
124열거클래스활용하기
125sealed클래스
126위임된프로퍼티(DelegatedProperty)
127클래스위임(ClassDelegation)

PART4활용//코틀린표준라이브러리살펴보기
128Pair클래스:두변수를하나로묶기
129to확장함수:두값을간단히Pair로묶기
130Triple클래스:세변수를하나로묶기
131Comparable인터페이스:클래스를비교가능하게만들기
132ClosedRange인터페이스:닫힌구간을표현하는인터페이스
133Iterable인터페이스:클래스가반복자를지원하도록하기
134Progression과관련된함수
135코틀린의컬렉션(Collection)
136Collection인터페이스살펴보기
137List인터페이스살펴보기
138ListIterator인터페이스살펴보기
139Map인터페이스살펴보기
140변경할수있는(Mutable)컬렉션
141MutableIterator인터페이스살펴보기
142MutableList인터페이스살펴보기
143MutableListIterator인터페이스살펴보기
144MutableSet인터페이스살펴보기
145MutableMap인터페이스살펴보기
146Sequence인터페이스살펴보기
147컬렉션원소타입변환하기
148컬렉션중원하는원소걸러내기
149컬렉션정렬하기
150CharSequence인터페이스:문자열과관련된클래스가구현하는뼈대인터페이스
151접두사·접미사관련CharSequence확장함수
152비어있는CharSequence인지검사하기
153CharSequence가공하기
154CharSequence쪼개기
155String클래스살펴보기
156문자열찾아바꾸기
157StringBuilder클래스:문자열덧붙이기
158Regex클래스:정규식다루기
159toList확장함수:List타입으로변환하기
160run확장함수:코드중복줄이기
161let확장함수:코드중복줄이기
162with함수:코드중복줄이기
163apply함수:객체생성및초기화코드를표현식하나로압축하기
164also함수:객체생성및초기화코드를표현식하나로압축하기
165lazy함수:게으른초기화를하는프로퍼티대리자
166BigInteger클래스:매우큰정수보관하기
167BigDecimal클래스:매우작은실수보관하기
168최대값·최소값구하기
169실수값올림·내림·반올림하기
170abs함수:절대값구하기
171E,PI:수학상수
172hypot함수:빗변의길이구하기
173지수함수
174로그함수
175삼각함수
176toBits,toRawBits확장함수:실수타입을이진수값으로가져오기
177fromBits확장함수:이진수값으로부터실수값만들기
178Any?toString확장함수
179String?plus연산자확장함수
180Double값검증하기
181인수(Argument)검증하기
182KotlinVersion클래스:사용중인코틀린버전알아내기
183exitProcess함수:어디서나프로그램종료하기
184코드성능측정하기
185파일입출력
186FileTreeWalk클래스:디렉토리순회하기
187thread함수:스레드생성하기
188timer함수:타이머생성하기
189synchronized함수:스레드동기화하기

PART5실무//코틀린과자바함께사용하기
190코틀린에서자바코드접근하기:타입
191코틀린에서자바코드접근하기:Null안전성
192코틀린에서자바코드접근하기:키워드충돌
193코틀린에서자바코드접근하기:SAM변환
194코틀린에서자바코드접근하기:Getter/Setter
195코틀린에서자바코드접근하기:연산자오버로딩
196코틀린에서자바코드접근하기:클래스참조
197자바에서코틀린코드접근하기:패키지레벨변수·함수
198자바에서코틀린코드접근하기:프로퍼티
199자바에서코틀린코드접근하기:선언된객체
200자바에서코틀린코드접근하기:동반자객체

출판사 서평

200개의예제로안전성을유지하는코틀린마스터하기!

입문으로시작해실무까지총5개의파트와200개의예제로,코틀린의문법을쉬운수준에서어려운단계까지나열해놓았다.또한코틀린개발을위해설치부터연습해볼수있는과정을안내한다.이책은독자의수준을안드로이드경험자,자바경험자,프로그래밍경험자,프로그래밍입문자,크게네가지로구분하였다.그렇기때문에본인이필요로하는부분을선택하여학습할수있는장점이있다.코틀린은타깃으로잡은플랫폼에따라사용할수있는표준라이브러리가다르므로그에맞는설명도추가하였다.

이책을따라하기위해필요한예제파일및궁금증은저자와피드백(blog.naver.com/eominsuk55)가능하다.