책 [Kotlin IN ACTION] 코틀린 인 액션 후기

@melonturtle · February 13, 2023 · 4 min read

cover

느낀 점

학교다닐 때 안드로이드 수업을 못들었어서 코틀린을 배운 적이 없었다. 그런데 요즘 코틀린 + 스프링을 많이 한다고 하길래 궁금했다. 그래서 문법을 조금만 읽어보고 나머지는 나중에 읽으려고 이 책을 도서관에서 빌렸는데... 그냥 궁금해서 끝까지 다 읽었다.

예제 코드는 웬만하면 다 따라하면서 읽었다. 좀 뒤쪽으로 갈 수록 복잡해지는 게 있는 데 한 10장까지는 거의 다 따라치면서 읽었다. 그래서 책에 대한 느낌을 간단하게 말하자면 코틀린을 만들 때 '너 어떻게 하면 실수 안할래'랑 '우린 이렇게도 쓸 수 있다?!'라고 생각한 것 같은 느낌이다.

이때까지 써봤던 언어인 자바와 파이썬에서 비교하자면, 코틀린은 자바에서 불편했던 점은 개선하고 실수할 여지가 있는 건 다 막아놓고, 파이썬에서 편했던 것들(구조 분해, _, enumerate 등)은 가져온 느낌이다. 또 C++에서 봤던 inline 함수도 있고.. 물론 자바에서 불편했던 점은 읽으면서 찾아보니 자바도 이미 많이 개선된 것 같다. 결론은 코틀린 언어를 만들때 코틀린을 활용하여 코드를 작성하면 전체적으로 코드를 깔끔하고 실수 없게 작성할 수 있도록 노력한 느낌을 받았다.

그리고 이 책이 좋았던 점은 단순히 문법 설명이 아니라 저자가 코틀린 컴파일러 개발자라서 왜 이런 식으로 설계했는지 설명을 들을 수 있다는 것이다. 예를 들어 자바에서 Checked Exception이 어떤 문제가 있었고 코틀린은 그래서 어떻게 풀어냈는 지를 들을 수 있었다. 이렇게 계속해서 자바와 비교해주기 때문에 오히려 자바 복습이 되는 느낌이라 코틀린만 공부하는 게 아니라 자바도 공부하는 느낌으로 읽을 수 있다. Exception을 읽으면서 자바 Exception도 다시 찾아보고, 제네릭 부분을 읽으면서 자바의 제네릭도 다시 찾아보고, 시퀀스를 읽으면서 자바 Stream을 다시 찾아보고.. 그래서 오히려 좋았다!

결론

물론 읽으면서 코틀린 문법을 배웠지만, 코틀린 설계 철학대로 구현하지 않으면 코틀린스럽지 않은..? 코드를 적을 수도 있을 것 같다. 그래서 단순히 문법을 아는 게 중요한 게 아니라, 잘 활용해야 코틀린 같은 코드를 쓸 수 있을 것 같다. 예를 들어 아무리 선언적으로 작성할 수 있도록 언어가 설계해놔도 얼마든지 절차적으로 코드를 작성할 수 있기 때문에..

그래서 결론은 일단 코틀린으로 프로젝트를 한 번 해보고 싶고, 스프링과 같이 쓸 땐 어떻게 활용하는지 궁금하다. 하지만... 오히려 책을 읽으면서 자바 공부의 필요성을 더 느꼈기 때문에 자바를 더 공부해봐야할 것 같다.

@melonturtle
공부하면서 남긴 기록입니다. 문제가 있다면 언제든지 알려주세요!