이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
CHAPTER 1 첫 번째 코틀린 애플리케이션 작성하기 1인텔리제이 설치하기 ...... 1첫 번째 코틀린 프로젝트 생성하기 ...... 2코틀린 REPL ...... 9궁금증 해소하기: 왜 인텔리제이를 사용할까? ...... 11궁금증 해소하기: JVM에서 실행하기 ...... 11챌린지: REPL로 산술 연산자 테스트하기 ...... 12CHAPTER 2 변수, 상수, 타입 13타입 ...... 13변수 선언하기 ...... 14코틀린의 내장 타입 ...... 16읽기 전용 변수 ...... 17타입 추론 ...... 20컴파일 시점 상수 ...... 22코틀린 바이트코드 살펴보기 ...... 23궁금증 해소하기: 코틀린의 자바 기본 타입 ...... 25챌린지: hasSteed ...... 27챌린지: 유니콘의 뿔 ...... 27챌린지: 마법의 거울 ...... 28CHAPTER 3 조건문과 조건식 29if/else 문 ...... 30범위 ...... 42when 표현식 ...... 43문자열 템플릿 ...... 45챌린지: 범위에 관해 추가로 알아보기 ...... 47챌린지: 아우라 관련 코드 개선하기 ...... 48챌린지: 구성 가능한 형식의 상태 출력 ...... 49CHAPTER 4 함수 51기존 코드를 함수로 만들기 ...... 51함수의 구조 ...... 54함수 호출하기 ...... 58함수들로 리팩터링하기 ...... 60우리의 함수 작성하기 ...... 62기본 인자 ...... 63단일 표현식 함수 ...... 65Unit 함수 ...... 66지명 함수 인자 ...... 67궁금증 해소하기: Nothing 타입 ...... 68궁금증 해소하기: 자바의 파일 수준 함수 ...... 70궁금증 해소하기: 함수 오버로딩 ...... 72궁금증 해소하기: 백틱 함수 이름 ...... 73챌린지: 단일 표현식 함수 ...... 75CHAPTER 5 익명 함수와 함수 타입 77익명 함수 ...... 77타입 추론 지원 ...... 84함수를 인자로 받는 함수 정의하기 ...... 86인라인 함수로 만들기 ...... 88함수 참조 ...... 90반환 타입으로 함수 타입 사용하기 ...... 91궁금증 해소하기: 코틀린의 람다는 클로저다 ...... 93궁금증 해소하기: 람다 vs 익명 내부 클래스 ...... 94CHAPTER 6 null 안전과 예외 97코틀린의 null 처리 개요 ...... 97코틀린의 명시적 null 타입 ...... 99에러 검출 시점(컴파일 VS 런타임) ...... 101null 안전 처리 ...... 101예외 ...... 109전제 조건 ...... 114null: 무엇이 좋을까? ...... 116궁금증 해소하기: checked 예외와 unchecked 예외 ...... 117궁금증 해소하기: 다른 언어의 코드를 같이 사용할 때의 null 처리 ...... 118CHAPTER 7 문자열 121부분 문자열 추출하기 ...... 121문자열 변경하기 ...... 126문자열 비교 ...... 129궁금증 해소하기: 유니코드 ...... 130궁금증 해소하기: 문자열의 각 문자를 하나씩 처리하기 ...... 131챌린지: toDragonSpeak 함수 개선하기 ...... 132CHAPTER 8 숫자 133숫자 타입 ...... 133정수 ...... 134소수 ...... 136문자열을 숫자 타입으로 변환하기 ...... 137Int 타입을 Double 타입으로 변환하기 ...... 138Double 타입 값의 형식 지정하기 ...... 140Double 타입 값을 Int 타입 값으로 변환하기 ...... 141궁금증 해소하기: 비트 연산 ...... 142챌린지: 잔액 부족 처리하기 ...... 143CHAPTER 9 표준 함수 145apply ...... 145let ...... 147run ...... 148with ...... 150also ...... 150takeIf ...... 151표준 라이브러리 함수 사용하기 ...... 153CHAPTER 10 List와 Set 155List ...... 155반복 처리 ...... 165파일 데이터를 읽어서 List에 넣기 ...... 169해체 선언 ...... 172Set ...... 172while 루프 ...... 177break 표현식 ...... 179컬렉션 변환 ...... 180궁금증 해소하기: 배열 타입 ...... 181궁금증 해소하기: 읽기 전용 vs 변경 불가능 ...... 182챌린지: 정형화된 술집 메뉴 ...... 183CHAPTER 11 Map 185Map 생성하기 ...... 185Map에서 값 가져오기 ...... 188Map에 항목 추가하기 ...... 189Map의 값 변경하기 ...... 191챌린지: 술집 문지기 ...... 195CHAPTER 12 클래스 정의하기 197클래스 정의하기 ...... 197인스턴스 생성하기 ...... 198클래스 함수 ...... 199가시성과 캡슐화 ...... 200클래스 속성 ...... 202NyetHack 코드 리팩터링하기 ...... 209패키지 사용하기 ...... 217궁금증 해소하기: var과 val 속성의 내부 구현 ...... 220궁금증 해소하기: 경합 상태 방지하기 ...... 223궁금증 해소하기: 패키지 가시성 ...... 225CHAPTER 13 초기화 227생성자 ...... 228초기화 블록 ...... 234속성 초기화 ...... 235초기화 순서 ...... 239초기화 지연시키기 ...... 241궁금증 해소하기: 초기화 순서를 고려한 코드 작성 ...... 244챌린지: 엑스컬리버 검의 불가사의 ...... 247CHAPTER 14 상속 249Room 클래스 정의하기 ...... 249서브 클래스 생성하기 ...... 251타입 검사 ...... 257코틀린 타입의 상속 계층 ...... 260궁금증 해소하기: Any 클래스 ...... 263CHAPTER 15 객체 267object 키워드 ...... 267중첩 클래스 ...... 276데이터 클래스 ...... 279enum 클래스 ...... 284연산자 오버로딩 ...... 287NyetHack 게임 세계 탐험하기 ...... 290궁금증 해소하기: 객체의 값 비교하기 ...... 293궁금증 해소하기: ADT ...... 296챌린지: ‘quit’ 명령 ...... 299챌린지: 게임 세계 지도 구현하기 ...... 300챌린지: 종을 치기 ...... 300CHAPTER 16 인터페이스와 추상 클래스 301인터페이스 정의하기 ...... 301인터페이스 구현하기 ...... 303기본 구현 ...... 305추상 클래스 ...... 306NyetHack의 전투 기능 ...... 309CHAPTER 17 제네릭 315제네릭 타입 정의하기 ...... 316제네릭 함수 ...... 318복합 제네릭 타입 매개변수 ...... 320제네릭 타입 제약 ...... 322vararg와 get ...... 323in과 out ...... 326궁금증 해소하기: reified 키워드 ...... 331CHAPTER 18 확장 335확장 함수 정의하기 ...... 335제네릭 확장 함수 ...... 338확장 속성 ...... 340null 가능 타입의 확장 함수 ...... 341확장 함수의 바이트코드 구현 ...... 342확장 함수로 추출하기 ...... 343확장 파일 정의하기 ...... 345확장 함수 이름 변경하기 ...... 347코틀린 표준 라이브러리의 확장 함수와 속성 ...... 348챌린지: toDragonSpeak 확장 함수 ...... 349챌린지: frame을 확장 함수로 변경하기 ...... 349CHAPTER 19 함수형 프로그래밍 351함수 유형 ...... 352왜 함수형 프로그래밍일까? ...... 357시퀀스 ...... 359궁금증 해소하기: 성능 측정 ...... 361챌린지: Map의 키와 값을 바꿔치기하기 ...... 362챌린지: 함수형 프로그래밍을 Tavern.kt에 적용하기 ...... 362챌린지: 슬라이딩 윈도 ...... 363CHAPTER 20 자바와의 상호운용 365자바 클래스와 상호운용하기 ...... 366상호운용과 null 처리 ...... 367타입 매핑 ...... 371게터와 세터 그리고 상호운용 ...... 373JVM 애노테이션 ...... 375예외와 상호운용 ...... 385자바의 함수 타입 ...... 389org.jetbrains.annotations 라이브러리 추가하기 ...... 391CHAPTER 21 코틀린으로 안드로이드 앱 개발하기 393안드로이드 스튜디오 ...... 393UI 정의하기 ...... 400에뮬레이터에서 앱 실행하기 ...... 403캐릭터 생성하기 ...... 405Activity 클래스 ...... 406뷰 컴포넌트를 코드와 연결시키기 ...... 407코틀린-안드로이드 확장의 합성 속성 ...... 410클릭 리스너 설정하기 ...... 412액티비티 인스턴스의 상태 보존 ...... 414확장 함수를 사용해서 코드 리팩토링하기 ...... 417궁금증 해소하기: 안드로이드 KTX와 Anko 라이브러리 ...... 420CHAPTER 22 코루틴 개요 423캐릭터 데이터 파싱하기 ...... 424실시간으로 데이터 가져오기 ...... 426안드로이드 main 스레드 ...... 429코루틴을 활성화시키기 ...... 429async 함수를 사용하여 코루틴 지정하기 ...... 430launch vs async/await ...... 432실행 보류 함수 ...... 432챌린지: 실시간 데이터 ...... 433CHAPTER 23 이 책을 마치며 435어디로 가야 할까? ...... 435부담 없는 연락처 ...... 436감사합니다! ...... 436APPENDIX A 인텔리제이 설치와 구성하기 437A-1: JDK 설치하기 ...... 437A-2: 윈도우 시스템에서 인텔리제이를 설치하기 ...... 437A-3: 맥 OS에서 인텔리제이를 설치하기 ...... 442A-4: 리눅스에서 인텔리제이를 설치하기 ...... 442
|
심재철의 다른 상품
|
2019년 가장 유망하고 배워 둘 가치가 있는 프로그래밍 언어 중 하나로 선정된 코틀린!‘빅 너드 랜치’의 풍부한 소프트웨어 교육과 개발 노하우가 담긴 코틀린 서적!코틀린은 객체지향뿐만 아니라 함수형 프로그래밍 패러다임까지 품고 있습니다. 이 코틀린 언어를 실습과 함께 확실하게 내 것으로 만들고 싶으시다면 이 책을 선택하세요.각종 코틀린 학습 키워드를 바탕으로 게임을 만들어가며 차근히 학습할 수 있습니다. 게임을 만든다는 목적이 있으므로 당연히 실습을 위한 많은 예제가 포함되어 있으며, 그 과정 중 독자가 궁금해할 만한 내용을 바로바로 해소해주는 내용도 충실합니다. 무엇보다 각 장 끝에는 하나 이상의 챌린지가 있는데, 이것은 독자분들의 확실한 이해를 위해 작성된 것으로 코틀린을 숙지하는 데 도움이 되도록 반드시 직접 풀어 보면서 학습하세요.
|