본문 바로가기
📚 Kotlin

[감상문] Kotlin In Action을 읽고

by GroovyArea 2023. 1. 17.

현재 입사한 회사에서 백엔드 언어는 코틀린 기반이다.

코틀린에 빠르게 적응해야 했기에, 입사 전 부터 틈틈히 개념을 공부했었다.
하지만 구글과 유튜브는 정보의 난잡함과 한계, 그리고 신뢰성이 떨어진다.
확실히 언어 및 백엔드 공부는 책이 진리라는 것이 내 정론이다..ㅎㅎ

입사 첫 날 사수 분께 코틀린 관련 서적이 있는지 여쭤봤고, 감사하게도 흔쾌히 [코틀린 인 액션] 책을 빌려주셨다.

책을 들고 퇴근했고, 그 날 밤부터 바로 읽기 시작했다.
일이 많은 날, 너무 피곤한 날과 일정이 있는 날을 제외한 밤 11시에는 1시간 꼭 독서를 하고 자자는 다짐과 함께.

잘 읽히지 않을 것을 염려했지만, 다행히 이 책이 지향하고자 하는 바는 기존 자바 개발자에게 초점이 맞춰져 있는 것이 참 인상 깊었다.
책은 기존 자바 코드와 비교하며, 코틀린에서는 이를 어떤식으로 바꿔 작성하는지 자세히 집필해 놓았다.
자바 코드를 먼저 설명하고 코틀린에서는 자바의 단점을 코틀린이 어떻게 개선했는지를 표현하니 훨씬 이해하기 수월했다.

코틀린이 지향하고자 하는 표현 중에서 [관례] 라는 표현이 있는데,
이를 테면 Map 이나 List 에서 키나 인덱스에 해당하는 값을 가져올 때 메소드를 호출하는 것이 아닌 ["~~" ] 을 통해 가져 오는 것이라던지, for 루프에서의 인간이 읽기에 가독성적 측면에서 향상을 불러올 수 있는 표현들이 참 인상 깊었다.

모든 개발자들이 가장 싫어하는 "중복".
이것은 코틀린을 개발한 개발자들이 넘겼을 리 없다.
이를 조금이라도 개선하기 위한 범위 지정 함수와 수신 객체. 참 인상 깊었다.
자바와 비교했을 때, 코드가 확 줄어가는 것을 느꼈다.

또, 가장 인상 깊었던 부분은 아무래도 람다이다.
함수형 프로그래밍이 등장하면서 기존 명령, 선언형 프로그래밍에서 벗어나 일급 객체, 일급 함수를 사용하며 하나의 스트림으로 코드를 작성하는 방식이 개발계에 큰 파장을 일으켰다.
이유인 즉슨, 코드 작성이 간편해지고 눈에 띄며, 사이드 이펙트가 없는 것을 보장하기에 유지 보수에 훨씬 도움이 되기 때문이다.
함수 타입 챕터를 읽으며, 고차 함수라는 개념을 수학 시간 함수를 공부한 것을 생각하며 읽으니 참 매력적인 언어라는 것을 실감하게 되었다.
간단한 함수적 표현을 코틀린이 람다로 풀어냈고, 람다 마저 자바에서 더 개선된 가독성 높은 문법을 지향하며 표현하는 것을 기존에 자바를 공부했던 나에게는 신선한 충격이었다.


나는 웹 백엔드 공부를 하는 사람 중 객체 지향을 제대로 공부해왔다고 생각한다.
스프링 프레임워크에 대한 공부, 웹 개발 과정 중 여러 가지 고려 사항, 객체 지향 적 코드 작성 방식과 나아가서 아키텍처적 설계 고민 등을 여러 피드백을 받아가며 개선하며 체화했었다.

"추상화된 프로그램 세계에서 객체 간의 유기적인 상호작용. 객체를 살아 있는 존재로 보자. 그리고 그 객체가 맡은 진정한 책임을 노려보자."

그래서 내 수준 내에서 혼을 쏟은 메인 스프링 프로젝트에 적용 시켜 그 결과를 보였다. 이제는 코틀린 차례다.

코틀린도 당연히 객체 지향을 기본 베이스로 깔고 가므로 내가 몸소 익혀 왔던 코드 작성 방식을 가져 가되 이제는 코틀린이 제공하는 함수적 코드 작성 방법도 익숙해져야 한다고 느낀다.

오늘까지 읽은 [코틀린 인 액션] 이라는 책은 기존에 자바 개발자에게 코틀린의 세계를 체험시켜준 감상으로 표현할 수 있겠다.
나아가 코틀린이 진심으로 지향하고자 하는 코드 작성 방식을 체화하기 위해서는 기존 자바 개발자들의 필독 도서 [이펙티브 자바]와 비슷한 결인 [이펙티브 코틀린]을 읽어 볼 생각이다.

오늘 까지 읽었던 코인액을 통해 얻은 지식으로 진행하는 프로젝트에 기회가 된다면 적용시켜보고 싶다.
그리고 이펙티브 코틀린을 읽어가며 코틀린적 코드로 개선해보고 싶다.

코틀린을 입문하는 자바 개발자들에게 코인액을 적극 추천하며 이만 마무리 해본다.



반응형