[Kotlin] 1장. 코틀린이란 무엇일까

1장. 코틀린이란 무엇일까?

코틀린의 활용

  • Full Stack, 웹 개발, Android, iOS, 임베디드, IoT 개발
  • JetBrains에서 개발, 보급
  • 코드 간결, 다재 다능, 높은 호환성
  • 세미콜론은 옵션
  • 변수는 Nullable, Not Null로 사용 가능
  • Kotlin/JVM - 자바 가상 머신 상에서 동작하는 앱 구현
  • Kotlin/JS - 자바 스크립트 → 브라우저에서 동작하는 앱 구현

Kotlin/Native는 다음 플랫폼을 지원한다

  • Kotlin/Native - LLVM 기반(ARM, x86)의 Native 컴파일 지원, 여러 타깃 앱 구현

    • iOS (arm32, arm64, emulator, x86_ 64)

    • MacOS (x86_ 64)

    • Android (arm32, arm64)

    • Windows (mingw, x86_ 64)

    • Linux (x86 _64, arm32, MIPS, MIPS little endian)

    • Web Assembly (wasm32) : 웹 엔진

      → 현존하는 모든 컴퓨터에서 Kotlin을 돌릴 수 있다.

코틀린의 특징

  • 자료형에 대한 오류를 미리 잡을 수 있는 정적 언어 (Statically Typed)
    • 정적 형식 : 컴파일러가 타입 검증
  • Null Pointer로 인한 프로그램 중단 예방 → NPE에서 자유롭다.
  • 데이터형 선언 시 널 가능한 형식, 불가능한 형식 지원
  • 자바와 완벽하게 상호 운영이 가능
  • 간결하고 효율적
  • 함수형 프로그래밍, 객체 지향 프로그래밍 가능
1
2
3
fun main() {
println("Hello Kotlin")
}

코틀린으로 작성한 간단한 메인함수와 문자열 출력이다.

Tools > Kotlin > Show Kotlin Bytecode에서 자바로 디컴파일

1
2
3
4
5
6
7
8
9
//HelloKotlin.decompiled.java
public final class HelloKotlinKt {
public static final void main() {
String var0 = "Hello Kotlin";
boolean var1 = false;
System.out.println(var0);
}
public static void main(String[] var0) {main();}
}
  • 코틀린의 main 함수가 자바의 HelloKotlin 클래스의 멤버인 메소드로 동작하는 것을 볼 수 있다.
  • 자바가 사용하는 표준입출력으로 사용자가 출력하고자 하는 문자열로 출력한다.
  • 코틀린은 이것을 더 간편하게 한다.

println 함수에 ctrl+b 를 눌러보자 코틀린의 Console 라이브러리로 이동된다.

1
2
3
public actual inline fun println(message : Any?) {
System.out.println(message);
}

코틀린의 println 함수는 System.out.println을 호출하고 있다.

다시 한번 여기서 println에 ctrl + b를 누르면

1
2
3
4
5
6
7
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}

결국에는 자바에 있는 print stream 라이브러리의 println을 사용한다는 것을 볼 수 있다.

→ 코틀린의 하위 API는 결국 자바의 라이브러리를 사용하고 있다.

프로그램 외부에서 인자 받아들이기

1
2
3
4
5
6
fun main(args: Array<String>) {
println(args[0])
println(args[1])
println(args[2])
println(args[3])
}

작성하는 class의 Edit Configurations > Program arguments 에 띄어쓰기로 구분,

args 이름의 String 배열에 인자를 정의해본다.

그 후 위 소스코드 처럼 작성하고 실행해보면 설정에 추가했던 요소들이 출력된다.

1
2
3
4
5
6
fun main(args: Array<String>) {
println("args[0] = ${args[0]}")
println(args[1])
println(args[2])
println(args[3])
}

main()은 최상위 함수로 실행 진입점이다.

  • 자바와 같은 객체 지향 언어는 프로그램을 실행하기 위해 클래스와 그 안의 main( ) 필요
  • 코틀린은 클래스 없이 main( ) 함수 하나로 실행 가능

도구 창의 단축키: 윈도우(맥)

  • Messages Alt + 0 (Cmd + 0)
  • Project Alt + 1 (Cmd + 1)
  • Favorites Alt + 2 (Cmd + 2)
  • Run Alt + 4 (Cmd + 4)
  • Debug Alt + 5 (Cmd + 5)
  • TODO Alt + 6 (Cmd + 6)
  • Structure Alt + 7 (Cmd + 7)
  • Terminal Alt + F12 (Option + F12)

Reference

네이버 커넥트 재단 부스트코스 코틀린 프로그래밍 기본 1

Author

MoonDoni

Posted on

2021-07-11

Updated on

2021-07-11

Licensed under

댓글