Life/Book Record

[서평] 아토믹 코틀린

샤아이인 2023. 7. 26.

저의 돈으로 직접 사서 직접 완독해 본 후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할 것이며, 단점은 단점대로 언급할 것입니다.

 

아토믹 코틀린 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

Java를 거의 2년 가까이 사용해오다 보니 자연스럽게 JVM위에서 동작하는 다른 언어에 관심이 생기기 시작했다.

더 나아가 요즘 인기가 많아지고 있다 느낀 Kotlin에 대하여 관심이 있었기에 코틀린을 처음 배우고자 입문서로 선택하게 되었다.

 

<읽은 기간>

2023/06/28 ~ 2023/07/26

<리뷰 순서>

1) 책의 표지

2) 단원별 구성

3) 읽은 소감

우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 4가지에 대해 답해보겠습니다.

 

Q 이 책을 읽기 전에 필요한 수준/ 지식은?

=> 일단, 저자는 프로그래밍 초보도 읽기에 적합한 책으로써, 혼자 힘으로 알아낼 수 있을 만큼의 내용만 딱 제공한다 적어두었다.

하지만 내 생각에는 조금은 프로그래밍 경험이 있는 사람이 빠르게 Kotlin을 학습하기에 적합한 책이라 생각된다.

저자는 신기하게 쳅터라는 키워드가 아닌, atom이라는 키워드를 사용하여 최소 단위의 기능을 중심으로 책을 서술하였다.

따라서 쳅터 간의 연계가 되기보다는, 한 atom을 배워나가는 책이며, 필요하다면 다른 atom을 먼저 읽어봐도 될만한 책이다.

 

Q 이 책의 번역 상태는? (4/5)

=> 번역 상태가 좋다 생각된다. 하지만 개별 atomic 하나마다 약간의 번역에서 어색함이 종종 보이고는 한다. 문제 될 정도는 아니지만, 돌이켜 생각해 보면 프로그래밍 초보라면 모르고 넘어갈 수도 있는 부분들이 있다.

예를 들어 다운캐스팅인데.... 업캐스팅으로 잘못 명시한 부분이라던가? 사소한 실수들이 이따금 보이곤 한다.

하지만 이 정도면 적합한 번역품질이라 생각되며, 나 같은 경우 1쇄 인지라, 3쇄쯤 가면 이런 부분도 없어질 것이라 생각된다.

 

<번역 기준>

5/5 : 책을 완독 하는 동안 거의 어색함을 못 느낀 번역

4/5 : 한 쳅터를 읽을 때마다 한, 두 번? 어색함을 느낀 번역

3/5 : 한 장을 읽을 때 마다 한, 두번? 어색함을 느낀 번역

2/5 : 한 문장을 읽을 때 마다 한, 두번? 어색함을 느낀 번역

1/5 : 그냥 발 번역

 

Q 이 책을 읽어야 할 필요성, 어디에 도움이 될까?

=> 우선 당연히 Kotlin을 입문하는데 매우 적합한 책이다. 그도 그럴 것이 저자가 그 유명한 브루스 애켈스베트라나 이사코바이다.

특히 브루스 애켈의 Thinking in Java는 좀 예전 책 이기는 하지만 매우 유명한 Java 책이다.

심지어 스베트라나 이사코바 는 그 유명한 Kotlin in Action의 공동 저자이다.

요약하면 레전드 두 분 이서 쓴 책이라 기대 200% 정도 된다 이 말이다.

 

Q 이 책을 읽은 후 추후 공부는?

=> 음 일단 나는 바로 Spring 하고 연계하여 프로젝트를 진행 중이다. 확실히 Lombok을 사용하지 않아서 좋고, 확장함수 같은 개념을 사용하여 JpaRepository를 확장하여 사용하면 매우 편하다는 생각이 들었다. 더 나아가 코드 자체가 매우 간결해진다는 느낌이 들었다.

 

이후에는 코루틴이나, 함수형 코틀린에 관한 책들을 읽어보고 싶다!

 

1. 책의 표지

 

길벗의 책을 오랜만에 읽어봤는데 표지가 아주 깔끔하다 생각된다! 군더더기 없이 마음에 드는 디자인이다!

 

2. 단원별 구성

우선 총 7부로 구성되어 있다

1부 : 프로그래밍 기초

2부 : 객체 소개

3부 : 사용성

4부 : 함수형 프로그래밍

5부 : 객체 지향 프로그래밍

6부 : 실패 방지하기

7부 : 파워 툴

 

이중 나는 6부까지만 읽었으며, 7부는 제네릭이나 연산자 오버로딩의 내용이라 아는 개념이라 생각되어 pass 하였다.

7부에서는 딱 하나, Lazy Init 부분만 살펴봤던 것 같다.

 

여러 장들이 다 재미있었지만, 그중 친숙한 5부, 객체 지향 프로그래밍 파트를 중점적으로 리뷰를 남겨볼까 한다.

 

3. 객체 지향 프로그래밍 하기

일단 첫 도입부부터 나에게 인상 깊었다. 나는 어느 순간부터 상속은 안티 패턴이라 생각하고 있던 사람이다.

대충 그 기점은 Effective Java라는 책을 만드신 저자분이 "상속은 애당초 없었어야 한다"라는 말을 했던 것을 본 이후부터였을 것이다.

나 또한 상속을 사용하면서 개발이 편했다라고 느낀 적이 별로 없어 이렇게 생각하고 있었지만...

 

위 표지를 보면 "요즘은 상속을 불신하는 게 유행인 것 같다"라는 나에게 치명타를 날려주셨다... 윽.... 역시 사람의 관점은 다를 수도 있으며, 주어진 상황마다 모두 다를 수 있다는 점 명심해야겠다!

 

책의 대부분은 다음과 같은 구성이다.

atom 하나마다 주어진 키워드가 있으며, 해당 키워드에 대한 필요한 정도의 지식과 예시를 제공한다.

코드의 경우 100%로 어떤 코드인지 설명하면서, 해당 부분에서 Kotlin의 어느 기능을 살펴보는지 설명해주신다!

또한 해당 예시에 관한 코드를 전부 Intellij 자체에서 지원해 준다... 레 전 드...

 

하나의 atom 내부에서도 일부 처음 나오는 내용의 경우에는 대부분 저자가 따로 설명을 해준다. 또한 주석에도 상당한 내용이 추가되어 있는데, 보통 조금 deep 한 내용들이 주석에 있었던 거 같다. 

SAM이라는거 여기서 처음 알았다.

 

사실 이 책이 더 대단한 이유는 내용도 내용이지만....

모든 실습 예제와 연습문제를 Intellij만 설치되어 있다며 바로 접해볼 수 있다는 점이다.

(저자 두 분이 모두 JetBrain에서 근무 중이라 가능한 것일까? ㅋㅋㅋㅋ)

 

책 실습: 다음과 같이 각 atom마다의 연습문제를 intellij 플러그인을 통해 제공받을 수 있었습니다!

https://plugins.jetbrains.com/plugin/10081-jetbrains-academy

 

JetBrains Academy - IntelliJ IDEs Plugin | Marketplace

Learn and teach programming languages such as Kotlin, Java, Python, JavaScript, Rust, Scala, C/C++, Go, and PHP, through interactive courses right in your JetBrains...

plugins.jetbrains.com

위 링크나, 아니면 Intellij 내부 설정을 통해 다운로드 하신 후, market에서 atomicKotlin을 찾아 다운로드한 후 실습을 진행하면 됩니다!

 

연습문제 과정은

1) 문제를 읽는다

2) 코드를 작성한다

3) 오른쪽 하단의 check를 눌러 내가 작성한 코드가 pass 되는지 확인한다.

3-1) pass 된다면 다음 연습문제로~

3-2) pass 되지 않는다면 다시 풀거나, 힌트 보기를 통해 재시도할 수 있습니다!

오른쪽에 해당 문제에 대한 설명이 나오고, 이를 직접 코드로 작성한 후 Check를 누르면 테스트 코드를 통하여 잘 구현되었는지 확인되는 방식이다. (역시 테스트가 있어야 개발이지~)

 

어떤 책이 이렇게 까지 지원해 주겠는가? 애당초 이 책은 JetBrain이 Kotlin을 널리 전파하기 위해 만든 책에 가깝다는 생각이 들었다.

저자며, 책의 구성이며, 연습문제며 등등, 시간만 많다면 1 회독 정도 더 한다면 코틀린을 사용하는 입장에서 전혀 불편함이 없을 것이라 생각된다.

 

4. 읽은 소감

음 나처럼 코틀린 처음 공부하는 사람한테 뭐로 시작해야 할지 모르겠다면, 그냥 이 책 한 권 바로 추천해주고 싶다.

다만 이게 연습 문제까지 풀면 당연하게 도움이 되지만, 시간이 좀 많이 소모되기 때문에... 바쁜 사람은 책만 읽어도 충분하다 생각된다.

 

코틀린을 처음부터 잘 배우고 싶은 사람이라면 추천한다, 다만 Java나 C++ 사용 경험이 있다면 더욱 좋을 것 같다.

사실 나야 다른 언어들을 많이 사용해 봐서 이 책이 좋다 생각할 수도 있지만, 진짜 Kotlin초보자라면 객체지향 개념이 없어서 5장 읽을 때 힘들 수도 있다.

 

이런 점만 제외하면 정말 좋은 책이라 생각된다!

 

Kotlin 처음 공부하면 이 책 강 추입니다!

댓글