본문 바로가기

추천 검색어

실시간 인기 검색어

핵심 코틀린 프로그래밍

기초를 단단히 다져주는 코틀린 입문서
오현석 저자(글)
에이콘출판 · 2023년 04월 28일
0.0
10점 중 0점
(0개의 리뷰)
평가된 감성태그가
없습니다
  • 핵심 코틀린 프로그래밍 대표 이미지
    핵심 코틀린 프로그래밍 대표 이미지
  • A4
    사이즈 비교
    210x297
    핵심 코틀린 프로그래밍 사이즈 비교 186x235
    단위 : mm
01 / 02
MD의 선택 무료배송 소득공제
10% 40,500 45,000
적립/혜택
2,250P

기본적립

5% 적립 2,250P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 2,250P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서/외국도서
도서 포함 15,000원 이상 구매 시 무료배송
도서+사은품 또는 도서+사은품+교보Only(교보굿즈)

15,000원 미만 시 2,500원 배송비 부과

교보Only(교보배송)
각각 구매하거나 함께 20,000원 이상 구매 시 무료배송

20,000원 미만 시 2,500원 배송비 부과

해외주문 서양도서/해외주문 일본도서(교보배송)
각각 구매하거나 함께 15,000원 이상 구매 시 무료배송

15,000원 미만 시 2,500원 배송비 부과

업체배송 상품(전집, GIFT, 음반/DVD 등)
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
주문정보를 불러오는 중입니다.
기본배송지 기준
배송일자 기준 안내
로그인 : 회원정보에 등록된 기본배송지
로그아웃 : '서울시 종로구 종로1' 주소 기준
로그인정확한 배송 안내를 받아보세요!

이달의 꽃과 함께 책을 받아보세요!

1권 구매 시 결제 단계에서 적용 가능합니다.

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

1부에서는 코틀린 프로그램에 필요한 필수적인 기본 요소를 설명하며, 이를 통해 너무 복잡한 개념을 이해하기 위해 고생하지 않고 기본적인 코틀린 언어를 배울 수 있다. 2부에서는 코틀린이 제공하는 다양한 문법 설탕이나 고급 기능을 설명하면서 각 기능이 어떤 역할을 하는지 보여준다. 그 과정에서 객체지향, 함수형 프로그래밍, 제네릭스, 컬렉션을 더 잘 이해하고, 코드 작성시 코틀린의 다양한 기능을 적재적소에 활용할 수 있게 해준다. 또한 코틀린 언어의 여러 요소를 언어 명세 수준으로 설명하고 있어 책을 다 읽은 후에도 참고서로 활용할 수 있을 것이다.

작가정보

저자(글) 오현석

오현석

모빌리티42 이사로 일하면서 매일 고객의 요청에 따라 코드를 만드는 현업 개발자다. 어릴 때 처음 컴퓨터를 접하고 매혹된 후 경기과학고, KAIST 전산학과(프로그래밍 언어 전공 석사)를 거치면서 계속 컴퓨터를 사용해왔다.
직장에서는 주로 코틀린이나 자바를 사용한 서버 프로그래밍을 하고, 주말이나 여가시간에는 번역을 하거나 공부를 하면서 즐거움을 찾는다. 시간이 아주 많이 남을 때는 시뮬레이션 게임을 즐기면서 머리를 식히고, 어떻게 하면 막내 자식을 프로그래밍의 세계로 끌어들일 수 있을지를 고민하는 아빠이기도 하다.
『코어 파이썬 애플리케이션 프로그래밍』(에이콘, 2014)을 시작으로 『Kotlin in Action』(에이콘, 2017), 『아토믹 코틀린』(길벗, 2023), 『코딩 좀 아는 사람』(윌북, 2023) 등 30여 권의 책을 번역했다.

작가의 말

번역서 『Kotlin in Action』(에이콘, 2017)을 출간하기 전부터 초중급 개발자를 대상으로 코틀린(Kotlin)을 더 깊이 다루는 책을 써왔다. 하지만 업무와 다른 번역 작업이 겹쳐지며 저술 속도는 더디기만 했다. 게다가 중간중간 코틀린이 업데이트되면서 사용자들의 관심사가 달라짐에 따라 책의 내용을 여러 번 다시 써야만 했다. 그 과정을 겪으면서 당장 사람들이 관심을 갖는 내용을 담은 책이 아니라 언어 자체를 깊이 이해할 수 있도록 돕는 책을 쓰기로 결심했다. 그리고 마침내 코틀린 언어 자체에 대해 이야기하는 책을 낼 수 있게 됐다.
좋은 개발자가 되려면 무엇보다 개발 전반에 필요한 지식을 갖춰야 한다. 특히 프로그래밍 언어에 대한 지식은 모든 개발의 바탕이 되는 중요한 지식이다. 언어를 배울 때는 언어가 제공하는 여러 키워드와 구성 요소를 제대로 이해하고, 이런 요소를 프로그래밍에 어떻게 써먹어야 할지도 알아야 한다. 하지만 더 일반적인 언어론이나 프로그래밍 측면에서 각 요소가 왜 그런 식으로 설계됐는지도 알아야 자신이 사용하는 언어의 발전을 더 잘 이해하고 향후 그 언어가 변하더라도 좀 더 쉽게 변화를 받아들이고 활용할 수 있다. 또 언어론적인 관점을 잘 이해하고 있으면 새 언어를 배울 때도 도움이 된다.
이 책에서는 코틀린 언어를 설명하는 과정에서 프로그래밍 언어에 대한 지식을 쉬운 설명과 예제를 곁들여 함께 전달하고자 노력했다. 이런 설명을 통해 코틀린의 설계를 여러분이 좀 더 쉽고 명확하게 이해하고 충분히 활용하게 되길 바란다.
- 브리즈번에서
오현석

목차

  • 1장. 코틀린 시작하기
    __1.1 간략한 역사
    __1.2 코틀린 언어의 특징
    __1.3 코틀린 개발 환경과 설치 및 사용 방법
    ____1.3.1 웹 도구
    ____1.3.2 IDE: 인텔리J 아이디어
    ____1.3.3 명령줄 도구: kotlinc와 kotlin

    제1부 코틀린 퀵스타트
    2장. 프로그램을 이루는 기본 단위: 변수와 식, 문
    __2.1 가장 간단한 코틀린 프로그램
    __2.2 주석
    __2.3 값과 이름, 리터럴과 변수
    __2.4 타입과 타입 지정, 타입 추론, 타입 변환
    __2.5 if, when
    __2.6 범위와 for
    __2.7 while과 do while
    __2.8 break와 continue
    __2.9 식과 연산자
    __2.10 배열
    ____2.10.1 배열 선언하기
    ____2.10.2 배열을 생성하는 다른 방법
    ____2.10.3 원시 타입 배열과 참조 타입 배열
    ____2.10.4 배열 기본 연산
    __2.11 연습문제

    3장. 함수
    __3.1 함수
    ____3.1.1 Unit 타입
    __3.2 지역 변수와 지역 함수, 정적 영역 규칙
    ____3.2.1 정적 영역 규칙
    __3.3 익명 함수와 람다
    ____3.3.1 익명 함수나 람다와 관련된 편의 구문
    __3.4 클로저와 값 포획
    __3.5 다양한 파라미터 정의 방법
    ____3.5.1 디폴트 파라미터
    ____3.5.2 이름 붙은 인자
    ____3.5.3 가변 길이 인자와 스프레드 연산자
    __3.6 연습문제

    4장. 클래스와 객체
    __4.1 클래스
    ____4.1.1 생성자에서 클래스 프로퍼티 정의하기
    ____4.1.2 객체와 참조
    ____4.1.3 객체의 동일성과 동등성
    ____4.1.4 초기화 블록
    __4.2 상속
    ____4.2.1 멤버의 상속 관계 제어: override, open, final
    ____4.2.2 상속의 활용: 오버라이드를 통한 세분화와 동적 디스패치
    ____4.2.3 Any와 equals(), hashCode(), toString()
    ____4.2.4 is와 as, 스마트 캐스트
    __4.3 추상 클래스
    __4.4 인터페이스
    ____4.4.1 인스턴스 정의와 상속하기
    ____4.4.2 인터페이스 오버라이드 규칙
    __4.5 프로퍼티 정의하기: 게터, 세터, 뒷받침하는 필드
    ____4.5.1 뒷받침하는 필드
    ____4.5.2 뒷받침하는 필드가 없는 경우
    ____4.5.3 지연 초기화 프로퍼티
    ____4.5.4 프로퍼티 게터와 인자가 없는 함수 중 어느 것을 사용해야 할까?
    __4.6 연습문제

    5장. 예외 처리
    __5.1 예외 던지기
    ____5.1.1 예외 타입 선언하기
    ____5.1.2 다양한 예외 타입
    __5.2 예외 받기: catch
    ____5.2.1 예외 다시 던지기와 예외 변환해 던지기
    ____5.2.2 try/catch 식
    ____5.2.3 Nothing 타입
    __5.3 정리 작업: finally
    ____5.3.1 자원 자동 해제를 처리하는 더 나은 방법
    __5.4 연습문제

    6장. 제네릭스
    __6.1 제네릭스의 필요성
    __6.2 코틀린 제네릭스 문법
    __6.3 타입 바운드
    ____6.3.1 재귀적 타입 바운드
    ____6.3.2 다중 바운드: where
    __6.4 선언 지점 변성: in, out
    ____6.4.1 공변성
    ____6.4.2 반공변성
    ____6.4.3 무공변
    ____6.4.4 반공변성과 공변성은 어디서 오는가?
    ____6.4.5 둘 이상의 타입 파라미터가 있는 제네릭 타입의 변성 판정
    ____6.4.6 선언 지점 변성과 사용 지점 변성, 타입 프로젝션
    __6.5 연습문제

    7장. 널 가능성
    __7.1 널 도입과 널 가능성의 필요성
    ____7.1.1 제네릭 타입 파라미터에서의 널 가능성
    __7.2 널이 될 수 있는 타입과 그렇지 않은 타입
    __7.3 널 여부 검사와 스마트 캐스트
    ____7.3.1 널 가능성에 대한 스마트 캐스트와 Nothing 타입
    ____7.3.2 널이 될 수 있는 타입의 값과 is, as 연산
    __7.4 엘비스 연산자와 안전한 호출 연산자
    __7.5 널 아님 단언 연산자
    __7.6 연습문제

    8장. 패키지와 임포트
    __8.1 패키지와 임포트
    ____8.1.1 패키지 선언
    ____8.1.2 전체 이름과 짧은 이름, 임포트
    __8.2 임포트 이름 충돌과 임포트 별명
    __8.3 디폴트 임포트
    __8.4 연습문제

    9장. 코틀린 컬렉션 기초
    __9.1 컬렉션 소개
    ____9.1.1 컬렉션이 제공하는 연산의 분류
    __9.2 Iterable〈〉과 Collection〈〉
    ____9.2.1 Iterable〈〉
    ____9.2.2 Collection〈〉
    ____9.2.3 MutableIterable〈〉과 MutableCollection〈〉
    ____9.2.4 forEach(), forEachIndexed()
    __9.3 컬렉션 종류에 따른 생성, 원소 접근, 삽입, 삭제 방법
    ____9.3.1 리스트
    ____9.3.2 집합
    ____9.3.3 맵
    __9.4 컬렉션 검색과 걸러내기 연산
    ____9.4.1 filter(), filterNot()
    ____9.4.2 filterIndexed()
    ____9.4.3 filterNotNull()
    ____9.4.4 indexOf(), lastIndexOf(), indexOfFirst(), indexOfLast()
    __9.5 컬렉션 변환 연산
    ____9.5.1 map(), mapNotNull()
    ____9.5.2 flatten()
    ____9.5.3 flatMap()
    ____9.5.4 mapIndexed()와 flatMapIndexed()
    __9.6 컬렉션 종합 연산
    ____9.6.1 합계 연산: sum(), sumOf()
    ____9.6.2 축약 연산: reduce(), reduceIndexed(), reduceIndexedNull()
    ____9.6.3 오른쪽 축약 연산: reduceRight()와 reduceRightIndexed()
    ____9.6.4 접기 연산: fold(), foldIndexed(), foldRight(), foldRightIndexed()
    ____9.6.5 문자열 변환 연산
    __9.7 컬렉션 전체 변환 연산
    ____9.7.1 리스트 변환: toList(), toMutableList()
    ____9.7.2 배열 변환: toTypedArray()
    ____9.7.3 집합 변환: toSet()
    ____9.7.4 맵 변환: toMap(), toMutableMap()
    __9.8 기타 연산
    ____9.8.1 정렬
    __9.9 연습문제

    제2부
    10장. 변수 선언과 기본 타입 자세히 살펴보기
    __10.1 기본 데이터 타입
    ____10.1.1 정수형 기본 타입
    ____10.1.2 실수형 기본 타입
    ____10.1.3 Boolean 타입
    ____10.1.4 Char 타입
    __10.2 변수 이름
    ____10.2.1 이름 규칙과 이름 충돌
    ____10.2.2 lateinit 변수
    ____10.2.3 const val
    __10.3 연산자와 연산자 우선순위
    ____10.3.1 산술 연산자
    ____10.3.2 수 타입 간의 타입 변환
    ____10.3.3 복합 대입 연산
    ____10.3.4 증가/감소 연산
    ____10.3.5 비교 연산과 불린 연산
    ____10.3.6 비트 연산과 시프트 연산
    ____10.3.7 비트 연산과 부호 없는 타입
    ____10.3.8 수학 연산
    ____10.3.9 연산자 우선순위
    __10.4 (JVM) 문자열
    ____10.4.1 로우 문자열
    ____10.4.2 문자열 템플릿
    ____10.4.3 문자열 조작
    __10.5 연습문제

    11장. 제어 구조 자세히 살펴보기
    __11.1 if 식과 Nothing 타입
    __11.2 for 루프와 이터레이터의 관계: 관습에 기반한 언어 기능 제공
    __11.3 범위와 순열
    ____11.3.1 범위
    ____11.3.2 순열
    __11.4 break, continue와 레이블
    __11.5 연습문제

    12장. 함수 자세히 살펴보기
    __12.1 operator 키워드와 연산자 오버로드
    ____12.1.1 단항 연산자 오버로드
    ____12.1.2 단항 증가/감소 연산자 오버로드
    ____12.1.3 이항 산술 연산자 오버로드
    ____12.1.4 이항 멤버십 연산자 오버로드
    ____12.1.5 인덱스 연산자 오버로드
    ____12.1.6 동등성 연산자 오버로드
    ____12.1.7 비교 연산자 오버로드
    ____12.1.8 복합 연산자 오버로드
    ____12.1.9 호출 연산자 오버로드
    ____12.1.10 멤버 함수를 중위 형식으로 쓸 수 있는 경우
    ____12.1.11 구조 분해와 componentN() 연산자 함수
    __12.2 확장 함수와 확장 프로퍼티
    ____12.2.1 확장 함수는 정적으로 디스패치됨
    ____12.2.2 널이 될 수 있는 타입에 대한 확장 함수
    ____12.2.3 확장 프로퍼티
    ____12.2.4 클래스 멤버로 확장 정의
    ____12.2.5 함수와 프로퍼티에 대한 참조
    ____12.2.6 함수 참조의 타입
    ____12.2.7 수신 객체 지정 람다와 수신 객체 지정 익명 함수
    ____12.2.8 이름은 같고 파라미터만 다른 확장
    __12.3 함수 오버로드 해결
    ____12.3.1 어떤 요소를 호출할 수 있을까?
    ____12.3.2 오버로드 후보 집합
    ____12.3.3 가장 구체적인 함수를 정하기
    __12.4 영역 규칙 다시 보기: 디폴트 파라미터, 재귀
    ____12.4.1 디폴트 파라미터에서 다른 파라미터 이름 사용하기
    ____12.4.2 재귀 호출과 꼬리 재귀
    __12.5 인라인 함수
    ____12.5.1 고차 함수 파라미터로 전달된 람다의 인라이닝
    ____12.5.2 지역 return과 비지역 return
    ____12.5.3 inline에서 인라인된 람다의 전달
    ____12.5.4 noline과 crossinline
    ____12.5.5 인라인 프로퍼티와 인라인 확장
    ____12.5.6 reified
    ____12.5.7 공개된 인라인 함수의 제약 사항
    __12.6 연습문제

    13장. 객체지향 자세히 살펴보기
    __13.1 내포 클래스와 내부 클래스
    ____13.1.1 내포 클래스
    ____13.1.2 내부 클래스
    ____13.1.3 클래스 안에 내포시킬 수 있는 대상
    ____13.1.4 인터페이스 안에 내포시킬 수 있는 대상
    __13.2 object로 싱글턴 객체 선언하기
    ____13.2.1 익명 객체
    ____13.2.2 객체가 다른 클래스나 인터페이스 상속하기
    ____13.2.3 fun interface 선언과 람다를 사용한 익명 객체 선언
    ____13.2.4 동반 객체
    __13.3 데이터 클래스
    ____13.3.1 데이터 타입 정의 제약 사항
    ____13.3.2 copy()를 통한 객체 복사
    ____13.3.3 데이터 클래스 본문에 정의된 프로퍼티
    ____13.3.4 데이터 클래스의 상속
    ____13.3.5 조언: 데이터 클래스는 불변 객체로만 사용하라
    __13.4 이넘 클래스로 여러 상수값 정의하기
    ____13.4.1 이넘 클래스에 정의된 멤버 함수나 프로퍼티
    ____13.4.2 이넘 상수: 싱글턴 객체
    __13.5 값 클래스를 통해 타입 안전성과 성능 동시에 얻기
    __13.6 봉인된 클래스나 봉인된 인터페이스를 통해 클래스 계층 제한하기
    __13.7 부생성자
    ____13.7.1 주생성자가 없는 경우 부생성자
    __13.8 가시성 변경자
    ____13.8.1 클래스나 객체에 선언된 이름의 가시성
    ____13.8.2 패키지 최상위에 선언되는 이름의 가시성
    __13.9 위임을 통해 구현을 다른 객체에 미루기
    ____13.9.1 인터페이스 구현 위임
    ____13.9.2 프로퍼티 위임
    ____13.9.3 코틀린이 기본 제공하는 위임
    ____13.9.4 getValue()와 setValue() 규칙
    ____13.9.5 위임 프로퍼티 컴파일 방법
    ____13.9.6 operator fun provideDelegate()
    __13.10 타입 별명
    __13.11 연습문제

    14장. 제네릭스 2
    __14.1 스타 프로젝션
    __14.2 타입 소거(JVM)와 reified
    ____14.2.1 타입 소거
    ____14.2.2 reified: 실체화한 타입
    __14.3 영역 함수
    ____14.3.1 let
    ____14.3.2 run 일반 함수와 run 확장 함수
    ____14.3.3 with()
    ____14.3.4 also()
    ____14.3.5 apply()
    ____14.3.6 takeIf()와 takeUnless()
    ____14.3.7 코틀린 공식 문서의 영역 함수 공식 가이드
    __14.4 연습문제

    15장. 컬렉션 2
    __15.1 두 컬렉션을 쌍으로 연결하기, 연결을 풀어 두 컬렉션 만들기: zip(), unzip(), zipWithNext()
    __15.2 컬렉션을 조건에 따라 둘로 나누기: partition()
    __15.3 fold()나 reduce()의 진행 단계를 리스트로 돌려받기: runningFold(), runningFoldIndexed(), runningReduce(), runningReduceIndexed()
    ____15.3.1 runningFold(), runningFoldIndexed()의 별명: scan()과 scanIndexed()
    __15.4 원소 선택과 제외: take(), drop(), takeLast(), dropLast(), takeWhile(), dropWhile(), takeLastWhile(), dropLastWhile()
    ____15.4.1 개수로 선택하거나 제외하기: take(), drop(), takeLast(), dropLast()
    ____15.4.2 앞에서부터 조건에 맞는 원소를 찾거나 제거하기: takeWhile(), dropWhile(), takeLastWhile(), dropLastWhile()
    __15.5 슬라이딩 윈도우와 덩어리로 나누기: windowed(), chunked()
    __15.6 값 연관시키기: associate(), associateBy(), associateByTo(), associateTo(), associateWith(), associateWithTo()
    ____15.6.1 associate()와 associateTo()
    ____15.6.2 associateBy()와 associateByTo()
    ____15.6.3 associateWith()와 associateWithTo()
    __15.7 키에 따라 그룹으로 나누기: groupBy(), groupByTo()
    __15.8 그룹을 처리하기 위한 Grouping 객체 얻기: groupingBy()
    ____15.8.1 키 셀렉터로 그루핑 만들기: groupingBy()
    ____15.8.2 그룹별 멤버 개수 세기: eachCount()
    ____15.8.3 그룹별로 reduce()한 결과를 키와 연관시키기: reduce()
    ____15.8.4 그룹별로 fold()한 결과를 키에 연관시키기: aggregate()
    ____15.8.5 그룹별로 누적 연산을 적용한 결과를 키에 연관시키기: aggregate()
    __15.9 조건을 만족하는 원소 검사: none(), any(), all()
    __15.10 컬렉션에 대한 집합 연산: intersect(), union(), minus()
    ____15.10.1 컬렉션에 원소를 덧붙이거나 컬렉션에서 원소를 제거하는 연산: plusElement(), minusElement()
    __15.11 뒤섞기 연산: shuffled()
    __15.12 배열 연산
    ____15.12.1 배열 비교: contentEquals(), contentDeepEauals()
    ____15.12.2 배열의 내용 복사: copyOf(), copyOfRange(), copyInto()
    ____15.12.3 배열에 값 채워 넣기: fill()
    ____15.12.4 뒤섞기 연산: shuffle()
    __15.13 시퀀스
    ____15.13.1 시퀀스 만들기: asSequence(), generateSequence(), sequence()
    __15.14 연습문제

    마무리: 다음에 공부할 내용과 전체 돌아보기

출판사 서평

◈ 이 책에서 다루는 내용 ◈
◆ 코틀린 언어를 꼭 필요한 기초적인 내용과 기초 위에 쌓아 올려야 하는 지식으로 나눠 설명
◆ 함수 오버로드 처리규칙 등 코틀린 언어의 미묘한 세부 사항을 언어 명세를 참조해 자세히 설명
◆ 형식화 문자열 등 실무에서 필요한 내용을 설명
◆ 자세한 컬렉션 라이브러리 함수 설명과 예제
◆ 2023년 코틀린 최신 버전(1.8) 대응

◈ 이 책의 대상 독자 ◈
◆ 코틀린을 자세히 알고 싶은 프로그래머
◆ 코틀린을 배웠지만 기초를 더 다지고 싶은 코틀린 프로그래머
◆ 코틀린 언어 자체가 궁금할 때 찾아볼 수 있는 참고서가 필요한 개발자

◈ 이 책의 구성 ◈
1장, ‘코틀린 시작하기’에서는 우선 코틀린 언어의 개요를 소개하고 개발 환경을 설정하는 방법을 설명한다. 이어지는 1부, ‘코틀린 퀵스타트’에서는 코틀린 언어 요소 중 프로그램을 작성할 때 꼭 필요한 필수 개념을 다룬다. 1부를 잘 읽고 언어 기본 요소를 이해해야만 코틀린 코드를 작성할 수 있고 2부 내용을 학습하기 위한 준비를 마칠 수 있다. 1부의 각 장은 다음과 같다.
2장, ‘프로그램을 이루는 기본 단위: 변수와 식, 문’에서는 코틀린 프로그램의 기본 요소를 이루는 식, 값, 타입, 변수와 기본 제어 구조인 if, when, for, while, do ... while, break, continue를 다룬다.
3장, ‘함수’에서는 함수, 지역 변수 및 지역 함수, 영역 규칙, 익명 함수, 람다, 클로저를 다루고, 다양한 파라미터 지정 방법을 설명한다.
4장, ‘클래스와 객체’에서는 객체지향의 기초를 다룬다. 클래스, 상속, 추상 클래스, 인터페이스, 프로퍼티를 설명한다.
5장, ‘예외 처리’에서는 예외 처리를 다룬다. 프로그램에서 실패를 처리하는 방법을 설명하고, 코틀린의 예외 처리 방법인 try, catch, finally를 설명한다. 또한 use() 멤버 함수를 사용해 자동 해제가 가능한 타입을 활용하는 방법도 다룬다.
6장, ‘제네릭스’에서는 타입을 파라미터로 받아 새로운 타입(클래스/인터페이스)이나 함수를 만들어내는 방법인 제네릭스를 살펴본다. 제네릭스의 개념, 코틀린에서 타입 파라미터가 포함된 클래스, 인터페이스, 함수를 선언하는 방법, 타입 바운드, 선언 지점 변성, 사용 지점 변성을 설명한다.
7장, ‘널 가능성’에서는 널 가능성을 코틀린에서 처리하는 방법을 다룬다. 널 가능성이 왜 필요한지 살펴보고, 널이 될 수 있는 타입, 스마트 캐스트, is 및 as 연산, 엘비스 연산자(?:), 안전한 호출 연산자(?.), 널 아님 단언 연산자(!!)를 설명한다.
8장, ‘패키지와 임포트’에서는 패키지를 선언하는 방법과 패키지 멤버를 임포트해 사용하는 방법, 임포트 시 새로운 이름을 지정해 이름 충돌을 막는 방법을 소개한다. 코틀린이 기본적으로 임포트해줘서 별도로 임포트하지 않아도 되는 패키지들도 설명한다.
9장, ‘코틀린 컬렉션 기초’에서는 코틀린으로 개발을 진행할 때 가장 자주 접하게 될 기초 라이브러리인 코틀린 컬렉션을 설명한다.
10장, ‘변수 선언과 기본 타입 자세히 살펴보기’에서는 기본 타입을 자세히 살펴보고, 문자열 이스케이프, 유니코드, 변수 이름 충돌을 설명한다. 그 후 lateinit var와 constval, 연산자 우선순위와 함께 모든 코틀린 연산자를 상세히 다룬다. 마지막으로는 로우(raw) 문자열과 문자열 조작 함수를 설명한다.
11장, ‘제어 구조 자세히 살펴보기’에서는 제어 구조를 더 자세히 다루고, 범위와 순열을 설명한 후 break와 continue에서 레이블을 사용하는 방법을 살펴본다.
12장, ‘함수 자세히 살펴보기’에서는 함수와 관련된 더 자세한 내용을 살펴본다. 코틀린 연산자가 어떤 연산자 함수와 연결되는지 자세히 설명하고, 확장 함수와 프로퍼티를 살펴본다. 이어서 함수 오버로드 해소 규칙을 설명하고(다소 어려운 내용이다), 파라미터에서 코틀린 영역 규칙이 적용되는 방식과 재귀 함수 및 꼬리 재귀 함수를 정의하는 방법을 다룬다. 마지막으로는 인라인 함수를 설명한다.
13장, ‘객체지향 자세히 살펴보기’에서는 객체지향과 관련해 코틀린이 제공하는 여러 가지 기능을 살펴본다. object를 사용해 싱글턴 객체를 선언하는 방법, 동반 객체, 데이터 클래스, 이넘 클래스, 값 클래스(또는 인라인 클래스), 봉인된 클래스, 부생성자, 가시성 지정자, 인터페이스 구현 위임과 프로퍼티 위임, 타입 별명을 설명한다.
14장, ‘제네릭스 2’에서는 스타 프로젝션, 타입 소거, reified 타입 파라미터를 설명하고, 영역 함수를 다룬다.
15장, ‘컬렉션 2’에서는 9장에서 배운 여러 컬렉션이 공통으로 제공하는 다양한 함수를 유형별로 설명한다. 9장에서 다룬 함수들 외에 zip(), partition(), take(), drop(), windowed(), chunked(), associate(), groupBy() 등을 설명하고 groupBy()와 관련 있는 Grouping 클래스를 살펴본 다음, fold(), groupBy() 등을 한꺼번에 처리할 수 있는 더 일반적인 함수인 aggregate()와 그 외 여러 가지 함수를 설명한다. 마지막으로는 컬렉션을 지연 처리할 수 있는 시퀀스를 살펴본다.
각 장에서 개념을 설명하고 난 후에는 직전에 배운 내용을 간단하게 스스로 검토해보도록 익힘문제를 제시하며, 각 장의 끝에는 해당 장의 내용을 정리하는 데 도움이 되는 연습문제가 있다. 이 문제들을 풀면서 배운 내용을 정리하고 내재화하길 바란다.

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수을(를) 나타낸 표입니다.
ISBN 9791161757476
발행(출시)일자 2023년 04월 28일
쪽수 676쪽
크기
186 * 235 * 38 mm / 1313 g
총권수 1권

Klover

구매 후 리뷰 작성 시, e교환권 200원 적립

데이터를 불러오는 중입니다.

문장수집 (0)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요.

교환/반품/품절 안내

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

한강 스페셜 에디션
이벤트
  • sam x 한샘 [똑똑한sam]
  • 2025 1학기 대학교재전
01 / 02
TOP