코틀린 그게 뭔데??

Viva의 놀이터·2022년 1월 27일
0

코틀린을 왜 사용하는가?

안드로이드 스튜디오는 이미 개발언어로 코틀린을 사용하는 것이 자연스러워졌고, 최근 서버 개발자들도 자바가 아닌 코틀린으로 개발하는 모습이 자주 보인다.

작년 9월에는 우테코에서 코플링을 소개하고 당근마켓에서는 코틀린 서버 개발자를 뽑기 시작하고 많은 서버 개발자들이 코틀린에 관심을 갖기 시작함에 따라 본인도 코프링(코틀린 + 스프링)에 흥미가 생겨 알여보는 중이다.

내가 어떤 일을 시작함에 있어 가장 중요하다고 생각하는 '이걸 왜 하는거야?' 라는 의문을 확실하게 집고 가고자 코틀린의 장점을 정리하고자 한다.

코틀린의 특징

코틀린은 정적 타입언어이다.

코틀린은 자바와 같은 정적 타입 언어이다. 정적 언어는 프로그램을 구성하는 모든 요소의 타입을 컴파일 시점에 알 수 있고 컴파일러가 해당 요서의 타입을 검증해주는 특징을 가지고 있다.

컴파일 시점에 요소의 타입을 검증하는 것의 장점은 오류를 컴파일 시점에 바로 알 수 있다는 장점을 가지고 있다. 단점으로는 모든 요소의 타입을 정의해주기 때문에 코드가 비교적 길다는 점이다.

정적 타입 언어의 반대의 진형으로는 동적 타입 언어가 존재한다. 동적 타입 언어는 요소의 타입을 정하지 않고 변수에 모든 타입을 사용할 수 있다. 이는 타입을 정의해주는 부분이 없기 때문에 코드가 비교적 깔끔하지만,
컴파일 시점에 오류를 확인 할 수 없고 해당 요소가 실행 됬을 때 비로소 오류를 발견 할 수 있다는 단점이 존재한다.

이외에도 각각의 타입 언어는 서로다른 장단점이 존재한다.

코틀린은 정적 타입언어의 장점을 가지면서 동적 타입 언어의 장점인 타입을 반드시 명시해주지 않아도 컴파일러가 해당 요소의 타입을 추론해주는 기능인 타입 추론 기능이 있어 일부 동적 타입 언어의 장점을 가지고 있다.

코틀린은 함수형 프로그래밍이자 객체 지향 프로그래밍이다.

코틀린은 함수를 일반 값처럼 다룰 수 있다. 함수를 변수에 저장하거나 인자로 다른 함수에 전달 할 수 있고 새롭게 정의하여 사용 할 수 있다.

함수형 프로그램의 장점으로는

  • 간결성 : 함수를 일반 값처럼 다룰 수 있기 때문에 간결하고 코드가 깔끔하다.

  • 안정성 : 한번 함수가 생성되면 내부가 변하지 않는 불변성의 특징을 가지고 있어 복잡한 동기화를 위한 사전 처리 작업이 필요없이 사용이 가능하다.

  • 테스트가 쉽다 : 순수 함수는 독립적으로 테스트가 가능하다. 복잡하게 얽혀있지 않아 전체적인 준비 작업 없이 해당 순수 함수만 테스트가 가능하다.

자바와 100% 호환이 가능하다

어떤 기술에 있어 해당 기술이 가진 역사의 힘은 무시하지 못한다. 그 기술이 발전 혹은 생존하면서 만들어진 레퍼런스, 커뮤니티는 정말 중요한데 수십년의 역사가 있는 자바와 호환이 가능하다는 점은 확실히 코틀린이 매력적인 언어라고 할 수 있다.

코틀린의 철학 (코틀린을 왜 만들었는가?)

실용성

코틀린은 연구적인 언어가 아닌 다른 언어에서 실용성을 검증하여 채택한 해법과 기능을 사용하여 쉽고 간결하게 사용이 가능하고 새로 등장한 개념이 아닌 기존 개념을 사용하기 때문에 쉽게 배울 수 있다.

간결성

코드의 가독성은 정말 정말 중요한데 앞서 언급한 것 처럼 코틀린은 실용적인 언어이다. 실용적이기 때문에 코드의 불필요한 부분은 생략이 가능하도록 개발이 되었다. 흔히 자바의 불필요한 부분을 걷어내고 간결하게 작성하도록 하였다.

코드가 간결해지면 해당 코드가 어떤 역할을 하는지 개발자가 파악하는데 시간이 적게 걸려 생산성이 증가된다.

안전성

나에게 코틀린의 가장 큰 장점을 뽑으라고하면 자바에서 발생했던 nullpointExecption을 처리하는 방법이라고 자신있게 말 할 수 있다. 자바에서는 null 오류를 막기 위해서 optional을 사용하지만 코틀린에서는 null을 오류로 보지 않고 하나의 타입으로 생각하고 처리를 한다.

어떤 변수를 생성할 때 null이 가능 여부를 판단하여 미리 정의해주면 null을 오류로만 보지 않는다.

상호운용성

코틀린은 어떻게 보면 자바의 실용적인 버전, 개선된 자바 라고 보면 될 것 같다. 따라서 자바와 코틀린은 호환이 가능해야한다.

이는 코틀린과 자바가 컴파일 되는 시점을 보면 좀더 명확하게 이해가 된다.

자바와 코틀린은 모두 컴파일(동적 타입 언어)언어 이고 JVM을 통해서 컴파일이 된다. 코틀린 확장자인 .kt가 먼저 컴파일이 되어 class 파일로 변환이 되고 .java가 다음에 컴파일이 되어 class로 변환이 된다. 자바든 코틀린이든 같은 JVM을 사용하니 코틀린으로 작성을 하든 자바로 작성을 하든 결과는 같다.

정리

코틀린은 모든 프로그램언어에서 검증되고 유용한 개념을 그대로 채택하여 사용하고 있고, 자바와 100% 호환이 되면서 비교적 신생 언어임에도 불구하고 자바라는 거대한 생태계와 커뮤니티를 공유하면서 신생 언어 답게 기존의 언어의 불필요한 부분을 상당 부분 걷어낸 트렌디한 언어이다.

profile
역사를 잊은 기술에겐 미래가 없다

0개의 댓글