프로그래밍 언어/Kotlin

[Kotlin] 코틀린 언어 특징

happy_life 2022. 10. 6. 22:25

코틀린은 왜 배울까요? 최근들어 안드로이드도 java가 아닌 kotlin으로 코딩하고 있습니다. java를 대체할 수 있는 언어라고하는데요 최근에는 자바로 개발하던 백엔드 진영에서도 코틀린을 쓰는 경우가 있습니다. 이러한 코틀린 언어의 특징에 대해 알아보고자 합니다.

 

 

코틀린 언어 특징 - 객체지향

1. 프로그램을 수많은 객체라는 기본 단위로 나누고 이들의 상호작용을 서술하는 방식입니다. 데이터와 함수를 병합해 프로그램의 단위인 '객체' 및 '클래스'를 정의합니다.

 

2. 자료추상화

불필요한 정보는 숨기고 중요한 정보만 노출합니다.

 

3. 상속

연관된 클래스 간 상하위 관계를 두어 클래스를 선언합니다. ex) 동물 - 원숭이

 

4. 다형성

한 요소에 여러 개념을 넣어 놓는 것(개념에는 일관성이 있어야함). 

오버라이딩 - 같은 이름의 메소드가 서로 다른 클래스에서 서로 다른 동작을 수행하는 것

오버로딩 - 같은 이름의 메소드가 인자 형태에 따라 다른 동작을 수행하는 것

 

 

 

코틀린 언어 특징 - 자바와의 차이점

1. 정적 타입 지정 언어(타입 추론)

코틀린은 컴파일 시점에 타입을 검증할 수 있습니다. 따라서 자바와 달리 개발자가 타입을 선언하지 않아도 됩니다. 변하지 않는 다는 val과 변한다는 var 만을 사용합니다. 아래와 같은 코드에서 String이라는 형식을 개발자가 지정해주지 않아도 타입 추론이 가능합니다.

val other = "10000"

 

 

2. Null 안정성

코틀린은 널 값 허용여부를 컴파일 단계에서 검사합니다. 따라서 Null Pointer Exception과 관해 자바에 비해 더 자유롭습니다. 아래 그림처럼 null을 허용하지 않는 a라는 변수에 null을 넣으면 컴파일 시점에 NPE가 발생합니다. 참고로 String이라는 형을 적어준 것은 초기화 시점에 근거가 없어 코틀린에서 타입추론을 할 수 없기 때문입니다.

컴파일 시점 NPE 에러

 

 

3. 함수형 프로그래밍

코틀린은 함수형 프로그래밍을 지원합니다. 이러한 함수를 작성해 변수에 저장할 수도 있고, 다른 함수에 전달 혹은 반환할

수도 있습니다. 이를 통해 유지보수를 용이하게 하고 가독성을 높일 수 있습니다.

 

 

4. 동시성 프로그래밍(coroutine)

코루틴은 스레드와 기능적으로 같지만, 좀 더 가볍고 진화된 병렬 프로그래밍입니다. 코틀린은 이러한 코루틴을 지원합니다. 보통 함수는 중간에 중단되는 개념없이 쭉 실행되고 끝나지만, 코루틴은 어느정도 수행된 후 중단되었다가 다시 재개될 수 있는 것입니다.

 

 

5. 간결하고 표현력이 좋습니다.

간단히 예시를 들면 자바와 달리 ;를 사용하지 않고, 그 외에도 여러부분에서 간결하게 코드를 작성할 수 있습니다.

 

 

6.상호운용성/ 다중플랫폼이라는 특징을 갖습니다.

자바 코드와 동시에 사용될 수 있고, Common Kotlin에서 작성한 모든 코드들은 다른 플랫폼에서 동작이 가능합니다.

'프로그래밍 언어 > Kotlin' 카테고리의 다른 글

[Kotlin] null 정리  (0) 2022.10.11
[Kotlin] 코틀린 클래스, 생성자  (0) 2022.10.09
[Kotlin] 코틀린 함수  (1) 2022.10.08
[Kotlin] 코틀린 문자열과 배열  (1) 2022.10.08
[Kotlin] 코틀린 기본 타입  (1) 2022.10.07