[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 | fun main() { |
코틀린으로 작성한 간단한 메인함수와 문자열 출력이다.
Tools > Kotlin > Show Kotlin Bytecode에서 자바로 디컴파일
1 | //HelloKotlin.decompiled.java |
- 코틀린의 main 함수가 자바의 HelloKotlin 클래스의 멤버인 메소드로 동작하는 것을 볼 수 있다.
- 자바가 사용하는 표준입출력으로 사용자가 출력하고자 하는 문자열로 출력한다.
- 코틀린은 이것을 더 간편하게 한다.
println 함수에 ctrl+b 를 눌러보자 코틀린의 Console 라이브러리로 이동된다.
1 | public actual inline fun println(message : Any?) { |
코틀린의 println 함수는 System.out.println을 호출하고 있다.
다시 한번 여기서 println에 ctrl + b를 누르면
1 | public void println(Object x) { |
결국에는 자바에 있는 print stream 라이브러리의 println을 사용한다는 것을 볼 수 있다.
→ 코틀린의 하위 API는 결국 자바의 라이브러리를 사용하고 있다.
프로그램 외부에서 인자 받아들이기
1 | fun main(args: Array<String>) { |
작성하는 class의 Edit Configurations > Program arguments 에 띄어쓰기로 구분,
args 이름의 String 배열에 인자를 정의해본다.
그 후 위 소스코드 처럼 작성하고 실행해보면 설정에 추가했던 요소들이 출력된다.
1 | fun main(args: Array<String>) { |
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
[Kotlin] 1장. 코틀린이란 무엇일까