본 리뷰는 인사이트 에서 도서를 제공받은 후 작성한 리뷰입니다.

많은 Java 개발자들이 Kotlin을 배우려고하고 사용하려고합니다. 
그리고 그들중 대부분은 Kotlin을 조금 더 간결한 Java처럼 사용합니다. immutable변수나 타입 추론 등을 사용하면서 코틀린이 좋다 라고 말하곤 하죠.(네, 제 이야기였습니다) 

그렇게 되는 근본적인 이유는 무엇일까요? Java를 사용하는 백엔드 개발자들은 대부분 스프링 부트를 사용하고, 코틀린역시 스프링 부트 환경에서 사용하는 일이 많습니다. 그때문에 익숙한 환경에서 익숙한 방식으로 개발하게 되는 것 이겠죠. 적어도 저는 그랬습니다.

보통 코틀린을 시작할때는 코틀린 입문 서적 같은 책을 한권 읽어보고, 코틀린 언어의 특징 들을 살펴봅니다. 그러면서 이뮤터블 이라던가 델리게이션이라던가 코루틴이라던가 하는 코틀린의 특징에 대해 조금 알게되고 프로젝트를 시작하게 되죠.
이미 경험 많은 개발자가 함께하는 프로젝트가 아니라면 앞서 말씀드린것과 같이 Java 스러운 Kotlin코드를 짜게되기 마련입니다. 왜냐면 본인이 가장 잘 하던 방법을 사용하게 되고, 코틀린은 Java 스러운 코드도 훌륭하게 돌려주거든요. 하지만 이내 곧 깨닫게 됩니다. '나는 문법만 코틀린을 쓰고, 코틀린 라이브러리가 제공해주는 조금 더 편리한 기능만 쓰고있고 코틀린의 핵심적인 기능은 안쓰고 있다' 라는 사실을요. 

대부분의 코틀린 기본서적에서 코틀린의 특징을 잘 잡아주지만 그것을 잘 이해하고, 사용하게 할 만큼의 정보를 제공해주진 않습니다. 코틀린은 그만큼 다양한 기능이 많이 있어서 아마 자세히 설명 하자면 책이 3권쯤은 필요할거같습니다.

그런데 그것을 실재로 해낸 책이 있습니다. 바로 '코틀린 아카데미' 시리즈죠. 그중 제가 읽을 코틀린 아카데미 - 고급편은 코틀린이 그토록 자랑했지만 실제 적용하긴 어려웠던 내용들을 차근차근 설명 해 주고 있습니다. 특히 1장 Variance에서 JVM의 Type Erase 때문에 발생하는 문제를 Kotlin이 어떻게 처리하는지 알려줍니다. 1장만 보더라도 기존에 'in을 쓰니까 빨간줄이 사라지는구나'라고 생각하던 개발자들에겐 크게 도움이 될 것입니다. 그 외에도 델리게이션을 왜, 어떻게 쓰는지에 대해 자세히 설명 해 주고 Contract가 어떻게 컴파일러에게 코드의 제약을 설명해 주는지 알려줍니다. 또, Java 와의 상호운용성을 심도있게 다루면서 JVM에서 코틀린을 어떻게 사용해야하는지 가이드해줍니다. 코틀린 멀티플랫폼과 Kotlin/JS 부분도 제가 평소에 관심을 가지는 부분이라 재밌게 읽었습니다. 특히 이 두 부분은 그동안 '가능하긴 하지만 아직 쓸만하려면 멀었다' 라는 기존의 평가에 대해 다시 한 번 생각하게 만들어줬습니다. 그 외에도 Reflection, Annotation Processor, Kotlin Symbol Processor ,Kotlin Compiler Plugin 역시 자세히 다루고 있습니다. 

일부 기능은 저같은 웹개발자들은 크게 관심이 없을 수 있는 기능이기도하고, 프레임워크를 만드는 수준의 개발이 아니라면 꼭 알아야 하는 지식은 아닐 수 있으나 코틀린이란 언어에 대해 조금 더 알 수 있는 계기가 될 수 있으니 책을 1회정도는 가볍게 끝까지 소설 읽듯이 읽어보시고 필요한 부분들을 다시한번 공부하듯이 읽어보시기를 추천합니다.

 

반응형

+ Recent posts