간편결제, 신용카드 청구할인
카카오페이 3,000원
(카카오페이 결제시 최대할인 3천원 / 5만원 이상 결제, 기간 중 1회)
삼성카드 6% (25,380원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (25,650원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (18,900원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (21,600원)
(최대할인 4만원 / 2만원 이상 결제)
Close

빅 너드 랜치의 코틀린 프로그래밍

원제 : Kotlin Programming: The Big Nerd Ranch Guide
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 243
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

30,000원

  • 27,000 (10%할인)

    1,350P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    •  당일배송을 원하실 경우 주문시 당일배송을 선택해주세요.
    • 서울시 강남구 삼성로 512변경
    • 배송지연보상 안내
    • 무료배송
    • 해외배송가능
    주문수량
    감소 증가
    • 북카트 담기
    • 바로구매
    • 매장픽업
    • 이벤트/기획전

    • 연관도서

    • 사은품(11)

    책소개

    ‘빅 너드 랜치’의 풍부한 소프트웨어 교육과 개발 노하우가 담긴 코틀린 서적!

    코틀린은 자바와 상호 운용되고 구글 안드로이드 시스템에서 완벽하게 지원되도록 설계된 정적 타입 언어이다. 이 책은 빅 너드 랜치(www.bignerdranch.com)의 코틀린 핵심 교육 과정을 기반으로 저술되었으며, 코틀린의 핵심 개념과 API에 대한 명쾌한 설명 및 실습 예제를 통해서 독자 여러분이 주목받고 있는 코틀린 언어를 효율적으로 배우고 사용할 수 있는 방법을 가르쳐 준다. 또한, 젯브레인즈의 인텔리제이(IntelliJ IDEA)와 안드로이드 스튜디오를 사용해서 코틀린 코드를 작성하는 개발 환경도 알려 준다.

    출판사 서평

    2019년 가장 유망하고 배워 둘 가치가 있는 프로그래밍 언어 중 하나로 선정된 코틀린!
    ‘빅 너드 랜치’의 풍부한 소프트웨어 교육과 개발 노하우가 담긴 코틀린 서적!


    코틀린은 객체지향뿐만 아니라 함수형 프로그래밍 패러다임까지 품고 있습니다. 이 코틀린 언어를 실습과 함께 확실하게 내 것으로 만들고 싶으시다면 이 책을 선택하세요.

    각종 코틀린 학습 키워드를 바탕으로 게임을 만들어가며 차근히 학습할 수 있습니다. 게임을 만든다는 목적이 있으므로 당연히 실습을 위한 많은 예제가 포함되어 있으며, 그 과정 중 독자가 궁금해할 만한 내용을 바로바로 해소해주는 내용도 충실합니다. 무엇보다 각 장 끝에는 하나 이상의 챌린지가 있는데, 이것은 독자분들의 확실한 이해를 위해 작성된 것으로 코틀린을 숙지하는 데 도움이 되도록 반드시 직접 풀어 보면서 학습하세요.

    목차

    CHAPTER 1 첫 번째 코틀린 애플리케이션 작성하기 1
    인텔리제이 설치하기 ...... 1
    첫 번째 코틀린 프로젝트 생성하기 ...... 2
    코틀린 REPL ...... 9
    궁금증 해소하기: 왜 인텔리제이를 사용할까? ...... 11
    궁금증 해소하기: JVM에서 실행하기 ...... 11
    챌린지: REPL로 산술 연산자 테스트하기 ...... 12

    CHAPTER 2 변수, 상수, 타입 13
    타입 ...... 13
    변수 선언하기 ...... 14
    코틀린의 내장 타입 ...... 16
    읽기 전용 변수 ...... 17
    타입 추론 ...... 20
    컴파일 시점 상수 ...... 22
    코틀린 바이트코드 살펴보기 ...... 23
    궁금증 해소하기: 코틀린의 자바 기본 타입 ...... 25
    챌린지: hasSteed ...... 27
    챌린지: 유니콘의 뿔 ...... 27
    챌린지: 마법의 거울 ...... 28

    CHAPTER 3 조건문과 조건식 29
    if/else 문 ...... 30
    범위 ...... 42
    when 표현식 ...... 43
    문자열 템플릿 ...... 45
    챌린지: 범위에 관해 추가로 알아보기 ...... 47
    챌린지: 아우라 관련 코드 개선하기 ...... 48
    챌린지: 구성 가능한 형식의 상태 출력 ...... 49

    CHAPTER 4 함수 51
    기존 코드를 함수로 만들기 ...... 51
    함수의 구조 ...... 54
    함수 호출하기 ...... 58
    함수들로 리팩터링하기 ...... 60
    우리의 함수 작성하기 ...... 62
    기본 인자 ...... 63
    단일 표현식 함수 ...... 65
    Unit 함수 ...... 66
    지명 함수 인자 ...... 67
    궁금증 해소하기: Nothing 타입 ...... 68
    궁금증 해소하기: 자바의 파일 수준 함수 ...... 70
    궁금증 해소하기: 함수 오버로딩 ...... 72
    궁금증 해소하기: 백틱 함수 이름 ...... 73
    챌린지: 단일 표현식 함수 ...... 75

    CHAPTER 5 익명 함수와 함수 타입 77
    익명 함수 ...... 77
    타입 추론 지원 ...... 84
    함수를 인자로 받는 함수 정의하기 ...... 86
    인라인 함수로 만들기 ...... 88
    함수 참조 ...... 90
    반환 타입으로 함수 타입 사용하기 ...... 91
    궁금증 해소하기: 코틀린의 람다는 클로저다 ...... 93
    궁금증 해소하기: 람다 vs 익명 내부 클래스 ...... 94

    CHAPTER 6 null 안전과 예외 97
    코틀린의 null 처리 개요 ...... 97
    코틀린의 명시적 null 타입 ...... 99
    에러 검출 시점(컴파일 VS 런타임) ...... 101
    null 안전 처리 ...... 101
    예외 ...... 109
    전제 조건 ...... 114
    null: 무엇이 좋을까? ...... 116
    궁금증 해소하기: checked 예외와 unchecked 예외 ...... 117
    궁금증 해소하기: 다른 언어의 코드를 같이 사용할 때의 null 처리 ...... 118

    CHAPTER 7 문자열 121
    부분 문자열 추출하기 ...... 121
    문자열 변경하기 ...... 126
    문자열 비교 ...... 129
    궁금증 해소하기: 유니코드 ...... 130
    궁금증 해소하기: 문자열의 각 문자를 하나씩 처리하기 ...... 131
    챌린지: toDragonSpeak 함수 개선하기 ...... 132

    CHAPTER 8 숫자 133
    숫자 타입 ...... 133
    정수 ...... 134
    소수 ...... 136
    문자열을 숫자 타입으로 변환하기 ...... 137
    Int 타입을 Double 타입으로 변환하기 ...... 138
    Double 타입 값의 형식 지정하기 ...... 140
    Double 타입 값을 Int 타입 값으로 변환하기 ...... 141
    궁금증 해소하기: 비트 연산 ...... 142
    챌린지: 잔액 부족 처리하기 ...... 143

    CHAPTER 9 표준 함수 145
    apply ...... 145
    let ...... 147
    run ...... 148
    with ...... 150
    also ...... 150
    takeIf ...... 151
    표준 라이브러리 함수 사용하기 ...... 153

    CHAPTER 10 List와 Set 155
    List ...... 155
    반복 처리 ...... 165
    파일 데이터를 읽어서 List에 넣기 ...... 169
    해체 선언 ...... 172
    Set ...... 172
    while 루프 ...... 177
    break 표현식 ...... 179
    컬렉션 변환 ...... 180
    궁금증 해소하기: 배열 타입 ...... 181
    궁금증 해소하기: 읽기 전용 vs 변경 불가능 ...... 182
    챌린지: 정형화된 술집 메뉴 ...... 183

    CHAPTER 11 Map 185
    Map 생성하기 ...... 185
    Map에서 값 가져오기 ...... 188
    Map에 항목 추가하기 ...... 189
    Map의 값 변경하기 ...... 191
    챌린지: 술집 문지기 ...... 195

    CHAPTER 12 클래스 정의하기 197
    클래스 정의하기 ...... 197
    인스턴스 생성하기 ...... 198
    클래스 함수 ...... 199
    가시성과 캡슐화 ...... 200
    클래스 속성 ...... 202
    NyetHack 코드 리팩터링하기 ...... 209
    패키지 사용하기 ...... 217
    궁금증 해소하기: var과 val 속성의 내부 구현 ...... 220
    궁금증 해소하기: 경합 상태 방지하기 ...... 223
    궁금증 해소하기: 패키지 가시성 ...... 225

    CHAPTER 13 초기화 227
    생성자 ...... 228
    초기화 블록 ...... 234
    속성 초기화 ...... 235
    초기화 순서 ...... 239
    초기화 지연시키기 ...... 241
    궁금증 해소하기: 초기화 순서를 고려한 코드 작성 ...... 244
    챌린지: 엑스컬리버 검의 불가사의 ...... 247

    CHAPTER 14 상속 249
    Room 클래스 정의하기 ...... 249
    서브 클래스 생성하기 ...... 251
    타입 검사 ...... 257
    코틀린 타입의 상속 계층 ...... 260
    궁금증 해소하기: Any 클래스 ...... 263

    CHAPTER 15 객체 267
    object 키워드 ...... 267
    중첩 클래스 ...... 276
    데이터 클래스 ...... 279
    enum 클래스 ...... 284
    연산자 오버로딩 ...... 287
    NyetHack 게임 세계 탐험하기 ...... 290
    궁금증 해소하기: 객체의 값 비교하기 ...... 293
    궁금증 해소하기: ADT ...... 296
    챌린지: ‘quit’ 명령 ...... 299
    챌린지: 게임 세계 지도 구현하기 ...... 300
    챌린지: 종을 치기 ...... 300

    CHAPTER 16 인터페이스와 추상 클래스 301
    인터페이스 정의하기 ...... 301
    인터페이스 구현하기 ...... 303
    기본 구현 ...... 305
    추상 클래스 ...... 306
    NyetHack의 전투 기능 ...... 309

    CHAPTER 17 제네릭 315
    제네릭 타입 정의하기 ...... 316
    제네릭 함수 ...... 318
    복합 제네릭 타입 매개변수 ...... 320
    제네릭 타입 제약 ...... 322
    vararg와 get ...... 323
    in과 out ...... 326
    궁금증 해소하기: reified 키워드 ...... 331

    CHAPTER 18 확장 335
    확장 함수 정의하기 ...... 335
    제네릭 확장 함수 ...... 338
    확장 속성 ...... 340
    null 가능 타입의 확장 함수 ...... 341
    확장 함수의 바이트코드 구현 ...... 342
    확장 함수로 추출하기 ...... 343
    확장 파일 정의하기 ...... 345
    확장 함수 이름 변경하기 ...... 347
    코틀린 표준 라이브러리의 확장 함수와 속성 ...... 348
    챌린지: toDragonSpeak 확장 함수 ...... 349
    챌린지: frame을 확장 함수로 변경하기 ...... 349

    CHAPTER 19 함수형 프로그래밍 351
    함수 유형 ...... 352
    왜 함수형 프로그래밍일까? ...... 357
    시퀀스 ...... 359
    궁금증 해소하기: 성능 측정 ...... 361
    챌린지: Map의 키와 값을 바꿔치기하기 ...... 362
    챌린지: 함수형 프로그래밍을 Tavern.kt에 적용하기 ...... 362
    챌린지: 슬라이딩 윈도 ...... 363

    CHAPTER 20 자바와의 상호운용 365
    자바 클래스와 상호운용하기 ...... 366
    상호운용과 null 처리 ...... 367
    타입 매핑 ...... 371
    게터와 세터 그리고 상호운용 ...... 373
    JVM 애노테이션 ...... 375
    예외와 상호운용 ...... 385
    자바의 함수 타입 ...... 389
    org.jetbrains.annotations 라이브러리 추가하기 ...... 391

    CHAPTER 21 코틀린으로 안드로이드 앱 개발하기 393
    안드로이드 스튜디오 ...... 393
    UI 정의하기 ...... 400
    에뮬레이터에서 앱 실행하기 ...... 403
    캐릭터 생성하기 ...... 405
    Activity 클래스 ...... 406
    뷰 컴포넌트를 코드와 연결시키기 ...... 407
    코틀린-안드로이드 확장의 합성 속성 ...... 410
    클릭 리스너 설정하기 ...... 412
    액티비티 인스턴스의 상태 보존 ...... 414
    확장 함수를 사용해서 코드 리팩토링하기 ...... 417
    궁금증 해소하기: 안드로이드 KTX와 Anko 라이브러리 ...... 420

    CHAPTER 22 코루틴 개요 423
    캐릭터 데이터 파싱하기 ...... 424
    실시간으로 데이터 가져오기 ...... 426
    안드로이드 main 스레드 ...... 429
    코루틴을 활성화시키기 ...... 429
    async 함수를 사용하여 코루틴 지정하기 ...... 430
    launch vs async/await ...... 432
    실행 보류 함수 ...... 432
    챌린지: 실시간 데이터 ...... 433

    CHAPTER 23 이 책을 마치며 435
    어디로 가야 할까? ...... 435
    부담 없는 연락처 ...... 436
    감사합니다! ...... 436

    APPENDIX A 인텔리제이 설치와 구성하기 437
    A-1: JDK 설치하기 ...... 437
    A-2: 윈도우 시스템에서 인텔리제이를 설치하기 ...... 437
    A-3: 맥 OS에서 인텔리제이를 설치하기 ...... 442
    A-4: 리눅스에서 인텔리제이를 설치하기 ...... 442

    본문중에서

    인텔리제이를 사용하면 코틀린 외에도 자바, 파이썬, 스칼라, 그루비 등의 다른 프로그래밍 언어로 코드를 작성할 수 있다. 여기처럼 Kotlin/JVM을 선택하는 것은 JVM(Java Virtual Machine)에서 실행되는 코틀린 코드를 목표로 작성한다는 뜻이다. 따라서 하나의 소스 코드만으로도 서로 다른 운영체제에서 실행할 수 있다(JVM에 관련된 더 자세한 내용은 이번 장 뒤의 ‘궁금증 해소하기: JVM에서 실행하기’에서 더 자세히 알아본다).
    (/ p.3)

    익명 함수는 여는 중괄호({)와 닫는 중괄호(}) 사이에 표현식이나 명령문을 넣어서 작성한다. 여기서는 println을 호출할 때 인자를 둘러싸는 괄호 내부에 중괄호를 사용하여 익명 함수를 정의하였다. 그리고 익명 함수에서는 다음과 같이 하나의 변수를 선언하고 인사 메시지 문자열을 반환한다.
    (/ p.79)

    List를 반복 처리하는 한 가지 방법이 for 루프이며, ‘List의 각 요소에 대해 무엇인가를 수행하라’는 로직으로 수행된다. 이때 요소의 이름을 지정하면 이것의 타입을 코틀린 컴파일러가 자동으로 찾아서 처리해 준다. NyetHack 게임의 술집 주인은 사업의 일환으로 항상 각 고객에게 친절하게 인사한다. 고객에 대한 인사말을 출력하도록 Tavern.kt를 변경하자. 또한, 콘솔 출력을 알아보기 쉽도록 patronList의 요소를 변경하고 출력하는 코드를 삭제한다.
    (/ p.165)

    이미 알아보았듯이 클래스의 모든 속성은 게터를 가지며, var 속성의 경우는 세터도 갖는다. 그리고 속성값을 읽을 때는 게터가, 변경할 때는 세터가 자동 실행된다. 기본적으로 게터와 세터의 가시성은 속성 자체의 가시성과 일치한다. 따라서 만일 속성의 가시성이 public이라면 게터와 세터도 public이 된다.
    (/ p.207)

    확장 함수와 속성은 일반 함수와 속성처럼 동일한 방법으로 사용되지만, 확장하는 클래스에 정의된 것도 아니고 상속을 사용하지도 않는다. 그렇다면 어떻게 JVM에 구현되는 것일까? 이때는 코틀린 컴파일러가 생성하는 바이트코드를 자바로 역컴파일해서 보면 알 수 있다.
    (/ p.342)

    코틀린 애플리케이션을 개발하려면 최소한 코틀린 컴파일러와 JDK(Java Development Kit)가 설치되어야 한다. 코틀린 컴파일러는 인텔리제이의 플러그인으로 포함되어 자동 설치되므로 따로 설치할 필요 없다. 그러나 JDK는 별도로 설치해야 하며, JDK 6 버전부터 호환 가능하지만 JDK 8 이상 버전을 설치하는 것이 좋다. 만일 JDK가 설치되어 있지 않다면 https://www.oracle.com/technetwork/java/javase/downloads/에 접속한 후 다운로드하고 설치하자.
    (/ p.437)

    관련이미지

    저자소개

    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    빅 너드 랜치의 소프트웨어 엔지니어이자 강사이다. 쿠퍼 유니온 과학예술대학을 졸업하고 인터랙티브 아트를 만드는 일환으로 소프트웨어 개발을 시작하여 지금까지 IT 업계에 몸담고 있다. 빅 너드 랜치에서 자바와 안드로이드, 코틀린을 가르치고 있으며, 컴퓨터를 사용하지 않을 때는 달리기, 브라질 유술 등을 즐긴다.

    데이비드 그린핼프 [저] 신작알림 SMS신청 작가DB보기
    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    빅 너드 랜치의 안드로이드 팀 매니저이자 강사이며, 새로운 것을 만들기 좋아한다. 조지아공과대학 컴퓨터 공학 학위를 받았다. 안드로이드 앱을 작성하지 않거나 교육 과정을 개발하지 않을 때는 요리를 하거나 독서 또는 미식축구 경기 관람을 즐긴다.

    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    현재 프리랜서로, 데이터베이스/모바일 시스템 컨설팅과 강의를 하고 있다. 또한, 20년 넘게 데이터베이스와 객체지향 시스템 설계 및 개발 프로젝트와 건설/금융 분야 애플리케이션 개발 등에 참여했다. 새로운 테크놀로지와 다양한 프로그래밍 언어를 사용해서 실무에 활용하고 가르치는 것을 좋아한다. 저서로는 《핵심만 골라 배우는 코틀린 프로그래밍》이 있으며, 번역서로는 《핵심만 골라 배우는 안드로이드 스튜디오 3 & 프로그래밍》, 《실무에 적용하는 안드로이드 프로그래밍(제2판)》, 《Learn Android Studio》, 《SQLite 마스터북(제2판)》, 《프로 오브젝티브-C 디

    펼쳐보기

    이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

      리뷰

      10.0 (총 0건)

      구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

      리뷰쓰기

      기대평

      작성시 유의사항

      평점
      0/200자
      등록하기

      기대평

      0.0

      교환/환불

      교환/환불 방법

      ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

      교환/환불 가능 기간

      고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

      교환/환불 비용

      고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

      교환/환불 불가사유

      반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
      배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

      소비자 피해보상

      소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
      교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

      기타

      도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

      배송안내

      • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

      • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

      • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

      • 배송비

      도서(중고도서 포함) 구매

      2,000원 (1만원이상 구매 시 무료배송)

      음반/DVD/잡지/만화 구매

      2,000원 (2만원이상 구매 시 무료배송)

      도서와 음반/DVD/잡지/만화/
      중고직배송상품을 함께 구매

      2,000원 (1만원이상 구매 시 무료배송)

      업체직접배송상품 구매

      업체별 상이한 배송비 적용