서문
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
안녕하세요, Duncan과 Nat입니다. 이 서문을 읽고 계신다면 아마도 이 책의 나머지 부분을 읽는 데 몇 시간을 투자할지 결정하고 계실 것입니다. 그럼 본론으로 들어가 보겠습니다:
이 책은 Kotlin으로 컴퓨터를 프로그래밍하는 방법을 알려주지는 않습니다.
책을 쓰기 시작했지만 곧 Kotlin이 방대한 언어라는 사실을 깨닫고 책을 쓰는 데 생각보다 시간이 오래 걸릴 것이라는 사실을 알게 되었습니다. 또한 해당 분야에는 이미 훌륭한 책들이 많이 있고, 우리는 훌륭한 책들과 경쟁하는 것을 좋아하지 않습니다.
대신 우리가 운영하는 리팩터링 투 Kotlin이라는 워크숍을 기반으로 Java 개발자에게 Kotlin을 가르치는 데 집중하기로 결정했습니다. 이 워크숍은 기존 코드를 변환하여 Kotlin 언어를 가르치며, (마케팅 자료에 따르면) 기존 지식을 활용하여 Kotlin 채택을 가속화하려는 Java 팀을 위해 설계되었습니다.
이 책을 쓰기 시작했지만 곧 Kotlin은 여전히 방대한 언어이므로 오랫동안 집필해야 한다는 사실이 분명해졌습니다. 또한 의욕이 있고 경험이 많은 Java 개발자는 Kotlin의 대부분을 매우 빠르게 익힐 수 있다는 사실을 알게 되었습니다. 타깃 독자가 보자마자 알아보고 채택할 언어 기능에 대해 길게 설명하는 것은 애처롭게 느껴져서 그 아이디어를 포기했습니다:
이 책은 Kotlin 언어를 가르치지 않습니다.
그렇다면 왜 이 책을 읽어야 할까요? 저희는 Kotlin을 처음 도입할 때 사용할 수 있었으면 좋겠다고 생각했던 책을 썼기 때문입니다. 저희는 Java와 Java 에코시스템을 잘 아는 숙련된 프로그래머입니다. 여러분도 저희처럼 다른 여러 언어를 사용한 경험이 있을 것입니다. 여러분은 Kotlin의 기본을 배웠고, 이 언어를 최대한 활용하려면 시스템을 다르게 설계해야 한다는 것을 알고 있습니다. Java에서는 번거로운 일부 작업이 Kotlin에서는 훨씬 쉽고, 확인된 예외와 같은 일부 기능이 전혀 없다는 것을 알게 되었습니다. 단순히 Kotlin 구문으로 Java 코드를 작성하는 것으로 끝내고 싶지 않으실 것입니다.
기술적인 리더십 위치에 있거나 팀원들을 설득하여 Kotlin을 채택하는 데 성공했을 수도 있고, 프로젝트에 Kotlin을 도입하기 위해 정치적 자본을 투자했을 수도 있습니다. 이제 전환이 원활하게 이루어질 수 있도록 해야 합니다.
Java 코드베이스를 담당하고 있는데 Kotlin을 도입해도 기존의 비즈니스 크리티컬 코드가 불안정해지지 않도록 하고 싶을 수도 있습니다. 또는 Kotlin 프로젝트를 처음부터 시작하지만 디자인 본능이 Kotlin과 함수보다는 Java와 객체로 더 쉽게 향한다는 것을 깨달았을 수도 있습니다.
저희와 같은 경우라면 제대로 찾아 오셨습니다. 이 책은 사고와 설계를 Kotlin을 활용하도록 조정하는 데 도움이 될 것입니다. 하지만 유지 관리하고 ...