이미 소장하고 있다면 판매해 보세요.
01장. 코틀린 시작하기
__기술적 요구 사항 __코틀린 소개 __코틀린의 데이터 유형 ____코틀린에서 변수 선언 ______var 키워드 ______val 키워드 ______유형 추론 ______유형 어노테이션 ______숫자 데이터 유형 ______실수 데이터 유형 ______불리언 데이터 유형 ______문자 데이터 유형 ______is 키워드를 사용한 유형 검사 ______문자열 변수 __널 안전성, 형 변환, 페어, 트리플 ____널 안전성 ______안전한 호출 연산자 ______안전한 호출 연산자 ?. ______엘비스 연산자 ?: ______널 아님 단정 연산자 !! ____형 변환 ______바이트에서 단정도 실수로의 변환 ______배정도 실수에서 정수로 변환 ______문자열에서 정수로 변환 ______스마트 형 변환(Smart cast) ______안전하지 않은 형 변환 ____페어와 트리플 ______선언 방법 ______값을 가져오는 방법 __흐름 제어 ____if문 ____if else문 ____조건부 연산자가 있는 if문 ______논리합 연산자(and, &&)가 있는 if문 ______논리합 연산자(or, ||)가 있는 if문 ______논리부정 연산자(not, !)가 있는 if문 ______if 표현식 ______when 표현식 ________여러 조건의 결합 ________when 표현식에서 범위 사용 ________표현식으로 when 사용 __반복문 소개 ____while문 ____while문 정의 ____do while문 ____for문 ______for문 정의 ______중첩된 for문 ______break문 ______레이블을 가진 for문과 break문 __함수란? ____함수 선언 ____매개변수와 반환 형식이 없는 함수 ____매개변수가 있는 함수 ____매개변수와 반환 유형이 있는 함수 ____표현식 함수 ____기본값이 있는 함수 ____명명된 매개변수를 가진 함수 ____함수와 vararg ____다른 인자와 함께 쓰는 vararg ____패키지 수준의 함수 ______함수를 액세스하는 방법 __요약 __질문 __참고 도서 목록 02장. 객체지향 프로그래밍 소개 __기술적 요구 사항 __객체지향 프로그래밍이란? ____클래스와 객체 ____속성과 행위 __객체지향 프로그래밍의 이점 __코틀린의 클래스 __속성: 일급 객체 __생성자를 사용해 클래스 만들기 ____기본 생성자 ____주 생성자 ____init 블록을 가진 주 생성자 ______this 키워드 ____부 생성자 ______생성자 오버로딩 ______기본 매개변수를 가진 생성자 ______명명된 매개변수를 가진 생성자 __데이터 클래스란? ____toString() 함수 ____equals() 함수 == ____copy() 함수 ____hashCode() 함수 ______객체 분해 __클래스와 함수 ____함수 오버로딩 __요약 __질문 __참고 도서 목록 03장. 객체지향 프로그래밍의 4가지 요소 __기술적 요구 사항 __캡슐화 ____정보 은닉 ____접근 제한자 ______private 제한자 ______protected 제한자 ____구현 숨기기 __상속이란? ____open 키워드 ____super 키워드 ____클래스 초기화 계층 구조 __추상화 ____추상 클래스 ____추상 함수 __인터페이스 ____다중 인터페이스 ______인터페이스 간 충돌 해결 ______인터페이스와 다형성 __오버라이딩 ____오버라이딩이란? ____super 키워드 ____final 키워드 ______함수 오버라이딩 규칙 ____프로퍼티 오버라이딩 __상속의 종류 ____단일 상속 ____다중 상속 ____계층 상속 ____계층 다중 상속 ____is-a 관계 __다형성 ____다형성의 작동 원리 ______동적 바인딩 __요약 __질문 __참고 도서 목록 04장. 클래스: 고급 개념 __기술적 요구 사항 __봉인된 클래스와 열거형 클래스 ____봉인된 클래스 ______when절과 봉인된 클래스 ______봉인된 클래스가 필요한 이유 ____열거형 클래스 ______생성자를 가진 열거형 클래스 ______열거형 클래스와 함수 ______열거형 클래스와 인터페이스 __객체와 컴패니언 객체 ____상속과 인터페이스가 함께 있는 객체 클래스 ____컴패니언 객체 ______컴패니언 함수와 인터페이스 __집합, 구성, 중첩 클래스 ____집합 ____구성 ____중첩 클래스 ______내부 클래스 __클래스 프로퍼티 __위임 프로퍼티 __기본 제공 위임자 __요약 __질문 __참고 도서 목록 05장. 데이터 컬렉션, 반복자, 필터 __기술적 요구 사항 __범위 ____범위 유형 ____범위 선언 ______rangeTo 함수 ______until 함수 ______downTo 함수 ______step 함수 ______contains 함수 ______elementAt 함수 ______범위 프로퍼티 ______coerce 함수 ________coerceIn 함수 ________coerceAtMost(maxValue) 함수 ________coerceAtLeast(minValue) 함수 __배열 ____배열 정의 ____특정 유형의 배열 ______배열 요소의 색인 ____get 함수 ____배열과 for문 ____배열 선언과 초기화 ______set 함수 ______불변 요소를 갖는 가변 배열 ______배열의 람다 표현식 ______서로 다른 유형의 요소를 가진 배열 ______arrayOfNulls 함수 ____배열 복사 __코틀린의 목록 ____불변 목록 ______listOfNotNull 함수 ______목록에 접근 ____불변 목록과 인터페이스 ______반복 가능 인터페이스 ______컬렉션 인터페이스 ______목록 인터페이스 ____가변 목록 ______MutableInterable 인터페이스 ______가변 컬렉션 인터페이스 ______가변 목록 인터페이스 ____코틀린에서 세트 ______불변 세트 ______가변 세트 ____맵 ______불변 맵 ______가변 맵 ____코틀린에서 반복자 ______반복자 ______list 반복자 ______가변 반복자 ______가변 목록 반복자 __필터와 컬렉션 함수 ____filter 함수 ______it 키워드 ____filterNot 함수 ____filterNotNull 함수 ____filterIsInstance〈dataType〉 함수 ____slice 함수 ____take 함수 ______takeLast ______takeWhile ______takeLastWhile ____drop 함수 ______dropLast ______dropWhile ______dropWhileLast ____fold 함수 ____foldRight ____reduce 함수 ______reduceRight ______reduceRightIndexed ____몇 가지 중요한 함수 ______forEach ______forEachIndexed ______onEach ______max와 maxBy ______min과 minBy __요약 __질문 __참고 도서 목록 06장. 코틀린을 사용한 객체지향 패턴 __기술적 요구 사항 __설계 패턴은 무엇이며 어떻게 도움을 주는가? __설계 패턴의 유형 ____생성 패턴 ____구조 패턴 ____행동 패턴 __생성 패턴 ____생성자 ____팩토리 메서드 ____추상 팩토리 ____싱글톤 __구조 패턴 ____어댑터 ____데코레이터 ____퍼사드 ____프록시 __행동 패턴 ____관찰자 ____전략 ____명령 ____상태 ____책임 연쇄 ____방문자 __요약 07장. 코루틴: 경량 스레드? __기술적 요구 사항 __코루틴이란? __코루틴과 스레드 __코루틴 예제 코드 ____예외 처리 ____자원 해제 ____취소 불가능 블록 ____병렬 실행 ____지연 실행 ____채널 __요약 08장. 상호운용성 __기술적 요구 사항 __코틀린에서 자바 코드 호출 ____정적 변수와 함수 호출 ____코틀린에서 자바 컬렉션 호출 ____코틀린의 예약어 ____코틀린에서 자바 클래스 __자바에서 코틀린 코드 호출 ____코틀린 함수 호출 ______확장 함수 ______가변 컬렉션이 있는 함수 ______불변 컬렉션이 있는 함수 ______JVM 어노테이션이 있는 함수 ____코틀린 클래스 호출 ____코틀린 싱글톤 클래스 호출 __요약 __질문 __참고 도서 목록 09장. 코틀린의 정규식과 직렬화 __기술적 요구 사항 __정규식 소개 __코틀린과 정규식 __직렬화 소개 __직렬화와 코틀린 지원 __요약 10장. 예외 처리 __기술적 요구 사항 __예외 처리란? __확인된 예외와 확인되지 않은 예외 ____예외 계층 구조 ____자바에서의 예외 ____코틀린에서의 예외 ____상호운용성 __try 블록을 표현식으로 사용 __사용자 정의 예외 작성 __요약 __질문 __참고 도서 목록 11장. 코틀린을 사용한 객체지향 프로그래밍 테스트 __기술적 요구 사항 __테스트의 필요성 __테스트 유형 ____수동 테스트 ____자동 테스트 ______단위 테스트 __코틀린 테스트 라이브러리 ____설치 ______그루비 스크립트를 사용하는 그레들 ______코틀린 스크립트를 사용하는 그레들 ______메이븐 __테스팅 예제 코드 ____클래스 참조 ____사양 작성 ______given, on과 it 블록 ______예외 테스트 ______describe과 it 블록 __요약 __질문 __참고 도서 목록 |
저아비드 칸
관심작가 알림신청Abid Khan
저이고르 쿠체렌코
관심작가 알림신청Igor Kucherenko
역황주필
관심작가 알림신청황주필의 다른 상품
이 책에서 다루는 내용
- 코틀린 프로그래밍 언어 개요 - 코틀린의 객체 지향 프로그래밍 기술 - 객체 지향 디자인 패턴 - 코틀린 방식으로 멀티스레딩(코루틴) - 배열과 컬렉션 - 객체 지향 디자인 패턴의 중요성 - 코틀린 객체 지향 프로그래밍에서 예외 처리와 테스트 이해 이 책의 대상 독자 코틀린이 어떻게 작동하는지를 더 깊이 이해하고 싶은 개발자를 대상으로 한다. 특정 플랫폼이나 프레임워크에 의존하지 않고 자바 가상머신에 초점을 맞추고 있으며, 자바스크립트에 대한 코틀린 및 코틀린의 네이티브 기능은 다루지 않는다. 사용자 인터페이스 및 다중 스레드 환경과 관련된 예제를 포함하고 있기 때문에 클라이언트 개발자에게 좋은 선택이 될 것이다. 이 책의 구성 1장, ‘코틀린 시작하기’에서는 코틀린 프로그래밍 언어의 간략한 개요를 제공한다. 또한 데이터 유형과 null 안전 및 형 변환의 작동 방식을 알아본다. 연산자(operator) 및 흐름 제어도 소개한다. 반복문과 함수도 살펴본다. 2장, ‘객체지향 프로그래밍 소개’에서는 객체지향 프로그래밍이 무엇인지, 왜 절차적 프로그래밍과 다르고 더 나은지 살펴본다. 코틀린의 클래스와 데이터 클래스를 설명하고 코틀린이 어떻게 그것들을 독특하게 만드는지 알아본다. 또한 생성자, 생성자의 유형 및 속성 그리고 제일 중요한 속성이 무엇을 의미하는지 자세히 알아본다. 3장, ‘객체지향 프로그래밍의 4가지 요소’에서는 객체지향 프로그래밍의 4가지 요소를 자세히 알아본다. 또한 캡슐화가 무엇인지, 상속이 어떻게 작동하는지 알아본다. 다형성을 선택하는 이유와 추상화의 장점도 알아본다. 마지막으로 부모 클래스를 선언하는 방법과 자식 클래스에서 자원을 활용하는 방법을 살펴본다. 4장, ‘클래스: 고급 개념’에서는 코틀린이 독점적으로 제공하는 프로그래밍의 핵심 개념을 알아본다. 봉인된 클래스, 객체, 컴패니언 객체의 개념과 기존 클래스와 다른 이유를 알아본다. 또한 클래스의 속성과 위임을 알아본다. 5장, ‘데이터 컬렉션, 반복자, 필터’에서는 코틀린에서 제공하는 다양한 데이터 구조를 사용해 데이터 컬렉션을 처리하는 방법을 살펴본다. 또한 배열을 정의하고 사용하는 방법과 목록, 세트, 컬렉션, 맵과 같은 객체 컬렉션을 효율적으로 관리하고자 다양한 템플릿을 활용하는 방법을 알아본다. 6장, 코틀린을 사용한 객체지향 패턴은 설계 패턴이라고 하는 객체지향 프로그래밍의 고급 개념을 다룬다. 설계 패턴은 소프트웨어 설계에서 알려진 문제에 대한 일반적인 해결책이다. 설계 패턴은 개발 프로세스를 가속화하고 이후 단계에서 발생할 수 있는 설계 에러의 위험을 줄일 수 있다. 다른 문제에는 다른 설계 패턴이 사용된다. 소프트웨어 설계 과제와 설계 패턴을 살펴본다. 7장, ‘코루틴: 경량 스레드?’에서는 코틀린이 코루틴이라는 새로운 라이브러리를 어떻게 도입했는지 알아본다. 코루틴은 수천 개의 요청이 진행 중이더라도 CPU를 한계까지 밀어내지 않는 경량 스레드로 간주할 수 있다. 코루틴이 무엇인지 설명하고 자바에서 기존 스레드보다 우수한 이유를 알아본다. 8장, ‘상호운용성’에서는 코틀린이 자바 상호운용성을 염두에 두고 설계된 자바의 슈퍼세트라는 사실을 살펴본다. 상호운용성은 코틀린에서 자바 함수를 호출할 수 있고 그 반대의 경우도 가능하며 자바 및 코틀린 파일을 동일한 애플리케이션에서 사용할 수 있음을 의미한다. 상호운용성에 대한 기술과 플랫폼 간 코드 작성 방법을 자세히 알아본다. 가장 중요한 것은 자바에서 나타날 수 있는 널(null) 입력 가능 호출을 처리하는 방법을 알아본다. 9장, ‘코틀린의 정규식’과 직렬화에서는 regex라고도 알려진 정규식이 많은 양의 텍스트에서 필요한 정보를 찾는 데 도움을 주는 다른 문자의 조합을 살펴본다. 이 기술은 사용자가 문자열(패턴)을 제공하고 정확하게 일치하거나 유사한 목록을 얻는다. 모든 고급 텍스트 편집기는 정규식을 사용해 코드에서 변수를 찾는다. 그리고 코틀린이 정규식에 대한 완벽한 지원과 버그 없는 패턴 작성을 지원하는 방법을 알아보고, 직렬화와 JSON 같은 텍스트 형식을 코틀린에서 어떻게 동작하는지도 알아본다. 10장, ‘예외 처리’에서는 예외 및 예외 처리를 자세히 알아본다. 또한 다양한 키워드가 시도하고 캐치(catch)하고 던지고(throw) 마침내 던지는 등 다양한 예외 유형과 사용자가 사용자 정의 예외를 작성하고 처리하는 방법을 알아본다. 또한 테스트 환경을 준비해 몇 가지 테스트를 작성할 수 있는 방법을 살펴본다. 11장, ‘코틀린을 사용한 객체지향 프로그래밍 테스트’에서는 테스트의 중요성, 테스트가 필요한 이유 및 코드를 테스트하지 않고 공개했을 때의 영향에 대한 통찰력을 제공한다. 또한 테스트 기술, 테스트용 전용 코틀린 라이브러리 및 코틀린이 깨끗하고 읽기 쉬운 테스트 사례를 작성하는 방법을 알아본다. 지은이의 말 코틀린은 자바 코드와 상호운용하도록 설계된 정적 타입의 프로그래밍 언어다. kotlinc 컴파일러는 javac와 동일한 바이트코드를 생성하기 때문에 새로운 코드 기반으로 이동하는 데 많은 노력이 필요 없다. 코틀린은 간결하고 안전한 코드를 작성할 수 있으며, 다양한 패러다임의 많은 기능을 포함하는 현대 언어다. 이러한 모든 점에 비춰볼 때 코틀린은 인기가 증가하고 그것을 사용하는 개발자의 수 역시 증가하고 있다. 옮긴이의 말 많은 기업과 개발자가 엔터프라이즈 애플리케이션을 만들 때 필수적으로 사용해오던 자바에서 부족했던 언어적인 한계를 해결하고자 코틀린을 적용해 더 손쉽게 엔터프라이즈 애플리케이션 프로젝트를 수행하는 경우가 많아지고 있다. 코틀린은 구글에 의해 안드로이드 앱을 만들기 위한 개발 언어로 공식 지정된 이후 모바일 앱뿐만 아니라 서버 사이드에서도 적용하는 사례가 점차 증가하고 있다. 이 책에서는 개발 언어로서 제공하는 코틀린의 기본 기능뿐만 아니라 다양한 부가 기능을 소개해 처음 접하는 사람뿐만 아니라 이미 알고 있는 개발자라 하더라도 코틀린을 이용해서 객체지향 프로그래밍을 하기 위한 다양한 패턴과 주의할 것들을 소개한다. 처음 이 책을 번역하고 상당히 오랜 기간이 지난 시점에서 책으로 출판이 돼 코틀린 자체에도 많은 변화가 있었으나 코틀린의 기본 개념의 변화는 없었기 때문에 객체지향에 관심이 있는 개발자는 한번 보는 것이 좋겠다. |