
Better Language than Java
코틀린 이란?
- statically typed programming language for modern multi-platform applications
- 100% interoperable with Java and Android by JetBrains, since 2011
코틀린의 장점
- JVM 100% 호환성 및 안정된 성능
- 보다 안전하고 직관적인 데이터 처리 (NPE, data/ enum/ sealed, object …)
- 강력한 확장성을 가진 모던 프로그래밍 언어 (extensions, delegation, HOF, …)
- 직관적이고 사용하기 편한 DSL (Domain Specific language)
- 멀티 플랫폼 JVM, Native, Web(JS)
- 다양한 IDE 및 프레임 워크
- 객체 지향 프로그래밍 + 함수형 프로그래밍의 멀티 패러다임
- 간결하면서도 생산성 있는 코딩
코틀린 빌드
- create and edit *.kt text source file
- compile and build to *Kt.class bytecode
- running *Kt.class using JVM

fun main() { printTen() helloWorld() printABCDE() } fun printTen() { println("3+7 = ${3 + 7}") } fun helloWorld() { println("Hello World!") } fun printABCDE() { "abcde".map{ it.uppercaseChar()}.forEach(::println) }
Greeting Project
fun main(args: Array<String>) { val greeting = Greeting("득윤", "안녕하세요") greeting.sayHello() greeting.sayHello("해피") val defaultGreeting = Greeting() defaultGreeting.sayHello() val hi = Greeting(to = "John") hi.sayHello() val bye = Greeting(msg= "하하하") //인자 지정해주기 bye.sayHello() }
main.main
package message class Greeting(val to: String = "밥", val msg: String = "반가워!") { //기본 값 init { println("init Greeting with") println("to = $to, msg = $msg") //문자열 템플릿 } fun sayHello() { sayHello(to) //내부 함수 호출 } fun sayHello(name : String) { //오버 로딩 println() println("Hi $name, $msg!") } }
message.Greeting