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

코틀린 안드로이드 프로그래밍(프로그래밍 언어)
저자 : 피터슈패스 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 유진호

2021.10.29 ㅣ 544p ㅣ ISBN-13 : 9791161755793

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

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 인터넷 > 웹프로그래밍(웹디자...
(* 안드로이드 스튜디오 최신 버전(2021년 11월 29일 기준)으로 예제 코드를 업데이트했습니다. 코드 파일은 https://github.com/AcornPublishing/learn-kotlin에서 다운로드하실 수 있습니다.)

코틀린을 학습할 때 좋은 학습서이자 참고서로 활용할 수 있다. 안드로이드 애플리케이션 개발을 예제로 코틀린을 설명하지만 안드로이드 개발을 본격적으로 배우기 위한 책은 아니다. 코틀린을 사용한 프로그래밍에 중점을 두고, 그 과정에서 코틀린이라는 언어를 처음 사용하고 학습하는 데 필요한 내용을 적절하게 다룬다.

◈ 이 책에서 다루는 내용 ◈

◆ 안드로이드에서 실행되는 첫 코틀린 앱 제작
◆ 안드로이드 개발에 코틀린 클래스와 객체 사용
◆ 구조, 루프, 결정 및 스코프 사용
◆ 데이터 작업 수행
◆ 데이터 컨테이너, 배열 및 컬렉션 마스터
◆ 예외 처리와 외부 라이브러리 사용


◈ 이 책의 대상 독자 ◈

프로그래밍 지식이 거의 없는 초보 소프트웨어 개발자, 향후 안드로이드 프로젝트에 코틀린을 사용하려는 다른 언어 지식이 있는 개발자를 위한 책이다. 대상 플랫폼은 안드로이드 디바이스다. 안드로이드를 플랫폼으로 사용하고 코틀린 프로그래밍 언어와 코틀린이 안드로이드에 사용되는 방법을 철저하게 소개한다.
프로그램 설치 및 시작을 포함해 데스크톱이나 랩톱 컴퓨터를 사용하는 방법의 기본 지식이 필요하다. 사용하려는 운영 체제는 중요한 역할을 하지 않지만, 안드로이드 스튜디오를 개발 환경으로 사용하므로 이 통합 개발 환경(IDE)을 실행할 수 있는 운영 체제를 선택해야 한다. 이러한 운영 체제로는 리눅스, 윈도우, 맥 OS가 있다. 스크린 샷은 우분투 리눅스에서 찍었다. 초급부터 중급 수준 복잡성의 안드로이드용 코틀린 프로그램을 작성하고 실행할 수 있다.


펼쳐보기

[목 차]

1장. 첫 코틀린 애플리케이션: Hello Kotlin
__IDE 설치: 안드로이드 스튜디오
__안드로이드 디바이스 연결
__첫 코틀린 앱 시작하기
__에뮬레이터 설정 및 사용
__HelloKotlin 앱 계속하기
__커맨드 라인 사용하기


2장. 클래스와 객체: 객체지향 철학
__코틀린과 객체지향 프로그래밍
____클래스 선언
____연습문제 1
____프로퍼티 선언
____연습문제 2
____연습문제 3
____클래스 초기화
____연습문제 4
____연습문제 5
____코틀린에서의 송장
____다른 송장 프로퍼티
____송장 초기화
____연습문제 6
____코틀린의 인스턴스화
____송장에 함수 추가하기
____연습문제 7
____전체 송장 클래스
__간단한 숫자 맞추기 게임
__생성자
____연습문제 8
____생성자 호출
____연습문제 9
____연습문제 10
____명명된 생성자 매개변수
____연습문제 11
____연습문제 12
____생성자 기본 값
____연습문제 13
____연습문제 14
____부 생성자
____연습문제 15
__클래스가 필요 없다면: 싱글턴 객체
____연습문제 16
____연습문제 17
__상태가 중요하지 않은 경우: 동반자 객체
____연습문제 18
____연습문제 19
__계약 설명: 인터페이스
____연습문제 20
____연습문제 21
____연습문제 22
__구조화와 패키지
____구조화된 프로젝트
____연습문제 23
____네임스페이스와 임포트
____연습문제 24


3장. 클래스의 작동: 프로퍼티와 함수
__프로퍼티와 프로퍼티의 타입
____단순 프로퍼티
____연습문제 1
____프로퍼티 타입
____프로퍼티 값 할당
____연습문제 2
____리터럴
____연습문제 3
____프로퍼티 가시성
____NULL 값
____연습문제 4
____프로퍼티 선언 수정자
__멤버 함수
____값을 반환하지 않는 함수
____연습문제 5
____연습문제 6
____값을 반환하는 함수
____연습문제 7
____연습문제 8
____연습문제 9
____마스킹된 프로퍼티에 접근하기
____연습문제 10
____함수 호출
____연습문제 11
____함수의 명명된 매개변수
____연습문제 12
____함수의 기본 매개변수
____연습문제 13
____함수의 가변 매개변수
____연습문제 14
____추상 함수
____다형성
____로컬 함수
____상속
____다른 클래스를 상속하는 클래스
____생성자 상속
____연습문제 15
____함수 재정의
____프로퍼티 재정의
____연습문제 16
____연습문제 17
____수퍼클래스 애셋에 접근하기
__로컬 변수
____연습문제 18
__클래스와 클래스 멤버의 가시성
____자기 참조: this
__클래스를 문자열로 변환하기
____연습문제 19


4장. 클래스와 객체: 확장 기능
__익명 클래스
__내부 클래스
__클래스 외부의 함수와 프로퍼티
____연습문제 1
__함수와 프로퍼티 임포트
____연습문제 2
__데이터 클래스
____연습문제 3
____연습문제 4
__열거형
____연습문제 5
__사용자 정의 프로퍼티 접근자
____연습문제 6
____연습문제 7
____연습문제 8
__코틀린 확장
____확장 함수
__확장 프로퍼티
____널 가능 리시버를 사용하는 확장
____확장 캡슐화
__꼬리 재귀를 사용하는 함수
__이항 연산자
__연산자 재정의
____연습문제 9
__위임


5장. 표현식: 데이터 작업
__표현식 예제
__표현식의 편재성
__수치 표현식
____연습문제 1
__불리언 표현식
__문자열과 문자 표현식
__비트와 바이트
__다른 연산자
____연습문제 2
__변환


6장. 코틀린 파일의 주석
__패키지 주석
__마크다운
__클래스 주석
__함수와 프로퍼티 주석
____연습문제 1
__자체 API 문서 생성


7장. 구조적 구조
__If와 When
__레인지
__For와 While 루프
__스코핑 함수
__apply 함수
__let 함수
__with 함수
__also 함수
__run 함수
__조건별 실행


8장. 예외: 뭔가 잘못된다면
__코틀린과 예외
__다른 예외 유형
__예외 던지기
____연습문제 1
__표현식에서의 예외


9장. 데이터 컨테이너
__배열의 정의와 사용
__배열 인스턴스화
____연습문제 1
____연습문제 2
__배열 작업
__세트, 리스트 및 맵
____세트
____연습문제 3
____리스트
____맵
__페어와 트리플
__데이터 컨테이너를 이용한 루프
__배열과 컬렉션 정렬
____연습문제 4
____연습문제 5
__그룹핑, 폴딩, 리듀싱 및 집핑
____그룹핑
____연습문제 6
____폴딩
____리듀싱
____연습문제 7
____집핑
____연습문제 8
__배열과 컬렉션의 탐색
__스프레드 연산자
__큐와 스택: 데크
__NumberGuess 앱을 위한 통계 클래스
____앱에 액션 바 추가하기
____통계 액티비티
____통계의 상태 관리
____액티비티 사이의 소통
____통계 계산 구현


10장. 참, 거짓 그리고 미정: 널 가능성
__NULL이란?
__코틀린 내부에서 널 가능성이 처리되는 방식


11장. 동등성 처리
__코틀린의 동일성
__코틀린의 동등성
__equals와 해시 코드
____연습문제 1
____연습문제 2


12장. 다시 수학으로: 함수형 프로그래밍
__코틀린과 함수형 프로그래밍
__이름 없는 함수: 람다 함수
____연습문제 1
____연습문제 2
__루프 다시 살펴보기
__리시버가 있는 함수
__인라인 함수
__필터
____연습문제 3


13장. 타입 안전성에 대해: 제네릭
__단순 제네릭
____연습문제 1
__선언 지점 가변성
__불변 컬렉션에 대한 가변성
__타입 프로젝션
__스타 프로젝션
__제네릭 함수
__제네릭 제약
____연습문제 2


14장. 힌트 추가: 애너테이션
__코틀린의 애너테이션
__애너테이션의 성질
__애너테이션 적용하기
__배열 매개변수를 갖는 애너테이션
__애너테이션 읽기
__내장 애너테이션
__커스텀 애너테이션
____연습문제 1


15장. 자바와 코틀린 API의 사용
__코틀린과 자바 라이브러리
__온라인 리소스 사용
__문서의 로컬 사본 만들기


16장. 컬렉션 API
__인터페이스
__클래스
__제너레이터 함수
__컬렉션과 맵 세터 및 리무버
__결정적 게터
__컬렉션과 맵 특성
__컬렉션과 맵 순회
__변환
____연습문제 1
____연습문제 2
____연습문제 3
____연습문제 4
__필터링
____연습문제 5
__가변성 변경하기
__요소 검사
____연습문제 6
__요소 찾기
____연습문제 7
__집계, 폴딩 및 리듀싱
____연습문제 8
__결합
__그룹핑
__집핑
__윈도잉
__시퀀스
__연산자


17장. 다른 API들
__수학 API
__날짜와 시간 API, API 레벨 25 이하
__날짜와 시간 API, API 레벨 26 이상
__로컬 날짜와 시간
__인스턴트
__오프셋 날짜와 시간
__구역 날짜와 시간
__듀레이션과 피리어드
__클락
____연습문제 1
__입력과 출력
__테스트 파일 만들기
__파일 이름
__디렉터리 나열
__파일에 쓰기
__파일에서 읽기
__파일 삭제
__임시 파일 다루기
__다른 파일 작업
__URL 읽기
__리플렉션 사용
__정규 표현식
__패턴
__일치 확인
____연습문제 2
__문자열 자르기
__하위 문자열 추출하기
__대치


18장. 병렬 작업: 멀티스레딩
__자바 멀티스레딩 기초
__자바의 고급 멀티스레딩
__특수한 동시성 컬렉션
__잠금
__원자적 변수 타입
__익스큐터, 퓨처 및 콜러블
____연습문제 1
__코틀린 코루틴
__기본 코루틴
__코루틴 컨텍스트
__delay( )가 하는 일
__일시 중단 함수란?
__잡 기다리기
__코루틴 취소하기
__타임아웃
__디스패처
__예외 처리
____연습문제 2


19장. 외부 라이브러리 사용하기
__외부 라이브러리 추가하기
__의존성 관리
__미해결 로컬 의존성
__외부 라이브러리와 널 가능성
__자체 라이브러리 만들기


20장. XML과 JSON
__XML 처리
__XML 데이터 읽기
__XML 데이터 변경
__새로운 DOM 생성
____연습문제 1
__JSON 처리
__JSON 헬퍼 함수
__JSON 데이터 읽고 쓰기
__새로운 JSON 트리 생성
____연습문제 2


부록. 연습문제 답안
__2장
__3장
__4장
__5장
__6장
__8장
__9장
__11장
__12장
__13장
__14장
__16장
__17장
__18장
__20장

펼쳐보기
◈ 이 책의 구성 ◈

1장, ‘첫 코틀린 애플리케이션: Hello Kotlin’에서는 간단한 코틀린 프로그램을 작성하고 실행하기 위해 안드로이드 스튜디오 IDE를 사용하는 방법을 배운다.
2장, ‘클래스와 객체: 객체지향 철학’의 주요 주제인 객체지향은 클래스, 인스턴스화, 객체에 대한 것이다.
3장, ‘클래스의 작동: 프로퍼티와 함수’에서는 프로퍼티와 함수 선언을 얘기한다. 객체지향의 중요 기능인 상속도 얘기한다.
4장, ‘클래스와 객체: 확장 기능’에서는 프로그램이 작동하는 데 반드시 필요하지는 않지만 가독성과 표현력을 향상시키는 확장된 객체지향 기능을 다룬다.
5장, ‘표현식: 데이터 작업’에서는 다양한 표현식 유형과 이들 사이의 변환을 살펴본다.
6장, ‘코틀린 파일의 주석’에서는 주석으로 할 수 있는 것을 비롯해 주석을 코틀린 파일에 어떻게 추가하는지 살펴본다.
7장, ‘구조적 구조’에서는 이러한 분기 구조와 함께 코드 작성을 돕는 보조 부류를 살펴본다.
8장, ‘예외: 뭔가 잘못된다면’에서는 예외를 살펴본다. 예외는 예상하지 못한 심각한 문제가 발생한 경우에 생성되거나 던져지는 객체다.
9장, ‘데이터 컨테이너’에서는 컴퓨터 언어 역사에 먼저 등장한 배열부터 살펴보고 컬렉션을 살펴본다.
10장, ‘참, 거짓 그리고 미정: 널 가능성’에서는 true도 false도 아닌 뭔가가 컴퓨터 프로그래밍에 있어야 한다는 사실과 이러한 널 가능성을 배운다.
11장, 동등성 처리’에서는 동일성과 동등성 사이에는 큰 차이가 있으며, 이러한 동일성과 동등성 비교는 중요한 내용을 알려준다는 것을 배운다.
12장, ‘다시 수학으로: 함수형 프로그래밍’에서는 함수형 구조의 지식을 심화하고, 훌륭한 소프트웨어 작성에 필요한 향상된 도구 집합을 배울 수 있다.
13장, ‘타입 안전성에 대해: 제네릭’에서는 제네릭을 자세하게 살펴보고 타입 연관성을 이해해볼 것이다.
14장, ‘힌트 추가: 애너테이션’에서는 코드에 메타 정보를 추가하기 위한 애너테이션을 살펴본다.
15장, ‘자바와 코틀린 API의 사용’에서는 코틀린과 함께 제공되는 라이브러리를 살펴본다.
16장, ‘컬렉션 API’에서는 이미 알고 있는 것을 복습하고 여러 가지 흥미로운 컬렉션 인터페이스, 클래스, 함수를 살펴본다.
17장, ‘다른 API들’에서는 애플리케이션에서 사용할 수 있는 몇 가지 다른 API를 모았다.
18장, ‘병렬 작업: 멀티스레딩’에서 코틀린은 멀티스레딩의 자체 아이디어를 코루틴이라는 기술로 소개하고 있다.
19장, ‘외부 라이브러리 사용하기’에서는 안드로이드 프로젝트에 외부 라이브러리를 추가하는 방법을 얘기하고 외부 자바 라이브러리를 추가할 경우 널 가능성 관련 특성을 탐구하며 자체 라이브러리를 만드는 방법을 설명한다.
20장, ‘XML과 JSON’에서는 코드 스니펫을 테스트할 수 있는 샘플 앱이 있다고 가정한다.


◈ 지은이의 말 ◈

컴퓨터 프로그램은 입력 데이터를 사용해 출력 데이터를 생성하는 작업을 실행하고 때로는 해당 작업을 할 때 데이터베이스에서 가져온 데이터를 조작하기도 한다. ‘데이터베이스’라는 단어는 가장 일반적인 의미로 사용된다. 이는 파일이 될 수도 있고 메모리 스토리지나 완전한 데이터베이스 제품일 수도 있다.
오늘날에는 각각 자신만의 장점과 단점을 가진 여러 프로그래밍 언어가 존재한다. 일부는 안정적인 실행을 목표로 하고, 일부는 고성능, 어떠한 것은 특정 작업을 해결하기 위해 만들어졌으며 일부는 회사가 강력한 시장 입지를 구축하길 원하기 때문에 존재한다. 프로그래밍 언어가 시간이 지나면서 발전한 방식을 살펴보는 것은 그 자체로 흥미로운 주제이며, 정보기술의 다양한 측면에 영향을 미친다. 누군가는 이에 대해 별도의 책을 쓸 수도 있겠지만 이 책에서는 단지 컴퓨터 언어 발달에 대한 한 가지 중요한 사실을 강조하려고 한다. 이는 현대 컴퓨터 프로그램이 작성되는 방식에 직접적인 영향을 미친다. 컴퓨터 언어의 역사적 발전을 살펴보면 언어가 나타내는 추상화 수준에 상당한 변화가 있음을 발견할 수 있다. 업계 초기에는 프로그래머가 컴퓨터 하드웨어를 매우 잘 알고 있어야 했지만 이제는 언어에 다른 수준의 추상화가 도입돼 하드웨어 기능으로부터 개념적이고 언어적인 거리가 멀어졌다. 이로 인해 소프트웨어 개발자는 컴퓨터의 중앙처리장치(CPU)에서 무슨 일이 일어나고 있는지 알아야 한다는 사항이 점점 완화됐다.
이 책의 끝에 도달하면 안드로이드 문제에 특히 관심을 갖고 코틀린 언어로 문제를 해결할 수 있는 발전된 개발자가 돼야 한다. 물론 특정 문제를 해결하기 위해 라이브러리를 전부 알 수는 없다. 이때는 오직 경험만 도움이 된다. 하지만 대부분의 언어 구조를 알고 프로그래밍 기술에 대한 좋은 아이디어를 가지면 전문적인 안드로이드 프로그래머가 될 수 있다.


◈ 옮긴이의 말 ◈

코틀린이라는 언어를 처음 접하고 사용한 지 벌써 3년이 돼 간다. 여러 큰 회사에서 코틀린으로 만든 애플리케이션으로 서비스를 제공하고 운영해왔다. 3년이 지난 지금도 여전하게 코틀린을 사용 중이고 코틀린을 사용하지 않는 회사로 이직한 경우 코틀린을 왜 사용해야 하는지 기존 구성원을 설득해 전환시켰던 경험이 있다.
프로그래밍 언어의 인기는 곧 신뢰성과 결부되므로 개발자에게 인기는 중요할 수밖에 없다. 현재의 코틀린은 인기가 많이 높아진 것 같다. 안드로이드뿐만 아니라 서버 애플리케이션 개발에도 활발하게 쓰이기 때문인지 기존 구성원을 설득하는 것은 별로 어렵지 않았다. 그렇다면 그 이후 개발자가 느끼는 코틀린은 어땠을까? 설문조사나 통계 작성을 해본 것은 아니지만 잠시 커피 한 잔을 하면서 코틀린에 대한 경험을 말할 때는 왜 이런 언어를 쓰는지에 대한 얘기는 적어도 나오지 않았다. 혹자는 이제 자바 언어가 매우 낯설고 장황하게 느껴진다고 말하기도 한다.
개인적으로 코틀린은 자바 대체 언어로 사용하기에 매우 훌륭한 선택이라고 생각한다. 다른 모던 언어에서 찾아볼 수 있는 기능이 과하지 않을 만큼 코틀린이라는 언어 속에 녹아 있다. 좋은 부분만 잘 수용했다고 할까? 개발자는 코드를 더 간결하게 작성할 수 있고 코드를 자바로 작성하는 것보다 생산성이 더 향상될 수 있다고 생각한다. 코틀린은 사용해봐야만 그 장점을 확실하게 느낄 수 있는 언어다. 이 책을 읽는 독자 여러분도 코틀린의 매력에 푹 빠지길 바란다.

펼쳐보기

옮긴이 유진호
프로그래밍을 좋아하는 평범한 프로그래머로 다양한 기술에 관심이 많다. 최종사용자에게 서비스 경험을 어떻게 빨리 안정적으로 제공할 수 있을지 최근 들어 자주 고민하고 있다.


펼쳐보기

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

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
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.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기