레슨 1 의 3
진행 중

Kotlin을 배워야 하는 이유

코스메이커 2022년 8월 9일

코틀린의 탄생 배경

Java 언어는 썬 마이크로시스템즈 시스템에서 제임스 고슬링이라는 분이 Java 언어를 만들었습니다.

하지만 썬 마이크로시스템즈가 곧 오라클에 인수되었으며 고슬링이 회사를 떠나면서 오라클이 전적으로 Java 언어를 관리하고 주도하게 되었습니다.

그 후 오라클은 특정 Java JDK에 대해서 유료화 정책을 펼쳤습니다.

그러나 구글은 이전에 JAVA JDK 를 통해 안드로이드의 핵심 프레임워크와 여러 서비스를 개발한 상태였습니다. 오라클은 구글을 상대로 천문학적인 금액을 요청하였습니다.

그 후 구글의 입장에서는 Java 언어로 프로그램을 작성하기 위한 SDK인 Java JDK, JVM 등이 필요하였습니다.

그래서 구글은 오라클과의 분쟁을 피하고 Java 언어를 대체하기 위해 코틀린 언어를 안드로이드 공식 언어로 채택하였습니다.

그렇다면 코틀린은 이전에 있던 자바와 어떤 차이점이 존재할까요?

코틀린 VS 자바

자바는 아래와 같은 특성을 가집니다.

1.멀티 플랫폼

크로스 플랫폼이라고도 불리는데 JVM(Java Virtual Machine)만 설치되어 있으면 어떤 운영체제에서도 애플리케이션을 작동시킬 수 있습니다.

2.메모리 관리

자바는 포인터 개념이 없고 자동으로 메모리를 관리합니다.

Garbage Collector 가 사용하지 않는 자원을 자동으로 반환해줍니다.

프로그래밍이 편해집니다.

3.OOP (Object Oriented Programing)

부품들을 조립해서 하나의 제품을 만드는 것과 같은 원리입니다.

객체(Object)라는 단위로 나누고 객체들끼리 상호작용하는 방식입니다.

(객체지향)

4.멀티 스레드

Thread 클래스Runnable 인터페이스를 이용하여 멀티 스레드를 구현합니다.

5.동적 로딩

필요한 시점에 구현한 클래스를 로딩할 수 있습니다.

 

자바의 제일 중요한점은 객체 지향이라는 점과 오랫동안 사용하면서 쌓여온 레거시(legacy:오래전부터 쌓여져온 지식들을 뜻합니다)을 통한 방대한 정보들이 있다는점이 가장 중요합니다.

이에 반해 코틀린은 어떤 특징들을 가지고 있을까요?

1.type Inference

변수값 타입을 추론하여 할당합니다

 

2.OOP 와 FP (Functional Programing)

객체지향 프로그래밍, 함수형 프로그래밍을 모두 지원합니다.

 

3.모든 타입이 클래스 타입

기본형 타입마저 클래스로 존재합니다. (Nullable 위해)

 

4.Nullable

Null 할당이 가능한 타입을 선언할 수 있습니다.

NPE 예외를 컴파일 시점에서 미리 방지할 수 있습니다.

코틀린의 특징들을 한마디로 정의하자면, 자바에서 불편함을 겪었던 부분들을 새로 고치고, 자바 스크립트같이 type-script를 사용하여서 웹에서도 돌아가게끔 편리하게 만들었다고 할수 있습니다.

즉 코틀린:개발자의 편의성,간결하고 효율적인 코드 작성,객체지향 프로그래밍과 함수형 프로그래밍의 장점을 조화시킨 언어

라고 할수 있는 것이죠.

그럼 다음 시간에는 간단히 코틀린을 사용할시, 어떠한 장점이 있는지 알아보도록 하겠습니다.

닫기