코틀린 디자인 패턴 2/e
2024년 11월 25일 출간
- eBook 상품 정보
- 파일 정보 pdf (7.02MB)
- ISBN 9791161759166
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
쿠폰적용가 25,200원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
1장. 코틀린 시작하기
기술적 요구 사항
기초 문법과 기능
다중 패러다임 언어
코틀린 코드 구조 이해하기
명명 관례
패키지
주석
Hello Kotlin
타입 이해하기
기본 타입
타입 추론
값
비교와 동등성
함수 선언
null 안전성
코틀린 자료 구조 복습
리스트
세트
맵
가변성
집합 자료 구조의 다른 구현체
배열
제어 흐름
if 조건식
when 조건식
텍스트 다루기
문자열 보간
여러 줄 문자열
반복문
for-in 반복문
for 반복문
while 반복문
클래스와 상속
클래스
인터페이스
추상 클래스
접근 제한자
상속
데이터 클래스
확장 함수
디자인 패턴 소개
디자인 패턴이란?
코틀린에서 디자인 패턴을 사용하는 이유
요약
질문
2장. 생성 패턴 사용하기
기술적 요구 사항
싱글톤 패턴
팩토리 메서드 패턴
정적 팩토리 메서드
추상 팩토리 패턴
캐스팅
하위 클래스 생성
스마트 캐스팅
변수 가리기
팩토리 메서드의 모음
빌더 패턴
유창한 설정자
기본 인수
프로토타입 패턴
프로토타입에서 시작하기
요약
질문
3장. 구조 패턴 이해하기
기술적 요구 사항
데코레이터 패턴
클래스에 기능 추가하기
엘비스 연산자
상속의 문제점
연산자 오버로딩
데코레이터 패턴 사용 시 주의할 점
어댑터 패턴
기존 코드에 어댑터 패턴 적용
실제 코드에서 사용되는 어댑터 패턴
어댑터 패턴 사용 시 주의할 점
브리지 패턴
변경 사항에 다리 놓기
타입 별칭
상수
합성 패턴
부 생성자
varargs 키워드
합성 객체로 이뤄진 합성 객체 중첩하기
퍼사드 패턴
경량 패턴
보수적으로 접근하기
메모리 절약하기
경량 패턴 사용 시 주의 사항
프록시 패턴
lazy 위임 함수
요약
질문
4장. 동작 패턴과 친해지기
기술적 요구 사항
전략 패턴
과일 무기 구현하기
일급 객체로서의 함수
반복자 패턴
상태 패턴
상태 패턴의 50가지 그림자
큰 규모의 상태 패턴
명령 패턴
명령 실행 취소
책임 사슬 패턴
해석기 패턴
도메인 특화 언어
나만의 언어 만들기
접미 호출
중개인 패턴
중개인
중개인 패턴의 두 가지 유형
중개인 패턴 사용 시 주의 사항
기억 패턴
방문자 패턴
크롤러 작성하기
템플릿 메서드 패턴
관찰자 패턴
예제: 동물 합창단
요약
질문
2부 ― 반응형 패턴과 동시성 패턴
5장. 함수형 프로그래밍 소개
기술적 요구 사항
함수형 프로그래밍을 사용하는 이유
불변성
불변 자료 구조
공유된 가변 상태의 문제점
튜플
값으로서의 함수
고차 함수
표준 라이브러리에서 고차 함수 사용하기
it 표기법
클로저
순수 함수
커리
메모이제이션
문 대신 식 사용하기
패턴 매칭
재귀 호출
요약
질문
6장. 스레드와 코루틴
기술적 요구 사항
스레드 심화
스레드 안전성
왜 스레드는 값비싼가?
코루틴 소개
코루틴 시작하기
작업
코루틴의 내부 동작 이해하기
타임아웃 설정하기
분배기
구조화된 동시성
요약
질문
7장. 데이터 흐름 제어
기술적 요구 사항
반응형 프로그래밍의 원칙
응답성 원칙
회복성 원칙
유연성 원칙
메시지 주도 원칙
집합 자료 구조를 위한 고차 함수
원소 매핑
원소 필터링
원소 검색
각 원소에 대해 코드 실행
원소의 총합
중첩 제거
동시성 자료 구조 소개
순서열
채널
흐름
요약
질문
8장. 동시성을 위한 설계
기술적 요구 사항
값 지연 패턴
장벽 패턴
데이터 클래스를 장벽으로 사용하기
스케줄러 패턴
스케줄러 직접 만들기
파이프라인 패턴
파이프라인 연결하기
팬아웃 패턴
팬인 패턴
경주 패턴
비편향 select
뮤텍스 패턴
사이드킥 채널 패턴
요약
질문
3부 ― 디자인 패턴 활용의 실제
9장. 관용구와 안티 패턴
기술적 요구 사항
시야 지정 함수 사용하기
let 함수
apply 함수
also 함수
run 함수
with 함수
타입 검사와 캐스팅
try-with-resources 문의 대안
인라인 함수
대수적 자료형 구현하기
제네릭에서 타입 실체화
상수 효율적으로 사용하기
생성자 오버로딩
null 다루기
동시성을 명시적으로 나타내기
입력 유효성 검사하기
열거형 대신 봉인 클래스 사용하기
요약
질문
10장. Ktor를 이용한 동시성 마이크로서비스
기술적 요구 사항
Ktor 시작하기
요청 라우팅
서비스 테스트하기
애플리케이션 모듈화
데이터베이스 연결하기
엔티티 생성하기
일관성 있는 테스트 만들기
엔티티 조회하기
Ktor에서 라우팅 구조화하기
Ktor의 동시성
요약
질문
11장. Vert.x를 이용한 반응형 마이크로서비스
기술적 요구 사항
Vert.x 시작하기
Vert.x에서 라우팅 구현하기
버티클
요청 처리하기
서브라우터 사용하기
Vert.x 애플리케이션 테스트하기
데이터베이스 다루기
설정 관리하기
이벤트 루프 이해하기
이벤트 버스와 통신하기
이벤트 버스로 JSON 보내기
요약
질문
정답과 해설
이 책에서 다루는 내용
◆ 코틀린 언어를 이용한 모든 고전 디자인 패턴 구현 방법
◆ 반응형 패턴과 동시성 패턴을 적용한 애플리케이션의 확장성 개선 방법
◆ 코틀린 언어의 모범 사례와 새로운 기능
◆ 함수형 프로그래밍의 핵심 원칙과 코틀린에서 해당 원칙 적용 방법
◆ 관용적인 코틀린 코드와 피해야 할 코틀린 코드
◆ 코틀린의 언어적 힘을 이용한 안정적인 동시성 시스템 설계 방법
◆ 코틀린과 Ktor 프레임워크를 이용한 마이크로서비스 작성 실습 방법
이 책의 대상 독자
안정적이고 확장성 있으며 유지 보수가 용이한 애플리케이션을 개발하기 위해 코틀린에서 디자인 패턴을 익히고자 하는 개발자를 대상으로 하는 책이다. 제대로 이해하려면 프로그래밍에 관한 사전 지식이 꼭 필요하다. 디자인 패턴에 관한 지식은 유용하지만 필수는 아니다.
이 책의 구성
1장, ‘코틀린 시작하기’에서는 코틀린의 기본적인 문법을 다루고 디자인 패턴의 쓸모와 코틀린에서 디자인 패턴을 활용해야 하는 이유를 논한다. 1장의 목표는 코틀린의 모든 기능을 설명하는 것이 아니라 코틀린의 기본적인 개념과 관용구에 익숙해지는 것이다. 코틀린의 더 많은 기능은 이후의 장들에서 관련된 디자인 패턴을 다루면서 하나씩 설명할 것이다.
2장, ‘생성 패턴 사용하기’에서는 고전적인 생성 패턴을 모두 설명한다. 생성 패턴은 객체를 생성하는 방법 및 시기와 관련된다. 생성 패턴에 숙달되면 객체의 생애 주기를 더욱 잘 관리할 수 있으며 유지 보수하기 쉬운 코드를 작성할 수 있다.
3장, ‘구조 패턴 이해하기’에서는 유연하며 확장성 있는 객체 간 계층 구조를 만드는 방법에 초점을 맞춘다. 데코레이터 패턴과 어댑터 패턴 등을 다룬다.
4장, ‘동작 패턴과 친해지기’에서는 코틀린을 사용한 동작 패턴을 설명한다. 동작 패턴은 객체가 다른 객체와 상호작용하는 방법, 그리고 동적으로 객체의 동작을 변경하는 방법을 다룬다. 효율적이며 결합도가 낮은 객체 간 통신을 구현하는 방법을 살펴본다.
5장, ‘함수형 프로그래밍 소개 함수형 프로그래밍의 기본 원칙을 설명하고 이 원칙이 코틀린 언어와 어떻게 어울리는지 살펴본다. 불변성과 고차 함수, 값으로서의 함수 등의 주제를 다룰 것이다.
6장, ‘스레드와 코루틴’에서는 코틀린에서 스레드를 새로 띄우는 방법을 자세히 알아보고 스레드보다 코루틴이 확장성 측면에서 더 나은 이유를 설명한다. 코틀린 컴파일러가 코루틴을 다루는 방법, 그리고 코루틴 시야 및 분배자와의 관계를 살핀다.
7장, ‘데이터 흐름 제어 집합’에서는 자료 구조에 적용할 수 있는 고차 함수를 다룬다. 순서열(sequence), 채널(channel), 흐름(flow)을 사용해 동시성·반응형 코드에서 고차 함수를 적용하는 방법을 살펴볼 것이다.
8장, ‘동시성을 위한 설계’에서는 동시성 디자인 패턴이 어떻게 수많은 작업을 한 번에 관리하고 작업의 생명 주기를 구조화할 수 있도록 해주는지 설명한다. 동시성 디자인 패턴을 잘 사용하면 자원 유출이나 데드락과 같은 문제를 방지할 수 있다.
9장, ‘관용구와 안티패턴’에서는 코틀린에서 권장되는 모범 코드와 사용해서는 안 될 코드를 논한다. 관용적으로 사용되는 모범적 코틀린 코드가 어떻게 생겼는지, 또 피해야 할 코드는 어떻게 생겼는지 배울 수 있을 것이다. 9장을 읽고 나면 가독성과 유지 보수성이 더욱 높은 코틀린 코드를 작성할 수 있을 뿐 아니라 흔히 저지르는 실수도 피할 수 있을 것이다.
10장, ‘Ktor를 사용한 동시성 마이크로서비스’에서는 지금까지 배운 지식을 활용해 코틀린으로 마이크로서비스를 개발한다. 이를 위해 젯브레인스에서 개발한 Ktor 프레임워크를 사용할 것이다.
11장, ‘Vert.x를 활용한 반응형 마이크로서비스’에서는 코틀린에서 마이크로서비스를 만들기 위한 또 다른 방법으로 반응형 디자인 패턴에 기반을 둔 Vert.X 프레임워크를 소개한다. 실무에서 실제로 사용되는 코드 예제를 살펴보며 동시성 및 반응형 패턴의 장단점을 논하고, 언제 각 패턴을 사용해야 하는지 알아볼 것이다.
추천의 글
코틀린(Kotlin)이 세상에 나온 지 갓 10년이 됐다. 비교적 젊은 언어다. 그러나 코틀린은 거인의 어깨 위에 서 있다. 다른 프로그래밍 언어에서 많은 기능과 모범 사례를 차용했다는 뜻이다. 덕분에 다른 언어를 통해 습득한 지식을 코틀린에서도 유용하게 활용할 수 있다.
디자인 패턴(design pattern)은 코틀린을 효율적으로 사용하기 위한 모범 사례의 일종이다. 열정 넘치는 코틀린 커뮤니티의 개발자들이 열심히 디자인 패턴을 설명하는 것을 보면 참 대단하다고 느낀다. 그중 한 명인 알렉세이 소신은 이 책뿐 아니라 여러 강의와 매체를 통해 그의 지식을 공유하기 위해 애써 왔다.
코틀린 언어의 친절한 안내서인 이 책을 읽고 나면 다양한 디자인 패턴의 의미와 활용법을 익힐 수 있을 것이다. 디자인 패턴 사용 경험이 있는 자바(Java) 개발자라면 똑같은 일을 코틀린에서는 어떻게 하는지 알 수 있다.
디자인 패턴은 C++과 자바 같은 객체지향 언어의 시대에 탄생했다. 그러나 코틀린에서는 함수형 스타일로도 프로그램을 작성할 수 있다. 이 책은 함수형 스타일의 장점을 갈무리하고 코틀린에 적용하는 방법을 설명한다.
저자는 꽤 많은 분량을 할애해서 코틀린의 코루틴을 사용한 비동기 프로그래밍을 다룬다. 오늘날 동시성 프로그램을 작성하는 법, 그중에서도 비동기 프로그래밍으로 동시성을 구현하는 방법을 이해하는 것은 필수적이다. 애플리케이션을 잘 설계하기 위해서도 동시성에 대한 이해는 매우 중요하다. 동시성 디자인 패턴은 더 나은 동시성 프로그램을 작성하는 방법을 보여줄 것이다.
이 책을 읽고 나면 코틀린이라는 현대적 프로그래밍 언어와 친숙해질 뿐만 아니라 코틀린으로 프로그램을 작성할 때 따라야 할 모범 사례를 탄탄하게 익힐 수 있을 것이다. 저자의 노력과 열정에 경의를 보낸다!
─안톤 아르히포프(Anton Arhipov)/
젯브레인스(JetBrains)의 코틀린 개발자 애드보킷(Developer Advocate)
작가정보
저자(글) 알렉세이 소신
알렉세이 소신(Alexey Soshin)
15년의 실무 경험을 가진 소프트웨어 아키텍트다. 코틀린이 베타 버전일 때부터 코틀린 세계를 누볐으며 그때부터 코틀린의 열성적인 팬이 됐다. 컨퍼런스 연사이자 작가이며, ‘Pragmatic System Design’라는 온라인 강의의 강사로 활동하고 있다.
번역 이대근
이대근
한국과학기술원(KAIST)에서 전산학과 수학을 공부하고, 동 대학원 협동분산네트워크연구실에서 석사 학위를 받았다. IoT 시스템과 인공위성 영상처리 프로세서, 웹 백엔드 등의 개발에 참여했다. 좋은 이름 짓기와 일관된 코드 스타일에 집착하고, 도전적인 리팩토링을 즐기며, 성실한 게으름을 미덕으로 생각한다. 고객과 개발자가 함께 행복한 소프트웨어 개발 방법론에도 관심을 갖고 있다. 소프트웨어를 통해 더 많은 사람에게 좋은 가치를 전할 수 있기를 꿈꾼다.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!
- 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
- 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
- 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
가장 와 닿는 하나의 키워드를 선택해주세요.
총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.
신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.
허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
있으니 유의하시어 신중하게 신고해주세요.
이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.
구매 후 90일 이내 작성 시, e교환권 100원 적립
eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.
차감하실 sam이용권을 선택하세요.
차감하실 sam이용권을 선택하세요.
선물하실 sam이용권을 선택하세요.
-
보유 권수 / 선물할 권수0권 / 1권
-
받는사람 이름받는사람 휴대전화
- 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
- 열람권은 1인당 1권씩 선물 가능합니다.
- 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
- 선물한 열람권의 등록유효기간은 14일 입니다.
(상대방이 기한내에 등록하지 않을 경우 소멸됩니다.) - 무제한 이용권일 경우 열람권 선물이 불가합니다.
첫 구매 시 교보e캐시 지급해 드립니다.
- 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
- 한 ID당 최초 1회 지급 / sam 이용권 제외
- 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
- 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)