[Kotlin] 코틀린 개념 정리
# Language/Kotiln

[Kotlin] 코틀린 개념 정리

 

주제

  • 코틀린 기초 개념 정리

 


 

1. 코틀린에 대해 알아보기

1.1 코틀린이란?

1.1.1 코틀린이란?

  • 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어로, 기존 Java 언어나 프레임워크와 함께 작동할 수 있다.
  • 구글에서 지정한 안드로이드 공식 지원 언어이며, 여러 IT 대기업들이 채택한 각광받는 언어
  • Jetbrains에서 개발하였음

 

1.2 특징

1.2.1 멀티 패러다임 언어

  • 함수형 프로그래밍과 객체 지향 프로그래밍을 모두 지원하는 멀티 패러다임 언어이다.
# 함수형 프로그래밍
- 함수는 일반 값처럼 변수에 저장할 수 있고, 다른 함수의 인자로도 넘길 수 있다
- 불변 객체를 사용하여 프로그램을 작성한다.
- 입력이 같으면 항상 같은 출력을 보장하고, 함수 외부의 다른 객체를 건드리지 않는다. (순수함수)

 

1.2.2 자바와의 호환성

  • 기존의 자바 언어를 대체하여 사용할 수 있고, 자바로 제공되는 라이브러리를 그대로 사용할 수 있다

 

1.2.3 Null Safety 언어

  • Kotlin에서는 Null 값 허용 여부를 명확히 구분하고, Compile 단계에서 오류를 잡아주기 때문에 런타임 오류가 발생하는 경우가 대폭 감소한다.

 

1.2.4 정적 타입 지정 언어

  • 코틀린은 정적 타입 지정 언어이다.
  • 타입 추론을 지원하기 때문에 개발자가 타입을 선언하지 않아도 된다.
  • 컴파일러가 문맥상 변수 타입을 유추함
# 정적 타입 지정 언어 vs 동적 타입 지정 언어

1) 정적 타입 지정 언어
- C, C++, Java, Kotlin 등의 언어
- 자료형을 컴파일 시점에서 결정함, 타입 에러로 인한 문제점을 초기에 발견 가능
- 변수, 함수의 반환 타입 등을 개발자가 지정해줘야 한다.

2) 동적 타입 지정 언어
- Javascript, Python, Ruby 등의 언어
- 자료형을 실행 시점에서 결정
- 타입 없이 변수를 선언하여 값을 지정할 수 있어 유연하게 사용할 수 있다.
- 예상치 못한 Type Error 발생 가능

 

 

 

1.2 왜 써야 하나요?

1.2.1 코틀린을 사용함으로 얻을 수 있는 이점

ChatGPT 답변

간결한 문법: 코틀린은 더 간결하고 읽기 쉬운 문법을 제공합니다. 예를 들어, 세미콜론을 생략할 수 있고, 타입 추론 기능을 통해 타입을 명시적으로 선언하지 않아도 됩니다.또한, 널 안정성 기능을 제공하여 널 포인터 예외를 줄일 수 있습니다.

상호 운영성: 코틀린은 자바와 100% 호환되며, 자바 라이브러리를 그대로 사용할 수 있습니다. 기존의 자바 코드와 함께 코틀린 코드를 혼용하여 사용할 수 있으므로, 기존 자바 프로젝트에 쉽게 적용할 수 있습니다.

함수형 프로그래밍 지원: 코틀린은 함수형 프로그래밍을 지원하는 기능을 내장하고 있습니다. 람다식, 고차 함수, 스트림 처리 등을 쉽게 구현할 수 있습니다. 이를 통해 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.

코루틴 지원: 코틀린은 비동기 프로그래밍을 위한 코루틴(coroutine)을 지원합니다. 코루틴을 사용하면 비동기 작업을 동기적인 코드처럼 작성할 수 있으며, 콜백 헬(callback hell)을 피할 수 있습니다.

안드로이드 개발에 적합: 코틀린은 구글에서 안드로이드 애플리케이션 개발을 위한 공식 언어로 채택했습니다. 안드로이드 스튜디오와 완벽하게 통합되어 있으며, 자바에 비해 생산성이 높고 코드의 양이 줄어들어 개발 과정을 효율적으로 만들어 줍니다.

확장 함수: 코틀린은 확장 함수(extension function)라는 기능을 제공합니다. 확장 함수를 사용하면 기존 클래스의 메서드를 확장하여 사용할 수 있으므로, 라이브러리 수정 없이도 기능을 확장하거나 유틸리티 함수를 쉽게 작성할 수

 

주요 키워드 : 간결한 문법, 호환성, 함수형 프로그래밍, 코루틴, 안드로이드 개발, 확장 함수

 

1.2.2 코틀린을 주로 사용하는 곳은?

안드로이드 애플리케이션 개발: 구글이 2017년부터 공식적으로 안드로이드 개발을 위한 언어로 채택한 이후로, 안드로이드 애플리케이션 개발에 많이 사용됩니다. 자바에 비해 문법이 간결하고 생산성이 높아 안드로이드 개발자들 사이에서 인기를 얻고 있습니다.

서버 사이드 개발: 코틀린은 자바 가상 머신에서 실행되므로, 서버 사이드 개발에도 사용될 수 있습니다. 스프링 프레임워크와의 호환성이 좋아 스프링 기반의 웹 애플리케이션 개발에 많이 사용됩니다. 또한, 코틀린에는 함수형 프로그래밍을 지원하는 기능이 있어서, 비동기 처리나 람다식을 활용한 개발에 유리합니다.

데이터 과학 및 분석: 코틀린은 데이터 과학 및 분석 분야에서도 사용될 수 있습니다. 코틀린은 자바와의 상호 운영성을 제공하므로, 자바 기반의 데이터 처리 및 분석 라이브러리인 Apache Spark, Apache Kafka, Apache Beam 등과 함께 사용할 수 있습니다.

모바일 및 멀티플랫폼 개발: 코틀린은 Kotlin Multiplatform이라는 기능을 제공하여 iOS, Android, 웹 등 다양한 플랫폼에서 공통 코드를 공유할 수 있습니다. 이를 통해 개발자는 한 번의 작업으로 여러 플랫폼을 대상으로 애플리케이션을 개발할 수 있습니다.

게임 개발: 코틀린은 게임 개발에도 사용될 수 있습니다. LibGDX와 같은 게임 개발 프레임워크에서 코틀린을 지원하며, 안드로이드 게임 개발에서도 코틀린을 활용할 수 있습니다.

 

주요 키워드 : 안드로이드, 스프링 기반의 웹 Application 개발

 

 

 

 

# 참고자료

728x90