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

한빛미디어

독자리뷰

[도서리뷰] 자바에서 코틀린으로

moon***

|

2023-02-25

자바에서 코틀린으로

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

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

이 책은 Kotlin 언어를 가르쳐 주기 보다는 자바에서 코틀린 문법으로 코드를 마이그레이션하는 방법과 사고의 전환에 대해 설명해준다. 이 모든 과정은 점진적으로 이뤄지며, InteliJ IDE에 내장된 자동 리팩터링 도구를 활용한다.

이런 내용을 담고 있기에 기존 "자바의 방식"에서 "코틀린의 방식"으로 변환시 도움을 준다. 하지만 단순히 코틀린 방식으로 무조건 변경을 하는게 좋다는 것이라고 말하는것이 아니라 두 언어가 갖고 있는 점을 분석하고 다름을 설명해준다.

 

Why Kotlin?

- 간결성, 안전성, 상호운용성, 도구친화성 (4가지 목표)

- 코틀린은 가변 상태를 변경하는 것보다 불변 데이터를 변환하는 쪽을 더 선호한다.

- 코틀린은 동작을 명시적으로 작성하는 쪽을 더 선호한다.

- 코를린은 동적 바인딩보다 정적 바인딩을 더 선호한다.

- 코틀린은 특별한 경우를 좋아하지 않는다.

- 코틀린은 마이그레이션을 쉽게 하기 위해 자신의 규칙을 깬다.

 

자바 to 코틀린

일반적으로 두 언어 사이의 리팩터링은 보통 하나의 언어 내부의 리팩터링보다 어렵다. 시간도 많이 소요되고 위험성이 있다. 자바에서 코틀린으로 리팩터링을 진행하면 전형적인 자바 코드를 전형적인 코틀린으로 변경이 된다. 이후 코틀린 구문으로 만든다.

이 책을 읽기 위해서는 자바, 코틀린 언어 및 문법에 대한 기본적인 이해가 필요하다.

대부분 자바에서 코틀린으로 변경시 발생하는 사례 중심으로 설명을 해주기 때문에 개발자라면 편하게 접근이 가능하다.

코틀린 도구 사용

자바와 마찬가지로 코틀린도 컴파일 언어다. 따라서 코틀린 코드를 실행하기 전에 먼저 코드를 컴파일해야만 한다.

코틀린 코드 컴파일

코틀린 소스코드를 저장할 때는 보통 .kt라는 확장자를 파일에 붙인다. 코틀린 컴파일러는 자바 컴파일러가 자바 소스코드를 컴파일할 때와 마찬가지로 코틀린 소스코드를 분석해서 .class 파일을 만들어낸다. 코틀린 코드를 컴파일한 다음 java 명령으로 그 코드를 실행하는것이다.

자바-코틀린 변환기

코틀린을 처음 배웠는데 정확한 코틀린 문법이 기억나지 않는 경우 이 변환기를 유용하게 사용할 수 있다. 작성하고픈 코드를 자바로 작성해 복사한 후 코틀린 파일에 그 코드를 붙여 넣으면 변환기가 자동으로 같은 뜻의 코틀린 코드를 제안한다. 또는 자바 파일 하나를 통째로 코틀린으로 변환하고 싶으면 메뉴에서 코드 → 자바 파일을 코틀린 파일로 변환을 선택하면 된다.

 

요약

코틀린은 타입 추론을 지원하는 정적 타입 지정 언어다. 따라서 소스코드의 정확성과 성능을 보장하면서도 소스코드를 간결하게 유지할 수 있다.

코틀린은 객체지향과 함수형 프로그래밍 스타일을 모두 지원한다. 코틀린에서는 일급 시민 함수를 사용해 수준 높은 추상화가 가능하고, 불변 값 지원을 통해 다중 스레드 애플리케이션 개발과 테스트를더 쉽게 할 수 있다.

코틀린을 서버 애플리케이션 개발에 잘 활용할 수 있다. 코틀린은 기존 자바 프레임워크를 완벽하게 지원하는 한편, HTML 생성기나 영속화등의 일반적인 작업을 위한 새로운 도구를 제공한다.

코틀린은 무료며 오픈소스다. 또한 주요 IDE와 빌드 시스템을 완전히 지원한다.

코틀린은 실용적이며 안전하고, 간결하며 상호운용성이 좋다. 이는 코틀린을 설계하면서 일반적인 작업에 대해 이미 잘 알려진 해법을 채택하고, NullPointerException과 같이 흔히 발생하는 오류를 방지하며, 읽기 쉽고 간결한 코드를 지원하면서 자바와 아무런 제약 없이 통합될 수 있는 언어를 만드는데 초점을 맞췄다는 뜻이다.

 

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

닫기

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