코틀린은 왜 배울까요? 최근들어 안드로이드도 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이라는 형을 적어준 것은 초기화 시점에 근거가 없어 코틀린에서 타입추론을 할 수 없기 때문입니다.
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 |