재밌고 어려운 IT를 이해해보자~!

코틀린 본문

개인공부

코틀린

언제나즐거운IT 2024. 11. 18. 11:21

Kotlin은 Java의 한계와 복잡성을 극복하고자 탄생!

그리고 안드로이드 앱 개발을 더 간결하고 생산적으로 만들기 위한 목적으로 개발되었고, 공식적으로 안드로이드 앱 개발 언어로 사용할 수 있습니다.

 

Kotlin 과 Java의 차이

1. 보다 간결한 문법
Kotlin은 Java에 비해 훨씬 간결한 문법을 가지고 있습니다. 예를 들어, 변수를 선언할 때 타입 추론을 사용하므로 데이터 타입을 명시적으로 선언하지 않아도 됩니다.

 

2. Null 안정성
Kotlin은 널 포인터 예외를 방지하기 위한 기본적인 지원을 제공합니다.
변수에 null을 할당하려면 타입 뒤에 물음표(?)를 붙여야 하며, 이를 통해 안전한 널 처리가 가능해집니다.

 

3. 확장 함수
Kotlin은 기존 클래스의 메서드를 확장하여 사용할 수 있는 확장 함수를 제공합니다.
이로써 기존 클래스에 새로운 기능을 추가하거나 라이브러리 클래스를 수정하지 않고도 사용자 정의 메서드를 호출할 수 있습니다.

 

4. 함수형 프로그래밍 지원
Kotlin은 함수형 프로그래밍 개념을 강력하게 지원합니다.
고차 함수, 람다 표현식, 스트림과 유사한 연산자 등을 통해 함수형 스타일의 코드를 작성할 수 있습니다.

 

5. 자동 타입 변환
Kotlin은 스마트 캐스팅을 통해 조건문에서 타입 검사 후 자동으로 타입 변환을 수행할 수 있습니다.
이로써 코드가 간결해지고 오류 가능성이 줄어듭니다.

 

6. 자바와의 상호 운용성
Kotlin은 기존의 자바 코드와 원활하게 통합되며, 자바 라이브러리를 그대로 사용할 수 있습니다.
또한 안드로이드 스튜디오에서 기존 자바 프로젝트를 Kotlin으로 변환하는 기능을 제공합니다

 

어떻게 상호 호환이 가능한걸까?
Java와 Kotlin 모두 Source + Compile -> Byte Code class를 만나 이를  JVM를 통해 각 운영체제 Window , Mac, Linux에 맞게 운영되기 때문이다. 

 

기존에 Java로 짜면 10~20 Line이 나오는 코드가 Kotlin은 두세 줄이면 표현이 가능하다고 합니다.
그리고 최신 안드로이드 버전에서는 최신 버전의 Java를 지원하지 않기 때문에 Google에서도  Kotlin을 안드로이드 메일 개발 안어로 정하고 있다고 합니다. 

 

Kotlin 단점

1. 컴파일 시간
Kotlin 코드는 자바 코드에 비해 컴파일 시간이 조금 더 오래 걸릴 수 있습니다.

이는 Kotlin 컴파일러의 추가 기능과 안전성 검사 때문에 발생하는 부분이며, 일부 큰 프로젝트에서는 컴파일 시간이 더 오래 걸릴 수 있습니다.

2. 런타임 라이브러리 크기
Kotlin 앱은 Kotlin 런타임 라이브러리를 포함하게 되므로 앱 크기가 약간 커질 수 있습니다. 이것은 작은 앱에서는 문제가 되지 않지만, 특히 리소스 제한된 환경에서 작업할 때 중요한 고려사항일 수 있습니다.

3. Android 리소스 관리
Kotlin은 Android 개발에서는 매우 인기가 있지만, 일부 안드로이드 리소스 관리 도구와 라이브러리는 여전히 Java를 더 잘 지원하는 경우가 있습니다. Kotlin에서는 이러한 도구와 라이브러리를 사용할 때 몇 가지 추가 설정이 필요할 수 있습니다

 

 

 

코틀린 문법!

https://cjw-awdsd.tistory.com/20

 

[Kotlin] 코틀린 문법 총정리

코틀린을 문법을 한번에 총정리 하려한다.(까먹을 때마다 찾아보려고..) 1. 변수 var : 변수값 변경 가능 val : 선언시에만 초기화 가능(변경 불가능) -> JAVA의 final fun main(){ var a: Int //자료형 선언시 -

cjw-awdsd.tistory.com

 

 

 

*참조

https://toberich.co.kr/entry/Kotlin-%EC%BD%94%ED%8B%80%EB%A6%B0%EA%B3%BC-%EC%9E%90%EB%B0%94%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%9E%A5%EB%8B%A8%EC%A0%90-%EB%B9%84%EA%B5%90

'개인공부' 카테고리의 다른 글

CMS  (0) 2024.11.25
안드로이드 스튜디오 구조  (0) 2024.11.19
에플리케이션 생명주기  (0) 2024.11.17
Nginx  (2) 2024.11.11
CodeIgniter  (2) 2024.11.07
Comments