Android 애플리케이션이 어떻게 작동하는지 궁금한 적이 있나요? 일상 활동에 도움이 되는 앱은 어떻게 만들어지나요? 확실히 이러한 앱을 만드는 데 도움이 되는 프레임워크와 언어의 전체 생태계가 있지만 Android 제작자가 직접 권장하는 것은 무엇입니까? 이러한 질문에 대한 답은 Kotlin입니다. Kotlin은 시중에 나와 있는 Android 애플리케이션 개발 프레임워크의 최신 추가 제품이자 Google에서 직접 지원하는 제품입니다.
Kotlin을 배우는 방법
Kotlin은 모바일 애플리케이션을 작성하는 데 사용되는 강력한 프로그래밍 언어이므로 역학을 배우기 전에 Kotlin의 목적과 기능을 이해하는 것이 중요합니다.
Kotlin이란 무엇인가요?
Kotlin은 모바일 애플리케이션 개발을 염두에 두고 특별히 설계된 오픈 소스 프로그래밍 언어입니다. 이는 코드 가독성 및 크로스 플랫폼 애플리케이션 개발과 같은 측면에서 Android용 기존 언어인 Java에 비해 경쟁 우위를 제공합니다. 모바일 애플리케이션 개발 이외의 Kotlin은 완전한 객체 지향 프로그래밍 언어입니다.
Kotlin은 Java에 비해 다양한 이점을 제공하므로 Google에서 적극 권장합니다. Kotlin의 구문은 Python의 구문과 유사하여 배우고 사용하기가 쉽습니다. 커뮤니티 지원이 증가함에 따라 사람들은 Kotlin으로 데이터 분석 라이브러리를 작성하고 있으며, 이는 Kotlin이 향후 기계 학습 분야에서 차세대 기술이 될 것임을 암시합니다.
Kotlin은 웹 애플리케이션 개발에도 사용됩니다. Kotlin 코드를 동등한 JavaScript 코드로 컴파일하는 기능은 Kotlin의 크로스 플랫폼 가능성의 세계를 열어줍니다. 즉, Kotlin에서 코드를 한 번만 작성하면 제품에 맞게 작동하는 모바일, 웹, 데스크톱 앱을 만들 수 있습니다. 이러한 사용 사례를 자세히 살펴보기 전에 Kotlin을 사용하면 다른 제품에 비해 어떤 이점이 있는지 잠시 알아보겠습니다.
Kotlin의 기능
Kotlin은 프로그래밍 언어로서 다양한 기능을 제공합니다. 그 중 일부는 다음과 같습니다:
간결한 코드
Java의 학습 곡선이 가파른 것으로 알려진 주요 이유 중 하나는 Java가 제공하는 상용구입니다. 그리고 Android 애플리케이션의 경우 Java는 모든 프로젝트에 훨씬 더 많은 상용구 코드를 추가합니다. Kotlin은 간단한 구문과 이해하기 쉬운 표기법으로 이 문제를 해결하는 것을 목표로 합니다.
두 언어의 전통적인 "Hello World" 프로그램을 비교하면 이를 엿볼 수 있습니다.
자바:
class Test {
public static void main {
System.out.println("Hello World!");
}
} 코틀린:
fun main() {
println("Hello World!")
} Kotlin은 main 함수를 최상위 수준으로 끌어올림으로써 코드 작성을 위해 항상 클래스를 선언해야 하는 부담을 덜어줍니다. 또한 인쇄 호출을 단순화하며 이는 언어 전체에 구현된 다른 단순화를 공정하게 표현합니다.
Null 안전성 향상
Null 포인터는 Java 개발자가 직면하는 가장 일반적인 문제 중 하나입니다. 시간이 많이 걸리고 불필요한 좌절감을 유발합니다. 대부분의 경우 이는 참조 변수에 액세스하기 전에 null인지 확인하지 않기 때문에 발생합니다.
Java에서는 전통적으로 다음과 같이 변수에 액세스하기 전에 if 케이스를 배치하여 이를 수행합니다.
// let foo be a variable
if (foo != null) {
foo.bar();
}
이 코드를 놓치면 애플리케이션에서 오류가 발생할 수 있습니다. Kotlin은 이 문제를 훌륭하게 해결하며, Kotlin 컴파일러는 기본적으로 컴파일 타임에 어떤 변수도 null 값을 갖는 것을 허용하지 않습니다. 따라서 앱 어딘가에서 null 검사가 누락되었거나 null 변수에 대해 작업하는 경우 컴파일러 시간 자체에 알림이 표시됩니다.
이는 널 포인터 버그가 최종 애플리케이션에 도달하는 것을 허용하지 않습니다. 또는 안전한 메서드 호출을 직접 구현할 수도 있습니다. Kotlin의 안전 호출을 사용하여 위의 코드를 작성하면 다음과 같습니다.
// let foo be a variable foo?.bar()
이 코드는 foo가 null이 아닌 경우 foo 개체의 bar 메서드를 호출하고 foo가 null인 경우 null을 반환합니다. 이를 통해 다음과 같이 복잡하고 연결된 호출을 쉽게 수행할 수 있습니다.
Java와의 상호 운용성
Kotlin은 기본적으로 Java 바이트코드로 컴파일됩니다. 이를 통해 Kotlin 코드와 함께 사전 컴파일된 Java 클래스를 간단하게 사용할 수 있습니다. Java와 Kotlin을 사용하여 애플리케이션을 작성할 수 있으며 모두 Java 바이트코드로 컴파일되어 Kotlin 및 Java 부분 내에서 자유롭게 상호 운용될 수 있습니다. 모든 코드를 한 번에 마이그레이션할 필요가 없으므로 대규모 레거시 Java 애플리케이션을 Kotlin으로 원활하게 마이그레이션할 수 있습니다.
그 외에도 Android Studio와 같은 스마트 IDE는 Java 소스 코드를 Kotlin으로 즉시 변환할 수 있습니다. 즉, IDE만 사용하면 기존 Java 클래스를 Kotlin 클래스로 간단히 변환할 수 있습니다.
JavaScript로 변환(트랜스파일링)
Kotlin은 코드를 JavaScript로 트랜스파일할 수 있는 옵션도 제공합니다. 트랜스파일이란 단순히 한 언어로 작성된 소스 코드를 다른 언어로 작성된 소스 코드로 변환하는 것을 의미합니다. Kotlin을 사용하면 웹 및 데스크톱 플랫폼에서 실행할 수 있는 앱을 작성할 수 있습니다.
현재 공식 문서에 따르면 현재 버전의 Kotlin은 JavaScript 환경용 ES5.1을 대상으로 합니다. 이는 ES6과 함께 제공되는 일부 주요 개선 사항의 이점을 누릴 수 없음을 의미합니다. 또한 현재는 Kotlin 코드만 동등한 JavaScript로 변환하는 것을 지원하며 Kotlin으로 작성되지 않은 프로젝트에 있는 모든 항목은 JavaScript로 변환되지 않습니다. 이는 개선의 여지가 많습니다.
Kotlin 네이티브를 사용한 네이티브 변환
Java 기반 언어로 작성된 애플리케이션을 실행하려면 가상 머신이 필요합니다. 모든 Java 애플리케이션은 대상 호스트에 JVM(Java Virtual Machine)을 설치해야 합니다. 현재 버전의 Kotlin에도 동일한 요구 사항이 필요하지만 이러한 제한 사항을 적용할 수 있도록 Kotlin Native라는 기술이 개발되고 있습니다.
Kotlin Native는 바이트코드가 아닌 네이티브 실행 파일로 코드를 컴파일하는 것을 목표로 합니다. 그러면 이러한 실행 파일은 가상 머신 없이 실행될 수 있습니다. 이렇게 하면 시스템이 Kotlin 애플리케이션을 실행하기 위해 가상 머신을 실행할 필요가 없으므로 성능이 향상됩니다.
Kotlin은 어떤 용도로 사용되나요?
Kotlin은 기본 Android 애플리케이션 개발을 위한 기본 언어로 성장하고 있습니다. 라이브러리를 배우기 전에 몇 가지 주요 사용 사례를 살펴보겠습니다.
모바일 애플리케이션 제작용
Java는 Kotlin 이전에 모바일 애플리케이션을 작성하기 위한 전통적인 언어였습니다. Android 프레임워크가 기본적으로 실행되는 애플리케이션을 위해 JVM(Java Virtual Machine)을 지원했기 때문입니다. 그러나 Java로 코드를 작성하는 것은 개발자에게 가장 좋은 경험이 아니며 Android 프레임워크는 프로젝트에 더 많은 상용구를 추가합니다.
Kotlin이 만들어진 주된 이유는 기본 Android 애플리케이션을 쉽게 작성하기 위해서였습니다. Kotlin은 기존 Java 구문을 단순화하고 Java의 일반적인 상용구를 줄여 이 작업을 효과적으로 수행합니다.
백엔드 구축용
Kotlin은 서버 측 개발을 위한 강력한 대안으로 성장하고 있습니다. 이전에 언급했듯이 Kotlin은 Java가 일반적으로 작동하는 모든 경우에 작동합니다. 두 언어 모두 비슷한 바이트코드 실행 파일로 컴파일되고 바이너리를 실행하려면 동일한 JVM이 필요하기 때문입니다.
또한 Java 라이브러리를 Kotlin에서 직접 사용할 수 있으므로 소스 코드의 언어를 교환하여 두 가지를 최대한 활용할 수 있습니다. 아직 Kotlin으로 작성되지 않은 라이브러리는 Java 바이트코드를 통해 직접 사용할 수 있으며, Kotlin의 기능을 사용하여 애플리케이션에 작성된 비즈니스 로직을 단순화할 수 있습니다.

"Career Karma는 제가 가장 필요할 때 제 삶에 들어왔고 빠르게 부트캠프에 적응할 수 있도록 도와주었습니다. 졸업한 지 두 달 만에 저는 제 삶의 가치와 목표에 맞는 꿈의 직업을 찾았습니다!"
Venus, Rockbot의 소프트웨어 엔지니어
귀하에게 적합한 부트캠프 찾기
프런트엔드 생성용
Kotlin은 JavaScript로의 변환을 지원하며, 이 기능을 통해 웹 브라우저에서 실행할 수 있는 애플리케이션을 작성할 수도 있습니다. Kotlin/JS 모듈은 이 기능을 용이하게 합니다. kotlin.js 플러그인을 통해 인터페이스를 제공합니다. 이는 JavaScript로 프런트엔드 애플리케이션을 구축하는 것을 목표로 하는 Kotlin 프로젝트 설정 프로세스를 단순화합니다.
Kotlin을 사용하면 유형이 안전한 React 애플리케이션을 매우 쉽게 작성할 수 있습니다. React-redux, React-Router 및 Styled-Components와 같은 JavaScript 기술은 Kotlin/JS에서 지원되며 이를 다른 라이브러리와 함께 쉽게 사용하여 구성 요소 및 라이브러리를 구축할 수 있습니다.
Gradle 플러그인 작성용
Gradle 플러그인은 빌드 로직의 일부를 정의하는 코드 조각입니다. 즉, Gradle 기반 프로젝트를 최종 실행 파일로 빌드하는 방법을 정의할 수 있습니다. Gradle 플러그인은 JVM 바이트코드로 컴파일되는 모든 언어로 작성될 수 있습니다.
Groovy는 Java 이후 Gradle 플러그인을 작성하기 위한 전통적인 선택이었습니다. Kotlin은 JVM 바이트코드로도 컴파일되므로 Gradle 플러그인을 작성하는 데 사용할 수 있습니다. Kotlin은 유형이 안전하고 간결한 코드와 같이 Groovy에 비해 추가적인 이점을 제공합니다.
Kotlin 학습
Kotlin이 다양한 용도로 사용되는 고급 프로그래밍 언어라는 점을 고려하면 배울 점이 많습니다. 다음은 시작하는 데 도움이 되는 리소스 목록입니다.
최고의 Kotlin 리소스
Kotlin은 오픈 소스 프로그래밍 언어이기 때문에 사람들은 Kotlin을 쉽게 시작하는 데 도움이 되는 콘텐츠를 만들려고 노력해 왔습니다. 먼저 Kotlin에서 제공되는 무료 및 유료 동영상 강좌를 살펴보겠습니다.
Android 개발자 교육 과정
- 플랫폼:Android 개발자 웹사이트
- 기간:강좌마다 다름
- 가격:무료
- 전제조건:없음
- 시작일:주문형
교육 과정은 Kotlin의 첫 번째 단계를 수행하는 데 도움이 되는 데 초점을 맞춘 완벽한 동영상 과정 및 실습 모음입니다. Android 제작자가 직접 선별한 콘텐츠 목록이 포함된 이 컬렉션은 모든 수준의 학습자에게 훌륭한 리소스가 될 것입니다. 강좌는 난이도와 주제별로 나누어져 있으므로 귀하의 경험 수준에 맞는 강좌를 쉽게 찾을 수 있습니다.
Kotlin 과정 – freeCodeCamp.org의 초보자를 위한 튜토리얼
- 플랫폼:유튜브
- 소요시간:약 2.5시간
- 가격:무료
- 전제조건:없음
- 시작일:주문형
FreeCodeCamp는 다양한 기술 주제에 대한 최고의 강좌를 무료로 제공합니다. Kotlin 과정은 처음부터 언어에 대한 이해를 구축하므로 전제 조건이 필요하지 않습니다. Kotlin 언어의 필수 요소에 중점을 두고 모든 기능을 자세히 설명합니다. 이 과정을 목록에 있는 다른 고급 과정과 결합하면 Kotlin을 스스로 배울 수 있는 완벽한 로드맵을 갖게 될 것입니다.
Android 개발 과정 – freeCodeCamp.org의 Kotlin 튜토리얼로 네이티브 앱 구축
- 플랫폼:유튜브
- 소요시간:약 4시간
- 가격:무료
- 전제조건:Kotlin 구문에 대한 기본 이해
- 시작일:주문형
이름에서 알 수 있듯이 이 과정은 Kotlin의 가장 널리 사용되는 사용법인 Android 개발을 가르치는 것을 목표로 합니다. 이 과정은 시간을 낭비하지 않고 소프트웨어 설계의 가장 기본적인 개념 중 하나인 MVVM 아키텍처부터 시작합니다. 이는 코스의 목표뿐만 아니라 난이도를 나타내는 좋은 척도입니다.
과정을 마치면 Android 앱에서 Kotlin이 작동하는 방식과 프로덕션 수준의 Android 앱이 생성되는 방식을 확실하게 이해하게 됩니다. 이 과정을 시작하기 전에 Kotlin의 초급 과정을 수강하는 것이 좋습니다.
Tim Buchalka, Jean-Paul Roberts의 Kotlin을 사용한 Android 앱 개발 마스터클래스
- 플랫폼:Udemy
- 기간:62시간
- 가격:할인 시 약 $7, 기타 할인 시 약 $90
- 전제조건:없음
- 시작일:주문형
Kotlin 및 Android 개발 요구 사항을 모두 충족하는 하나의 과정을 찾고 있다면 여기가 검색을 끝내기에 가장 적합한 장소입니다. 이 과정에는 Kotlin 언어의 기본에 대한 적절한 섹션이 구성되어 있으며, Android 기본에 대한 후속 강의와 풍부한 프로젝트를 통해 학습한 내용을 빠르게 활용합니다.
이 과정의 가장 주목할만한 특징은 과정 전반에 걸쳐 적절한 간격으로 분산되어 있는 충분한 수의 프로젝트입니다. 이를 통해 학습한 모든 내용을 활용하고 언어에 대한 탄탄한 이해를 구축할 수 있습니다.
Kotlin 도서
동영상 강좌 외에도 Kotlin을 시작하는 데 도움이 되는 다양한 책이 있습니다. 주요 내용은 다음과 같습니다:
'Head First Kotlin:두뇌 친화적인 가이드'(Dawn Griffiths, David Griffiths 저작)
https://images-na.ssl-images-amazon.com/images/I/51MPXtX7fGL._SX430_BO1,204,203,200_.jpg 이 글을 쓰는 시점에 Amazon에서 약 41달러에 판매되는 이 책은 Kotlin 세계에 첫 발을 내딛기 위한 최고의 책 중 하나입니다. 헤드 퍼스트 시리즈는 가장 어려운 개념을 매우 친근한 톤으로 설명하기 때문에 초보자에게 가장 적합한 것으로 알려져 있습니다. Head First Kotlin은 기본 구문부터 람다 및 고차 함수에 이르기까지 프로그래밍 언어의 모든 깊이를 다루고 있습니다.
Josh Skeen, David Greenhalgh의 'Kotlin 프로그래밍:Big Nerd Ranch 가이드'
https://images-na.ssl-images-amazon.com/images/I/418ucINElLL._SX358_BO1,204,203,200_.jpg 현재 가격이 약 34달러인 이 책은 프로그래밍 경험 수준에 관계없이 모든 사람에게 훌륭한 자산입니다. 이 책은 실습 예제와 주요 개념에 대한 명확한 설명을 통해 독자에게 Kotlin 프로그래밍 언어의 기본을 안내합니다. 이 책은 또한 독자들에게 IntelliJ IDEA 개발 환경을 소개합니다.
Dmitry Jemerov, Svetlana Isakova의 'Kotlin in Action'
https://images-na.ssl-images-amazon.com/images/I/51Mov862yoL._SX397_BO1,204,203,200_.jpg 현재 가격은 약 36달러입니다(최신 가격은 여기에서 확인하세요). 이 책은 Java에 대한 배경 지식이 있고 Kotlin을 배우려는 사람들을 위한 최고의 옵션 중 하나입니다. 이 책은 Kotlin 기술을 완성하려는 숙련된 전문가를 위한 최고의 리소스입니다. 모범 사례, Java와의 결합 및 DSL 입문서와는 별도로 언어의 역학을 다룹니다.
Kotlin 리소스
비디오 강좌와 책 외에도 인터넷에는 수많은 튜토리얼이 있습니다. 다음은 시작하기에 좋은 몇 가지 요소입니다:
KotlinLang.org의 튜토리얼
Kotlin 조직에서 자체적으로 제공하는 이 튜토리얼은 프로그래밍 언어를 시작하는 데 도움이 되는 일련의 초보자 친화적인 텍스트 및 비디오 리소스를 제공합니다. 랜딩 페이지에는 Koans 및 명령줄 컴파일러를 사용하여 Kotlin을 시작하는 다양한 방법에 대한 링크가 포함되어 있습니다.
초보자를 위한 Kotlin 튜토리얼:Guru99.com의 Kotlin 프로그래밍 배우기
역사, 기능, 설정은 물론 고급 사용 사례에 대한 풍부한 콘텐츠가 포함된 이 과정은 Kotlin을 마스터하기 위한 완벽한 로드맵을 제공합니다. 튜토리얼 전반에 걸쳐 유용한 하위 텍스트를 제공하므로 시작하기에 좋은 곳입니다. 그러나 주어진 내용에 대해 전문가가 되기에는 실용적이지 않은 것 같습니다. 고급 콘텐츠를 찾고 있다면 이를 고급 과정과 결합하는 것이 좋습니다.
TutorialsPoint.com의 Kotlin 튜토리얼
이 리소스는 학습을 위한 안내 튜토리얼이라기보다는 Kotlin의 하위 주제를 설명하는 용어집처럼 느껴집니다. 그러나 각 하위 주제에 대한 내용의 깊이는 훌륭하며 일단 언어의 기본을 마치고 도움이 필요할 때마다 참조할 수 있는 리소스를 찾고 있다면 이는 중요한 자산이 될 수 있습니다.
Kotlin을 배우는 데 시간이 얼마나 걸리나요?
Kotlin이 강력하고 상세한 프로그래밍 언어라는 점을 고려하면 일반적으로 Kotlin을 잘 시작하는 데 최대 4주가 걸립니다. 1~2주 동안 예제 프로젝트를 통해 철저한 연습을 하면 기본 사항을 마음 속에 명확하게 이해하여 이 언어의 잠재력을 최대한 발휘할 수 있습니다.
전문적인 애플리케이션을 구축할 만큼 Kotlin을 잘 배우고 싶다면 2개월 간의 정규 학습과 연습을 기대해 보세요. 그 이상의 것은 Kotlin 기술을 완벽하게 만들어줄 뿐입니다.
Kotlin을 공부해야 할까요?
Kotlin에 대한 훌륭한 교육 과정과 콘텐츠 목록을 모은 후 이제 가장 중요한 질문에 직면하게 되었습니다. Kotlin을 배워야 할까요?
이에 대한 대답은 간단합니다. 소프트웨어 개발의 세계에 뛰어들고 싶거나 Java에 대한 사전 경험이 있고 경험을 업그레이드하려는 경우 Kotlin은 시간과 리소스를 투자할 수 있는 최고의 기술입니다. 매우 쉬운 프로그래밍과 다양한 사용 사례를 제공하므로 모든 플랫폼에서 애플리케이션 개발을 위한 완벽한 대안이 됩니다.
Android 개발자로 경력을 쌓고 싶다면 Kotlin은 직업 요구 사항을 충족할 수 있는 기본 요소 중 하나입니다. 애플리케이션 개발의 역학을 탐구하기 전에 Kotlin의 탄탄한 기초가 필수적입니다.