plzy의 개발 블로그

[Kotlin In Action] kotliin이란 무엇인가? #1 본문

독서록

[Kotlin In Action] kotliin이란 무엇인가? #1

plzyhappy 2022. 5. 11. 09:09

Android 개발을 할 때 java언어에서 kotlin 언어로 변경되고 있는 추세이다.

어떤 이유에서 kotlin으로 변경되는 걸까?

그걸 알기 전에 kotlin먼저 알아보자.

Kotlin 이란?

kotlin이란 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다.
자바와 코드가 호환이 되며 코드가 간결하고 간단하다.
성능도 자바와 같은 수준이니 kotlin을 안 쓸 이유는 없다.
이 말은 죽순 java가 쓰이는 곳에 kotlin이 다 쓰일 수 있다는 것이다.
ex) 구글, 트위터, 링크드인 등 java를 사용하고 있는데 kotlin을 쓰면 더 쉽게 개발할 수 있을 것이다.

정적 타입 언어

Kotlin은 Java와 마찬가지로 정적 타입 언어이다. 컴파일 시 타입을 검증해준다.
동적 타입 언어는 타입에 상관없이 모든 변수에 값을 넣을 수 있기 컴파일 시가 아닌 실행 시정일 때 검증이 일어난다.
정적 타입과 비교했을 때 좀 더 유연하게 개발할 수 있지만, 컴파일 시 걸러내지 못한다는 단점이 있다.

 

Kotlin 은 Java와 달리 명시적으로 타입을 적어 줄 필요는 없다.
왜냐하면 컴파일 시 타입을 유추할 수 있기 때문이다.
이런 기능을 타입 추론이라고 한다.
정적 타입 지정의 장점에는

  • 성능 : 실행 시점에 메서드가 어떤 타입인지 검증하는 과정이 필요 없으므로 호출이 빠르다.
  • 신뢰성 : 컴파일 시 타입을 검증하기 때문에 오류로 중단될 가능성이 줄어든다.
  • 유지 보수성 : 객체가 어떤 타입인지 알 수 있기 때문에 유지보수할 때 쉽게 할 수 있다.
  • 도구 지원 : 안전하게 리팩터링 할 수 있고, 코드 완성 기능을 제공하고, IDE의 다른 지원기능도 더 잘 만들 수 있다.

이러한 장점으로 좀 더 쉽게 개발할 수 있다.

함수형 프로그래밍과 객체지향 프로그래밍

kotlin은 객체지향 프로그래밍과 함수형 프로그래밍의 개념을 모두 사용할 수 있다.
이중 함수형 프로그래밍은

  • 일급 시민 : 함수를 변수로 받을 수 있고, 인자로 받거나 새로운 함수를 만들어서 반환할 수 있다.
  • 불변성 : 일단 만들어지면 내부 상태가 절대로 바뀌지 않는 객체를 사용해 프로그래밍을 만든다.
  • 부수 효과 없음 : 입력값이 같으면 항상 같은 값을 출력하는 순수 함수를 사용한다.

이러한 기능을 사용할 수 있다.

하지만 함수형 프로그래밍을 사용하기 강제하지는 않고, 상황에 따라 유동적으로 사용할 수 있다.

 

'독서록' 카테고리의 다른 글

[이펙티브 코틀린] 가변성을 제한하라 #1  (0) 2022.05.17
[Kotlin in Action] 코틀린의 철학 #2  (0) 2022.05.12