코세라 강의 Kotlin for Java Developers 를 다시 듣고 있다. 이번에는 정리하면서 들으려고 한다.
코틀린은 함수형 프로그래밍과 객체지향 프로그래밍을 모두 지원하는 general-purpose 언어이다.
JetBrains에 의해 개발된 오픈 소스 프로젝트이다.
자바와 마찬가지로 statically typed 언어이나 코틀린에서는 타입을 생략할 수 있다.
똑같은 정보를 자바와 코틀린에서 어떻게 표현하고 있는지 보자.
// 예시 1. 자바
public class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public String getAge() {
return age;
}
}
// 예시 1. 코틀린
class Person(val name: String, val age: Int)
// 예시 2. 자바
public void updateWeather(int degress) {
String description;
Color color;
if (degrees < 10) {
description = "cold";
color = BLUE;
} else if (degrees < 25) {
description = "mild";
color = ORANGE;
} else {
description = "hot";
color = RED;
}
}
// 예시 2. 코틀린
fun updateWeather(degrees: Int) {
val (description, color) = when {
degrees < 10 -> "cold" to BLUE
degrees < 25 -> "mild" to ORANGE
else -> "hot" to RED
}
}
코틀린 컴파일러는 더 많은 종류의 에러를 막을 수 있도록 도와주기 때문에 자바보다 안전하다.
자바와 호환성이 뛰어나다. You can use Kotlin whenever you used Java before
JetBrains은 도구 회사이고, 코틀린은 JetBrains에서 만든 언어이다. 더 설명이 필요 없다.
코틀린은 몇몇 아이디어를 실험하기 위한 연구용 프로젝트가 아니다. 산업을 위한 실용적인 언어이다.
코틀린은 멀티 플랫폼 언어이다. Kotlin/JVM 뿐만 아니라 Kotlin/JS (Kotlin code -> JavaScript), Kotlin/Native (Kotlin code -> Native code)도 존재한다.
이와 같이 여러 플랫폼에서 코틀린을 통해 개발할 수 있도록 만든 궁극적인 목표는 코틀린이라는 하나의 언어로 풀스택 애플리케이션을 만들 수 있도록 하기 위함이다. 나아가 서로 다른 플랫폼에서 특정 비즈니스 로직이나 공통 코드를 공유할 수 있도록 하기 위함이다.
코틀린은 자바를 포함한 여러 다른 언어를 참고하여 만들어졌다. 자바의 어떤 점이 불편하고, 어떤 점이 부족한지 고려하여 불편한 점은 고치고, 부족한 점은 채워 만든 게 코틀린이다. 오늘 내용 중 가장 매력적인 코틀린의 특징은 바로 간결성이다. 중간에 굳이 코드를 길게 삽입한 이유는 코드로 봐야 얼마나 간결한지 와닿기 때문이다. 코틀린은 자바보다 훨씬 적은 코드로 같은 로직을 작성할 수 있다!