1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

코틀린 객체지향 프로그래밍 - OOP를 위한 다양한 디자인 패턴(에이콘 프로그래밍 언어 시리즈)
저자 : 아비드칸,이고르쿠체렌코 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 황주필

2023.04.28 ㅣ 476p ㅣ ISBN-13 : 9791161757506

정가35,000
판매가33,250(5% 할인)
적립금 1,400원 (4%)
배송일정 05월 14일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 B5(257mm X 188mm, 사륙배판)
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 컴퓨터언어 > 기타언어/언어일반/...
자바의 대안으로 많은 개발자가 코틀린을 선택하고 있다. 이 책은 코틀린의 클래스, 데이터 클래스, 상속과 같은 기능에 대한 포괄적인 내용을 다룬다. 또한 디자인 패턴의 이해와 코틀린 구문이 객체 지향 기술과 함께 작동하는 방식도 잘 설명한다. 레이블이 지정된 for loop와 when을 표현식으로 작성하고 봉인된 클래스, 패키지 수준 함수, 코루틴과 같은 고급 개념을 소개하며, 이러한 개념으로 소프트웨어를 만드는 방법을 배울 것이다.
펼쳐보기

[목 차]

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 함수
____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 블록
__요약
__질문
__참고 도서 목록
펼쳐보기
◈ 이 책에서 다루는 내용 ◈
◆ 코틀린 프로그래밍 언어 개요
◆ 코틀린의 객체 지향 프로그래밍 기술
◆ 객체 지향 디자인 패턴
◆ 코틀린 방식으로 멀티스레딩(코루틴)
◆ 배열과 컬렉션
◆ 객체 지향 디자인 패턴의 중요성
◆ 코틀린 객체 지향 프로그래밍에서 예외 처리와 테스트 이해

◈ 이 책의 대상 독자 ◈
코틀린이 어떻게 작동하는지를 더 깊이 이해하고 싶은 개발자를 대상으로 한다. 특정 플랫폼이나 프레임워크에 의존하지 않고 자바 가상머신에 초점을 맞추고 있으며, 자바스크립트에 대한 코틀린 및 코틀린의 네이티브 기능은 다루지 않는다. 사용자 인터페이스 및 다중 스레드 환경과 관련된 예제를 포함하고 있기 때문에 클라이언트 개발자에게 좋은 선택이 될 것이다.

◈ 이 책의 구성 ◈
1장, ‘코틀린 시작하기’에서는 코틀린 프로그래밍 언어의 간략한 개요를 제공한다. 또한 데이터 유형과 null 안전 및 형 변환의 작동 방식을 알아본다. 연산자(operator) 및 흐름 제어도 소개한다. 반복문과 함수도 살펴본다.

2장, ‘객체지향 프로그래밍 소개’에서는 객체지향 프로그래밍이 무엇인지, 왜 절차적 프로그래밍과 다르고 더 나은지 살펴본다. 코틀린의 클래스와 데이터 클래스를 설명하고 코틀린이 어떻게 그것들을 독특하게 만드는지 알아본다. 또한 생성자, 생성자의 유형 및 속성 그리고 제일 중요한 속성이 무엇을 의미하는지 자세히 알아본다.

3장, ‘객체지향 프로그래밍의 4가지 요소’에서는 객체지향 프로그래밍의 4가지 요소를 자세히 알아본다. 또한 캡슐화가 무엇인지, 상속이 어떻게 작동하는지 알아본다. 다형성을 선택하는 이유와 추상화의 장점도 알아본다. 마지막으로 부모 클래스를 선언하는 방법과 자식 클래스에서 자원을 활용하는 방법을 살펴본다.

4장, ‘클래스: 고급 개념’에서는 코틀린이 독점적으로 제공하는 프로그래밍의 핵심 개념을 알아본다. 봉인된 클래스, 객체, 컴패니언 객체의 개념과 기존 클래스와 다른 이유를 알아본다. 또한 클래스의 속성과 위임을 알아본다.

5장, ‘데이터 컬렉션, 반복자, 필터’에서는 코틀린에서 제공하는 다양한 데이터 구조를 사용해 데이터 컬렉션을 처리하는 방법을 살펴본다. 또한 배열을 정의하고 사용하는 방법과 목록, 세트, 컬렉션, 맵과 같은 객체 컬렉션을 효율적으로 관리하고자 다양한 템플릿을 활용하는 방법을 알아본다.

6장, 코틀린을 사용한 객체지향 패턴은 설계 패턴이라고 하는 객체지향 프로그래밍의 고급 개념을 다룬다. 설계 패턴은 소프트웨어 설계에서 알려진 문제에 대한 일반적인 해결책이다. 설계 패턴은 개발 프로세스를 가속화하고 이후 단계에서 발생할 수 있는 설계 에러의 위험을 줄일 수 있다. 다른 문제에는 다른 설계 패턴이 사용된다. 소프트웨어 설계 과제와 설계 패턴을 살펴본다.

7장, ‘코루틴: 경량 스레드?’에서는 코틀린이 코루틴이라는 새로운 라이브러리를 어떻게 도입했는지 알아본다. 코루틴은 수천 개의 요청이 진행 중이더라도 CPU를 한계까지 밀어내지 않는 경량 스레드로 간주할 수 있다. 코루틴이 무엇인지 설명하고 자바에서 기존 스레드보다 우수한 이유를 알아본다.

8장, ‘상호운용성’에서는 코틀린이 자바 상호운용성을 염두에 두고 설계된 자바의 슈퍼세트라는 사실을 살펴본다. 상호운용성은 코틀린에서 자바 함수를 호출할 수 있고 그 반대의 경우도 가능하며 자바 및 코틀린 파일을 동일한 애플리케이션에서 사용할 수 있음을 의미한다. 상호운용성에 대한 기술과 플랫폼 간 코드 작성 방법을 자세히 알아본다. 가장 중요한 것은 자바에서 나타날 수 있는 널(null) 입력 가능 호출을 처리하는 방법을 알아본다.

9장, ‘코틀린의 정규식’과 직렬화에서는 regex라고도 알려진 정규식이 많은 양의 텍스트에서 필요한 정보를 찾는 데 도움을 주는 다른 문자의 조합을 살펴본다. 이 기술은 사용자가 문자열(패턴)을 제공하고 정확하게 일치하거나 유사한 목록을 얻는다. 모든 고급 텍스트 편집기는 정규식을 사용해 코드에서 변수를 찾는다. 그리고 코틀린이 정규식에 대한 완벽한 지원과 버그 없는 패턴 작성을 지원하는 방법을 알아보고, 직렬화와 JSON 같은 텍스트 형식을 코틀린에서 어떻게 동작하는지도 알아본다.

10장, ‘예외 처리’에서는 예외 및 예외 처리를 자세히 알아본다. 또한 다양한 키워드가 시도하고 캐치(catch)하고 던지고(throw) 마침내 던지는 등 다양한 예외 유형과 사용자가 사용자 정의 예외를 작성하고 처리하는 방법을 알아본다. 또한 테스트 환경을 준비해 몇 가지 테스트를 작성할 수 있는 방법을 살펴본다.

11장, ‘코틀린을 사용한 객체지향 프로그래밍 테스트’에서는 테스트의 중요성, 테스트가 필요한 이유 및 코드를 테스트하지 않고 공개했을 때의 영향에 대한 통찰력을 제공한다. 또한 테스트 기술, 테스트용 전용 코틀린 라이브러리 및 코틀린이 깨끗하고 읽기 쉬운 테스트 사례를 작성하는 방법을 알아본다.

지은이의 말
코틀린은 자바 코드와 상호운용하도록 설계된 정적 타입의 프로그래밍 언어다. kotlinc 컴파일러는 javac와 동일한 바이트코드를 생성하기 때문에 새로운 코드 기반으로 이동하는 데 많은 노력이 필요 없다. 코틀린은 간결하고 안전한 코드를 작성할 수 있으며, 다양한 패러다임의 많은 기능을 포함하는 현대 언어다. 이러한 모든 점에 비춰볼 때 코틀린은 인기가 증가하고 그것을 사용하는 개발자의 수 역시 증가하고 있다.

옮긴이의 말
많은 기업과 개발자가 엔터프라이즈 애플리케이션을 만들 때 필수적으로 사용해오던 자바에서 부족했던 언어적인 한계를 해결하고자 코틀린을 적용해 더 손쉽게 엔터프라이즈 애플리케이션 프로젝트를 수행하는 경우가 많아지고 있다. 코틀린은 구글에 의해 안드로이드 앱을 만들기 위한 개발 언어로 공식 지정된 이후 모바일 앱뿐만 아니라 서버 사이드에서도 적용하는 사례가 점차 증가하고 있다. 이 책에서는 개발 언어로서 제공하는 코틀린의 기본 기능뿐만 아니라 다양한 부가 기능을 소개해 처음 접하는 사람뿐만 아니라 이미 알고 있는 개발자라 하더라도 코틀린을 이용해서 객체지향 프로그래밍을 하기 위한 다양한 패턴과 주의할 것들을 소개한다. 처음 이 책을 번역하고 상당히 오랜 기간이 지난 시점에서 책으로 출판이 돼 코틀린 자체에도 많은 변화가 있었으나 코틀린의 기본 개념의 변화는 없었기 때문에 객체지향에 관심이 있는 개발자는 한번 보는 것이 좋겠다.
펼쳐보기
아비드 칸(Abid Khan)
10년 이상의 경험을 가진 애플리케이션 개발자이자 테스트 엔지니어다. C/C++ 및 자바를 비롯한 다양한 프로그래밍 언어 분야에서 활동했으며, 현재 안드로이드 개발을 위한 기본 언어로 코틀린을 사용하고 있다. 스웨덴 스톡홀름에 산다. 새로운 기술을 배우고 나서 그에 대한 글을 쓰는 데 시간을 보낸다.

이고르 쿠체렌코(Igor Kucherenko)
안드로이드 개발의 핵심 언어인 코틀린을 사용하는 소프트웨어 개발 회사인 Techery의 안드로이드 개발자다. 현재 Kotlin Dnipro Community의 연사로 우크라이나에서 지내며 코틀린을 홍보하고 밋업에서 관객들과 지식을 공유한다. 코틀린과 안드로이드 개발에 관한 기사는 Medium 또는 전에 그가 근무했던 Yalantis에서 블로그를 찾을 수 있다.

옮긴이 황주필
IT 기업에서 개발자로 시작해 BEA Systems, Oracle, Pivotal, VMware 등에서 소프트웨어 아키텍트, 엔지니어로 일했다. 수많은 기업에서 기업용 소프트웨어 지원과 비즈니스 적용을 도왔다. 컨테이너(Container)에 관심이 많아 쿠버네티스(Kubernetes) 생태계에 참여하고 있으며 클라우드 네이티브 애플리케이션(Cloud Native Application)의 개발과 운영을 도왔으며, 이벤트 기반 아키텍처(Event Driven Architecture)를 기업에 도입하는 데 도움을 주고 있다. 현재 Confluent에서 솔루션 엔지니어로 일하며 수많은 고객이 EDA 기반의 애플리케이션이나 실시간 데이터 파이프라인을 성공적으로 구축할 수 있도록 돕고 있다. 주요 번역서로는 에이콘출판사에서 펴낸 『쿠버네티스 인 액션』(2020), 『쿠버네티스로 만나는 손안의 마이크로서비스』(2020), 『코틀린 마이크로서비스 개발』(2019)이 있다.
펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자
교환/반품 방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
교환/반품 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
교환/반품 비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
교환/반품 불가사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기