메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

[서평]자바에서 코틀린으로

sou***

|

2023-02-20

자바에서 코틀린으로

자바와 코틀린의 결을 비교하면서 자바에서 자주 쓰이는 기능을 어떤 코틀린 기능으로 이식할 수 있는지 차근차근 설명하는 책이다. 코틀린의 결에 맞게 값 중심의 함수형 프로그래밍, 널 가능성, 람다, 확장 함수, 결과 타입 등을 활용해 코드를 작성하면서 코틀린을 자유자재로 다뤄보자.

  • 저자 : 덩컨 맥그레거, 냇 프라이스
  • 번역 : 오현석
  • 출간 : 2022-11-10

#자바 #코틀린 #안드로이드 #메타

이 책은 덩컨 맥그레거, 냇 프라이스가 저자분이고 오현석이라는 역자분인 책이다. 코틀린은 인텔리J를 만드는 젯브레인스에서 처음 개발했다. 구글은 2017년부터 코틀린을 안드로이드 앱용 언어로 사용했으며, 구글과 젯브레인스는 2018년부터 코틀린재단의 코틀린 언어 개발을 지원하고 있다.

구글의 안드로이드 팀은 2019년부터 '코틀린 퍼스트' 접근법을 채택했다. 구글 지도, 홈, 플레이, 드라이브, 메시지 등 코틀린으로 구축된 구글 안드로이드 앱은 70개를 넘는다. 구글은 코틀린에 대해 자바보다 더 효율적이고 안전하며, 더 작은 코드베이스를 생성하면서도 자바와 100% 상호운용 가능하다고 설명한다. 자바 코드베이스와 코틀린 코드베이스를 공존하게 해 자바에서 코틀린으로 전환을 더 쉽게 할 수 있다고도 한다.

코틀린은 JVM기반의 언어이므로 인텔리J에서 많은 기능을 지원하고 있다. 이 책에서는 그러한 기능들에 대해서 여러가지 활용법을 알려주고 있다. 코틀린의 결에 맞게 자바 빈 대신 코틀린 값 중심의 프로그래밍, 자바 옵셔널 대신 널 가능성 타입, 람다, 컬렉션, 확장 함수, 결과 타입 등을 활용해 코드를 작성하면서 코틀린의 장점을 살리기 시작하면 전통적인 자바 객체 지향 코드보다 더 안전하고, 유지 보수하기 쉽고, 더 간결하면서 보기 좋은 코드를 작성할 수 있다. 오늘날 페이스북, 메신저, 인스타그램 등의 안드로이드 앱은 각각 100만줄 이상의 코틀린 코드를 갖고 있으며 전환율은 증가하고 있다. 그리고 전체적으로 안드로이드 코드베이스에 1천만줄 이상의 코틀린 코드가 있다.

이 책의 장점은 기존에 자바 코드와 코틀린 코드를 모두 활용해본 중급 개발자들에게 자바와 코틀린 언어의 차이점에 대해서 다양하게 알려주면서 자바 코드를 코틀린 코드로 변경하기 위해 필요한 인사이트를 준다는 점이다. 하지만 두 언어에 대해 모르는 초보 개발자들에게는 이해하기 어려운 용어들도 많이 존재한다. 또한 아직까지는 자바에 비해 코틀린은 자바보다 대중적이지 않기 때문에 더 적은 도구가 존재한다는 점이다. 또 코틀린과 자바의 상호운용성을 고려하는 도구는 복잡하다.자바와 코틀린 언어의 100% 상호운용성에도 모든 자바를 제거하고 코틀린으로 대체할 수 없으므로 새롭게 작성해야 하는 부분이 발생한다. 코틀린 코드가 자바 인터페이스로 구현된 코틀린 인터페이스를 호출하는 경우 코틀린의 null 검사 생략이 null을 허용하고, 나중에 null 포인터 예외를 생성할 수 있다. 코틀린과 자바 코드 간의 상호운용성 활성화하면 코틀린에 플랫폼 타입을 사용하게 한다. 플랫폼 타입은 코틀린 코드에서 제공하는 정적 안정성 대신 런타임 Null 포인터 역참조를 발생시켜 충돌을 일으킨다. 따라서 자바의 결로 되어 있는 코드를 코틀린 결로 새롭게 짜야 하는 상황이 발생하지만 그 동안 이에 대한 도서는 없었다. 이 책의 예제 코드는 https://java-to-kotlin.dev/code.html 주소와 https://github.com/java-to-kotlin/code 주소에서 확인할 수 있다.

개인적인 의견이지만 최근 소프트웨어는 수많은 레거시 표현들을 대체할 수 있는 방향으로 발전되고 있고 점점 더 일반화되어 가고 있다. 이런 상황에서 남이 만든 코드만 가져다 쓰기만 반복적으로 하다보면 조건반사에 의해 코드작성법을 잊어버릴 수 있다. 따라서 이러한 주제의 책은 소중하며 더 많이 읽혀져야 하므로 많은 분들에게 이 책을 추천하고 싶다.

※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?