1. 코틀린 언어의 특성
data class Person(
	val name: String,
	val age: Int? = null
)

fun main(){
	val persons = listOf(
		Person("영희", age = 29),
		Person("철수"),
	)
	val oldest = persons.maxBy{
		it.age ?: 0
	}
	println("가장 나이가 많은 사람: $oldest")
}
  1. 코틀린의 주요 특성
    1. 코틀린 용례: 안드로이드, 서버, 자바가 실행되는 모든 곳, 그 외의 용도
    2. 정적 타입 지정으로 인해 코틀린 성능, 신뢰성, 유지 보수성이 모두 좋아진다.
      1. 타입추론을 하지만 컴파일 시점에서 타입이 정해져 있다.
    3. 함수형 프로그래밍과 객체지향 프로그래밍의 조합이 코틀린을 안전하고 유연하게 한다.
      1. 코드 중복을 피할 수 있다.
      2. 안전한 동시성
      3. 테스트하기 쉽다.
    4. 코루틴을 쓰면 동시성, 비동기 코드를 자연스럽고 구조적으로 사용할 수 있다.
    5. 코틀린을 모든 목적에 사용할 수 있다. 코틀린은 오픈소스이며, 여러분의 참여를 환영한다.
  2. 코틀린이 자주 쓰이는 분야
    1. 백엔드지원: 코틀린 서버 프로그래밍
    2. 모바일 개발: 안드로이드는 코틀린 우선이다.
    3. 다중 플랫폼: IOS, JVM, JS 및 그 외의 플랫폼에서 비즈니스 로직을 공유하고 코드 중복을 최소화하기
  3. 코틀린의 철학
    1. 코틀린은 실용적인 언어다
    2. 코틀린은 간결하다
    3. 코틀린은 안전하다
    4. 코틀린은 상호운용성이 좋다
  4. 코틀린 도구 사용
    1. 코틀린 코드 설정과 실행
      1. 코틀린 온라인 놀이터
      2. IDE 플러그인
      3. 자바 - 코틀린 변환기
    2. 코틀린 코드 컴파일