아토믹 코틀린 : 코틀린 컴파일러 개발자가 알려주는 코틀린 기본기 87

아토믹 코틀린 : 코틀린 컴파일러 개발자가 알려주는 코틀린 기본기 87

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

북 트레일러

  • 출판사의 사정에 따라 서비스가 변경 또는 중지될 수 있습니다.
  • Window7의 경우 사운드 연결이 없을 시, 동영상 재생에 오류가 발생할 수 있습니다. 이어폰, 스피커 등이 연결되어 있는지 확인 하시고 재생하시기 바랍니다.

저자

브루스에켈,스베트라나이사코바

저자:브루스에켈
수차례수상한『ThinkinginJava』,『ThinkinginC++』등여러컴퓨터프로그래밍책을쓴저자다.35년넘게프로그래밍세계에서책을쓰고,전세계의다양한콘퍼런스나이벤트에서수백번발표를해왔다.블로그는bruceeckel이며,마인드뷰유한책임회사를통해컨설팅및콘퍼런스비즈니스를하고있다.

저:스베트라나이사코바
2011년부터코틀린팀의일원이었다.코틀린컴파일러의타입추론과오버로드해결(overloadresolution)부분을개발했다.현재테크니컬에반젤리스트(technicalevangelist)로서각종콘퍼런스에서코틀린에대해알리고코틀린온라인코스를개발하고있다.

역자:오현석
모빌리티42이사로일하면서매일고객의요청에따라코드를만드는현업개발자다.어릴때처음컴퓨터를접하고매혹된후경기과학고,KAIST전산학과(프로그래밍언어전공석사)를거치면서계속컴퓨터를사용해왔다.직장에서는주로코틀린이나자바를사용한서버프로그래밍을하고,주말이나빈시간에는번역을하거나공부를하면서즐거움을찾는다.시간이아주많이남을때는시뮬레이션게임을하면서머리를식히고놀고,어떻게하면막내자식을프로그래밍의세계로끌어들일수있을까고민중인아빠이기도하다.『코어파이썬애플리케이션프로그래밍CorePythonApplicationsProgrammingThirdEdition』(에이콘출판,2014)을시작으로『KotlininAction』(에이콘출판,2017),『한권으로읽는컴퓨터구조와프로그래밍』(책만,2021),『파이썬으로살펴보는아키텍처패턴』(한빛미디어,2021),『ProgramminginScala4/e』(에이콘출판,2021)등30여권의책을번역했다.

목차

1부프로그래밍기초

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

2부객체소개

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

3부사용성

__30확장함수
__31이름붙은인자와디폴트인자
__32오버로딩
__33when식
__34이넘
__35데이터클래스
____HashMap과HashSet
__36구조분해선언
__37널이될수있는타입
__38안전한호출과엘비스연산자
__39널아님단언
__40확장함수와널이될수있는타입
__41제네릭스소개
____제네릭함수
__42확장프로퍼티
__43break와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()
__75Nothing타입
__76자원해제
__77로깅
__78단위테스트
____테스트프레임워크
____모킹과통합테스트
____인텔리JIDEA에서테스트하기

7부파워툴

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

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

찾아보기

출판사 서평

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

언어의기본개념과예제코드로배우는코틀린의장점

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

기본부터제대로이해하고익히는코틀린

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

[지은이서문]

①작은성취를맛본다:‘장'형태를사용하지않고,대신각각의작은단계를원자적개념으로제공하며,이를간단히‘아톰’이라고부른다.아톰에는작고실행가능한코드와출력결과가제공된다.
②전방참조가없다:‘이특성은뒤에나오는아톰에서설명한다’라는식의설명은가능한한하지않는다.
③다른언어를참조하지않는다:정말필요할때만다른언어를빌려설명한다.이해할수없는언어의특성을비유를들어설명하는것은도움이되지않기때문이다.
④설명하지않는다:그대신보여준다.어떤특성을말로설명하기보다는예제와출력을보여주는쪽을택한다.특성을코드로보여주는게더낫기때문이다.
⑤이론보다연습,실전이먼저다:언어가작동하는모습을먼저보여주고,왜이런특성이존재하는지는나중에설명한다.‘전통적인’교육방법과는반대방식이지만,더효과가좋은경우가많다.

[옮긴이서문]

브루스에켈은『ThinkinginC++』,『ThinkinginJava』,『AtomicScala』등의책에서보듯이언어를쉽게설명하기로정평이나있다.스베트라나이사코바는코틀린컴파일러팀의일원이자『KotlininAction』의공저자이며다양한콘퍼런스에서코틀린을소개하고가르치는일을하고있다.따라서이책은코틀린을배우길원하는개발자에게코틀린의기초를쉽고정확하게설명해줄수있는저자들이쓴책이라할수있다.아무쪼록독자여러분이이책을통해코틀린을더잘이해하고향후코틀린을더깊이배우는데필요한기초를단단히다질수있길바란다.

[베타테스터실습후기]

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

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

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

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

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

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

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

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

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

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

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