서브메뉴

본문

아토믹 코틀린 (코틀린 컴파일러 개발자가 알려주는 코틀린 기본기 87)
아토믹 코틀린 (코틀린 컴파일러 개발자가 알려주는 코틀린 기본기 87)
저자 : Bruce Eckel^스베트라나 이사코바
출판사 : 길벗
출판년 : 2023
ISBN : 9791140703548

책소개

코틀린을 익히고 레벨업하는 가장 확실한 방법!
한 번에 하나씩 + 명확한 예제를 실행하면서 + 훌륭한 멘토의 설명으로 배워라!

코틀린의 기본 개념을 명확히 이해하고, 더 나은 코드를 작성하기 위한 87가지 필수 개념을 배울 수 있다. 이 책의 강점은 다음 3가지다. (1) 한 번에 한 가지 개념만, 하나의 문법 요소만 군더더기 없이 집중적으로 설명한다. 주제별로 세분화하여 학습 효율을 높이고, 코틀린의 철학을 충분히 이해시키기 위해 이러한 아토믹(atomic)한 구성을 선택했다. (2) 각 아톰마다 예제가 풍부하고, 모든 설명이 명확한 예제에 기반한다. 설명하기보다 예제와 결과로 코틀린의 특성을 말 그대로 보여줌으로써 코드를 직관적으로 이해시킨다. (3) 이미 좋은 책들을 집필해본 경험이 많은 저자들이 오로지 코틀린 학습 및 코드 연습을 위해 심혈을 기울여 만들었다(https://www.atomickotlin.com). 기초부터 차근차근, 이미 알고 있는 개념도 왜 이것이 더 나은 코드인지 더 정확하게 이해할 수 있다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

왜 앞으로도 쭉, 코틀린인가?

언어의 기본 개념과 예제 코드로 배우는 코틀린의 장점
처음에는 '더 나은 자바'가 되려는 의도에서 탄생했으나, 그 후 코틀린은 원래 목표를 훨씬 뛰어넘는 언어로 진화해 왔다. 다른 언어에서 가장 성공한 기능, 개발자에게 도움이 되는 기능만을 실용적으로 채택했으며, 이미 검증된 개념을 활용함으로써 생산성을 극대화했다. 불필요한 준비 코드가 필요 없으며 그럼에도 복잡한 아이디어를 표현할 수 있는 높은 가독성, 간결한 문법, 다중 패러다임 지원, 다중 플랫폼으로 컴파일, 또한 노력이 필요 없는 자바 상호 운용성과 빈 값 표현 방식 등의 장점 외에도, 코틀린에는 프로그래밍을 배우면 배울수록 납득이 되는 이점이 많다.
Atomic Kotlin, 이 책은 바로 이런 내용을 설명하는 책이다. (브루스 에켈, 스베트라나 이사코바)

기본부터 제대로 이해하고 익히는 코틀린
코틀린은 자바를 알면 쉽게 배울 수 있고 구문이 간결하여 자바보다 쉽고 간단한 언어라고 생각하기 쉽지만, 실제로는 코틀린도 자바만큼 (어쩌면 그보다 더) 복잡한 언어다. 코틀린이 제공하는 여러 가지 편의 기능을 제대로 사용하려면 그 바탕이 되는 기본 언어를 우선 깊이 이해해야 한다. 브루스 에켈과 스베트라나 이사코바는 코틀린의 기초를 쉽고, 정확하게 설명해줄 수 있는 저자들이다. (오현석)

[베타테스터 실습 후기]
아톰 하나당 딱 하나의 문법 요소에 집중해 이해하기 쉬운 간결한 코드로 설명합니다. 필요한 아톰으로 바로 가서 알고 싶었던 코틀린 문법을 즉시 익힐 수 있고, 실무에 당장 응용할 수도 있습니다. 늘 옆에 두고 필요할 때마다 참고하기에 적합한 책입니다.
김필환_네이버 클라우드

한 번에 하나의 개념만 설명합니다. 작게 나눈 개념을 군더더기 없이 집중적으로 설명하고, 설명한 바를 코드로 한눈에 볼 수 있어서 말하고자 하는 개념이 정말 쉽게 이해되었습니다.
박준필_파수

각 아톰에서 하나의 주제를 깊이 설명하므로 코틀린의 철학을 충분히 이해할 수 있으며, 코틀린을 개발 언어로 사용하는 데 큰 도움이 됩니다. 아톰이 잘 분류되어 있어 필요한 부분만 찾아 학습하기에도 유용합니다.
심주현_삼성전자 SW 엔지니어

코틀린 기본 문법, 코틀린을 잘 사용하기 위한 프로그래밍 방법을 87개 아톰으로 세분화했습니다. 모든 아톰이 철저히 실습 기반으로 진행되며, 불필요한 설명이 없고, 학습 중인 아톰 실습에만 온전히 집중할 수 있어 학습 효율이 매우 높습니다.
권민승_백엔드 개발자

『Kotlin in Action』을 집필한 저자의 책이라 관심이 갔는데, 원서의 내용이 워낙 좋고 번역도 매우 잘되어 있습니다. 객체 지향, 함수형 프로그래밍 실습 코드를 연습하면서 자바에서 사용했던 개념을 다시 한 번 생각해보고 코틀린으로 구현하는 것을 연습하는 과정이 좋았습니다.
박찬웅_백엔드 개발자

저자가 안내하는 로드맵을 따라 실습 코드를 타이핑하고 책장을 넘기다 보면 어느덧 코틀린 문법에 익숙해집니다. 단순히 자바를 대체하는 것이 아니라, 자바를 보완하고 자바와 함께 공생하며 상호 운용이 가능하도록 배울 수 있습니다.
김연희_스몰티켓

이미 알고 있다고 가정하지 않고 기초부터 차근차근 알려줍니다. 이미 알고 있는 개념도 코틀린을 통해 다시 한 번 정확히 짚고 넘어갈 수 있도록 핵심만 모아뒀습니다. 프로그래밍을 시작하는 사람, 코틀린을 처음 접하는 사람, 코틀린을 사용하는 사람 모두에게 추천합니다.
박혜선_모바일 개발자

저자의 설명을 따라가며 이것이 왜 더 나은 형태인지 잘 이해할 수 있었습니다. 오해하거나 스쳐 지나갈 수 있는 표현은 옮긴이가 각주로 부연 설명을 해주므로 오해하기 쉬운 부분도 한 번 더 생각할 수 있었습니다. 사소해 보일 수 있는 표현도 옮긴이의 관점으로 이해해볼 수 있어서 더 좋았습니다.
고주형_중앙대학교

코틀린 객체 지향 프로그래밍을 카테고리별로 잘 설명하고 있습니다. 카테고리별 주제는 깃허브로 공유된 예제로 직접 실습해볼 수 있고, 인텔리J 설치 후 예제 폴더를 불러오기만 하면 모든 것이 내부적으로 자동화되고 빌드 과정까지 완료되어 편하게 실행해볼 수 있었습니다.
이승표_게임 서버 프로그래머

예제가 풍부하고, 모든 설명이 명확한 예제에 기반합니다. 때로는 은유적인 글보다 간단한 예제가 더 명확하게 다가올 때가 있는데, 책의 중반부터는 저자가 직접 만든 유사 테스트 코드를 기반으로 예제가 제공됩니다.
고주형_중앙대학교

예제 코드를 하나하나 따라 하면서 내용을 더 잘 익힐 수 있었습니다. 예제 코드를 책의 설명에 맞게 변형하기도 하고 같은 내용을 자바로도 작성해보면서 책에서 설명하는 코틀린의 장점을 더욱 잘 느낄 수 있었습니다.
김준하_NHN Dooray!
[교보문고에서 제공한 정보입니다.]

목차정보

1부 프로그래밍 기초
__01 소개
____이 책의 콘셉트
__02 왜 코틀린인가?
____컴파일러와 인터프리터
____코틀린에 영향을 미친 언어
____왜 코틀린인가? (2011년 출시되고 2016년 버전 1.0이 나온 언어)
____코틀린의 두 가지 특징
__03 Hello, World!
__04 var와 val
__05 데이터 타입
__06 함수
__07 if 식
__08 문자열 템플릿
__09 수 타입
__10 불리언
__11 while로 반복하기
__12 루프와 범위
__13 in 키워드
__14 식과 문
__15 1부 요약

2부 객체 소개
__16 객체는 모든 곳에 존재한다
__17 클래스 만들기
__18 프로퍼티
__19 생성자
__20 가시성 제한하기
____모듈
__21 패키지
__22 테스트
____프로그램의 일부분인 테스트
__23 예외
__24 리스트
____파라미터화한 타입
____읽기 전용과 가변 List
____+=의 비밀
__25 가변 인자 목록
____명령줄 인자
__26 집합
__27 맵
__28 프로퍼티 접근자
__29 2부 요약

3부 사용성
__30 확장 함수
__31 이름 붙은 인자와 디폴트 인자
__32 오버로딩
__33 when 식
__34 이넘
__35 데이터 클래스
____HashMap과 HashSet
__36 구조 분해 선언
__37 널이 될 수 있는 타입
__38 안전한 호출과 엘비스 연산자
__39 널 아님 단언
__40 확장 함수와 널이 될 수 있는 타입
__41 제네릭스 소개
____제네릭 함수
__42 확장 프로퍼티
__43 break와 continue
____레이블

4부 함수형 프로그래밍
__44 람다
__45 람다의 중요성
__46 컬렉션에 대한 연산
__47 멤버 참조
____함수 참조
____생성자 참조
____확장 함수 참조
__48 고차 함수
__49 리스트 조작하기
____묶기
____평평하게 하기
__50 맵 만들기
____맵에 연산 적용하기
__51 시퀀스
__52 지역 함수
____레이블
____지역 함수 조작하기
__53 리스트 접기
__54 재귀

5부 객체 지향 프로그래밍
__55 인터페이스
____SAM 변환
__56 복잡한 생성자
__57 부생성자
__58 상속
__59 기반 클래스 초기화
__60 추상 클래스
__61 업캐스트
__62 다형성
__63 합성
____합성과 상속 중 선택하기
__64 상속과 확장
____관습에 의한 인터페이스
____어댑터 패턴
____멤버 함수와 확장 함수 비교
__65 클래스 위임
__66 다운캐스트
____스마트 캐스트
____변경 가능한 참조
____as 키워드
____리스트 원소의 타입 알아내기
__67 봉인된 클래스
____sealed와 abstract 비교
____하위 클래스 열거하기
__68 타입 검사
____외부 함수에서 타입 검사하기
__69 내포된 클래스
____지역 클래스
____인터페이스에 포함된 클래스
____내포된 이넘
__70 객체
__71 내부 클래스
____한정된 this
____내부 클래스 상속
____지역 내부 클래스와 익명 내부 클래스
__72 동반 객체

6부 실패 방지하기
__73 예외 처리
____오류 보고
____복구
____예외 하위 타입
____자원 해제
____AtomicTest의 예외 처리
____가이드라인
__74 검사 명령
____require()
____requireNotNull()
____check()
____assert()
__75 Nothing 타입
__76 자원 해제
__77 로깅
__78 단위 테스트
____테스트 프레임워크
____모킹과 통합 테스트
____인텔리J IDEA에서 테스트하기

7부 파워 툴
__79 확장 람다
____확장 람다를 사용해 빌더 작성하기
__80 영역 함수
____영역 함수는 인라인된다
__81 제네릭스 만들기
____Any
____제네릭스 정의하기
____타입 정보 보존하기
____타입 파라미터 제약
____타입 소거
____함수의 타입 인자에 대한 실체화
____타입 변성
__82 연산자 오버로딩
____동등성
____산술 연산자
____비교 연산자
____범위와 컨테이너
____컨테이너 원소 접근
____호출 연산자
____역작은따옴표로 감싼 함수 이름
__83 연산자 사용하기
____구조 분해 연산자
__84 프로퍼티 위임
__85 프로퍼티 위임 도구
__86 지연 계산 초기화
__87 늦은 초기화

부록
__A 아토믹 테스트
__B 자바 상호 운용성
____코틀린에서 자바 호출하기
____자바에서 코틀린 호출하기
____자바를 코틀린에 도입하기
____자바의 검사 예외와 코틀린
____널이 될 수 있는 타입과 자바
____널 가능성 애너테이션
____컬렉션과 자바
____자바 원시 타입
__C 인텔리J에서 코틀린 코드를 실행하는 법
____인텔리J IDEA 설치하기
____깃허브에서 예제 내려받기
____인텔리J에서 예제 실행하기
__D 인텔리J에서 이 책의 연습 문제를 푸는 법
____EduTools 플러그인 설치하기
____학습 코스 선택하기
____예제와 연습 문제 실행하기

찾아보기
[교보문고에서 제공한 정보입니다.]