서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
초보자를 위한 코틀린 200제 (Kotlin)
저자 : 엄민석
출판사 : 정보문화사
출판년 : 2018
정가 : 27000, ISBN : 9788956747811
책소개
프로그래밍을 처음 배워도, 경험이 있어도 모두 도전!
이 책은 프로그래밍 입문자의 시선에서 코틀린을 설명한 입문서이다. 코틀린은 함수형 프로그래밍을 지원하는 언어이기 때문에 문제 접근 방식이 객체지향 언어인 자바와는 조금 다르다. 마치 C언어에서 Java로 넘어갈 때 객체지향이라는 패러다임을 받아들이는 것처럼, 코틀린을 배우려면 새로운 패러다임인 함수형 프로그래밍을 받아들여야 한다.
코틀린은 자바에서 지나치게 길었던 상용구 코드를 줄여주는 문법들이 있으며, 자바에 비해 더 안전한 코드를 작성할 수 있도록 해준다. 그렇기 때문에 예제를 모두 실행하다 보면 코틀린의 매력에 점점 빠지게 될 것이며, 이 혁신적인 언어에 분명 큰 감명을 받게 될 것이다.
목차
PART 1 입문// 코틀린 기초 문법 살펴보기
001 Hello, Kotlin!
002 표현식(Expression)
003 변수(Variable)
004 리터럴의 타입
005 산술 연산자(Arithmetic Operator) + - * / %
006 증감 연산자(Increment & Decrement Operator) + + - -
007 비트 연산자(Bitwise Operator) and or xor inv shl shr ushr
008 정수 타입과 실수 타입
009 실수 타입의 함정
010 문자 타입
011 문자열(String)
012 문자열 안에 표현식의 값을 집어넣기
013 타입 별명(Type Alias)
014 주석(Comment)
015 배정 연산자(Assignment Operator) =
016 문장(Statement)
017 비교 연산자(Comparison Operator) = = != 〉 〈 〉= 〈=
018 논리 연산자(Logical Operator) && || !
019 흐름 제어-조건문 if
020 흐름 제어-조건문 if- else
021 if와 else의 중첩
022 if-else를 표현식으로 사용하기
023 흐름 제어-조건문 when
024 when을 표현식으로 사용하기
025 흐름 제어-반복문 while
026 흐름 제어-반복문 do-while
027 흐름 제어 continue
028 흐름 제어 break
029 레이블(Label)
030 함수(Function)
031 매개변수(Parameter)와 인수(Argument)
032 Unit 타입
033 디폴트 인수
034 가변 인수
035 함수 오버로딩(Function Overloading)
036 지역 변수(Local Variable)와 전역 변수(Global Variable)
037 지역 변수와 전역 변수의 이름이 중복될 때
038 지역 변수와 다른 함수의 지역 변수가 중복될 때
039 지역 함수(Local Function)
040 메모리의 스택(Stack) 영역
041 소스 파일 여러 개로 분리하기
042 패키지(Package)
043 다른 패키지의 함수 호출하기
044 import
PART 2 초급// 코틀린 중급 문법 살펴보기
045 객체(Object)
046 메모리의 힙(Heap) 영역
047 클래스(Class)
048 힙 영역의 존재 이유
049 문자열간 + 연산 시 주의점
050 가비지 컬렉션(Garbage Collection)
051 = = =, != = 연산자
052 멤버 함수(Member Function)
053 프로퍼티와 멤버 함수의 매개변수 이름이 중복될 때
054 생성자(Constructor)와 초기화(Initializer) 블록
055 init 블록 나누어 쓰기
056 생성자와 프로퍼티 한번에 쓰기
057 보조 생성자(Secondary Constructor)
058 프로퍼티와 Getter/Setter
059 연산자 오버로딩(Operator Overloading)
060 번호 붙은 접근 연산자(Indexed Access Operator) [ ]
061 호출 연산자(Invoke Operator) ( )
062 in 연산자
063 멤버 함수의 중위 표기법(Infix Notation)
064 상속(Inheritance)
065 업캐스팅(Upcasting)
066 오버라이딩(Overriding)
067 프로퍼티를 오버라이딩하기
068 다형성(Polymorphism)의 활용
069 클래스를 상속하는 객체
070 Any 클래스
071 예외(Exception)
072 예외 처리
073 예외 던지기
074 Nothing 타입
075 Nullable 타입과 null
076 안전한 호출 연산자(Safe Call Operator) ?
077 Not-null 단정 연산자(Not-null Assertion Operator) !!
078 엘비스 연산자(Elvis Operator) ?:
079 스마트 캐스팅
080 is 연산자
081 as 연산자와 다운캐스팅
082 접근 지정자(Access Modifier)
083 접근 지정자: private
084 접근 지정자: protected
085 접근 지정자 오버라이딩
086 확장 함수(Extension Function)
087 확장 프로퍼티(Extension Property)
PART 3 중급// 코틀린 고급 문법 살펴보기
088 객체 선언(Object Declaration)
089 동반자 객체(Companion Object)
090 inline 함수
091 const
092 lateinit
093 Nullable 리시버
094 동반자 객체의 확장 함수
095 확장 함수의 리시버 타입이 상속 관계에 있을 때
096 추상 클래스(Abstract Class)
097 인터페이스(Interface)
098 다이아몬드 문제(The Diamond Problem)
099 중첩 클래스(Nested Class)
100 내부 클래스(Inner Class)
101 데이터 클래스(Data Class)
102 객체 분해하기
103 함수 리터럴(Function Literal)과 람다식(Lambda Expression)
104 익명 함수(Anonymous Function)
105 it 식별자
106 함수 참조(Function Reference)
107 고차 함수(Higher-order Function)
108 클로저(Closure)
109 리시버가 붙은 함수 리터럴
110 제네릭(Generic)
111 여러 타입을 인수로 받기
112 구체화된(Reified) 타입 매개변수
113 클래스와 인터페이스에서 제네릭 사용하기
114 제네릭이 적용된 클래스/인터페이스 상속·구현하기
115 특정 타입을 상속·구현하는 타입만 인수로 받기
116 in/out 키워드
117 .. 연산자와 범위 표현식(Range Expression)
118 반복자(Iterator)
119 흐름 제어 - 반복문 for
120 배열(Array)
121 배열을 가변 인수로 활용하기
122 열거 클래스(Enum Class)
123 열거 클래스에 프로퍼티와 멤버 함수 선언하기
124 열거 클래스 활용하기
125 sealed 클래스
126 위임된 프로퍼티(Delegated Property)
127 클래스 위임(Class Delegation)
PART 4 활용// 코틀린 표준 라이브러리 살펴보기
128 Pair 클래스: 두 변수를 하나로 묶기
129 to 확장 함수: 두 값을 간단히 Pair로 묶기
130 Triple 클래스: 세 변수를 하나로 묶기
131 Comparable 인터페이스: 클래스를 비교 가능하게 만들기
132 ClosedRange 인터페이스: 닫힌 구간을 표현하는 인터페이스
133 Iterable 인터페이스: 클래스가 반복자를 지원하도록 하기
134 Progression과 관련된 함수
135 코틀린의 컬렉션(Collection)
136 Collection 인터페이스 살펴보기
137 List 인터페이스 살펴보기
138 ListIterator 인터페이스 살펴보기
139 Map 인터페이스 살펴보기
140 변경할 수 있는(Mutable) 컬렉션
141 MutableIterator 인터페이스 살펴보기
142 MutableList 인터페이스 살펴보기
143 MutableListIterator 인터페이스 살펴보기
144 MutableSet 인터페이스 살펴보기
145 MutableMap 인터페이스 살펴보기
146 Sequence 인터페이스 살펴보기
147 컬렉션 원소 타입 변환하기
148 컬렉션 중 원하는 원소 걸러내기
149 컬렉션 정렬하기
150 CharSequence 인터페이스: 문자열과 관련된 클래스가 구현하는 뼈대 인터페이스
151 접두사·접미사 관련 CharSequence 확장 함수
152 비어 있는 CharSequence인지 검사하기
153 CharSequence 가공하기
154 CharSequence 쪼개기
155 String 클래스 살펴보기
156 문자열 찾아 바꾸기
157 StringBuilder 클래스: 문자열 덧붙이기
158 Regex 클래스: 정규식 다루기
159 toList 확장 함수: List 타입으로 변환하기
160 run 확장 함수: 코드 중복 줄이기
161 let 확장 함수: 코드 중복 줄이기
162 with 함수: 코드 중복 줄이기
163 apply 함수: 객체 생성 및 초기화 코드를 표현식 하나로 압축하기
164 also 함수: 객체 생성 및 초기화 코드를 표현식 하나로 압축하기
165 lazy 함수: 게으른 초기화를 하는 프로퍼티 대리자
166 BigInteger 클래스: 매우 큰 정수 보관하기
167 BigDecimal 클래스: 매우 작은 실수 보관하기
168 최대값·최소값 구하기
169 실수 값 올림·내림·반올림하기
170 abs 함수: 절대값 구하기
171 E, PI: 수학 상수
172 hypot 함수: 빗변의 길이 구하기
173 지수함수
174 로그함수
175 삼각함수
176 toBits, toRawBits 확장 함수: 실수 타입을 이진수 값으로 가져오기
177 fromBits 확장 함수: 이진수 값으로부터 실수 값 만들기
178 Any?toString 확장 함수
179 String?plus 연산자 확장 함수
180 Double 값 검증하기
181 인수(Argument) 검증하기
182 KotlinVersion 클래스: 사용 중인 코틀린 버전 알아내기
183 exitProcess 함수: 어디서나 프로그램 종료하기
184 코드 성능 측정하기
185 파일 입출력
186 FileTreeWalk 클래스: 디렉토리 순회하기
187 thread 함수: 스레드 생성하기
188 timer 함수: 타이머 생성하기
189 synchronized 함수: 스레드 동기화하기
PART 5 실무// 코틀린과 자바 함께 사용하기
190 코틀린에서 자바 코드 접근하기: 타입
191 코틀린에서 자바 코드 접근하기: Null 안전성
192 코틀린에서 자바 코드 접근하기: 키워드 충돌
193 코틀린에서 자바 코드 접근하기: SAM 변환
194 코틀린에서 자바 코드 접근하기: Getter/Setter
195 코틀린에서 자바 코드 접근하기: 연산자 오버로딩
196 코틀린에서 자바 코드 접근하기: 클래스 참조
197 자바에서 코틀린 코드 접근하기: 패키지 레벨 변수·함수
198 자바에서 코틀린 코드 접근하기: 프로퍼티
199 자바에서 코틀린 코드 접근하기: 선언된 객체
200 자바에서 코틀린 코드 접근하기: 동반자 객체