본문 바로가기
Kotlin/Kotlin 프로그래밍

[Kotlin] 코틀린 시작하기

by 주 녕 2021. 3. 30.
728x90

모든 내용은 Do it! 코틀린 프로그래밍을 바탕으로 정리한 것입니다. 

 

코틀린(Kotlin)의 탄생 배경

코틀린은 JetBrains에서 개발한 언어

 

  • Kotlin/JVM
    • JVM(Java Virtual Machine)
    • 자바 애플리케이션이나 안드로이드 어플리케이션을 만들 수 있음
  • Kotlin/JS
    • JS(JavaScript)
    • 데이터베이스부터 서버, 클라이언트까지 다루는 풀스택 웹 개발이 가능
  • Kotlin/Native 
    • LLVM 컴파일러를 통해 애플 iOS, 맥 iOS, 안드로이드, 윈도우, 리눅스, 웹 전용 환경의 코드를 만들 수 있음
    • 안드로이드와 iOS에서 모두 구동하는 어플리케이션을 만들 수 있음
    • 임베디드, IoT 등을 타깃으로 한 어플리케이션을 만들 수 있음

 

코틀린의 장점

  • 자료형 오류를 미리 잡을 수 있는 정적 언어
    • 프로그램이 컴파일될 때 자료형을 검사하여 확정하는 언어 → 자료형 오류를 초기에 발견할 수 있음 (안정성)
  • NULL 포인터 예외(NPE)로 인한 프로그램의 중단을 예방할 수 있음
  • 아주 간결하고 효율적임
  • 함수형 프로그래밍과 객체 지향 프로그래밍이 모두 가능함 == 다중 패러다임 언어
  • 세미콜론을 생략할 수 있음

 

코틀린 환경 세팅

책에서는 Java 8 버전을 사용했지만, 이미 Java 11 버전을 사용하고 있었으므로 11 버전으로 진행함

그 외의 내용은 이미 인텔리제이와 안드로이드 스튜디오 코틀린을 사용하고 있었으므로 생략함

 

프로젝트 뜯어보기

코틀린의 main() 함수는 프로그램 실행의 진입점

→ main() 함수가 있는 파일 이름을 기준으로 자바 클래스가 자동 생성됨

[Tools > Kotlin > Show Kotlin Bytecode] 메뉴에서 [Decomplie] 버튼을 눌러 확인 가능

decompile 화면

HelloWorldKt 클래스에 속한 멤버 메소드로 선언되어 있음

→ JVM에 실행되기 위해 문자열은 String var0으로 선언되었고, System.out.println()에 의해 콘솔에 출력

 

public static final void main(String[] var0)
  • public : 외부 어디에서도 접근이 가능함
  • static : 정적 메소드 (정적 메모리 영역에 객체가 만들어지므로 객체의 생성 없이 호출 가능)
  • final : 최종 메소드
  • void : 메소드 반환값이 없음
fun main(args: Array<String>){
	// String[] args로 변환됨
}

 

728x90

댓글