plzy의 개발 블로그

[Kotlin in Action] 코틀린의 철학 #2 본문

독서록

[Kotlin in Action] 코틀린의 철학 #2

plzyhappy 2022. 5. 12. 10:48

이전 포스팅에서는 코틀린이 무엇인가 에 대한 포스팅을 해봤다.

이번 포스팅은 코틀린의 철학이다.

java의 뒤를 나온 kotllin 어떤 철학이 있을까?

실용성

kotlin을 처음 만들 때 대규모 it 프로젝트를 경험을 바탕으로 만들어졌다고 한다.
또한 코틀린은 어떠한 패러다임에 의존하는 것이아닌 프로그래머의 스타일에 따라 자유자재로 변환하여 쓸 수 있다.
객체지향이나 함수형 등 취향에 맞게 쓰면 된다.
그리고 kotlin은 연구를 위한 언어가 아닌 다른 언어의 성공적인 해법과 기능을 의존한다.
그래서 좀 더 익숙하고 쉽게 배울 수 있다.
kotlin은 인텔리 J의 IDE에 편리한 개발환경이다.
생산성이 뛰어나다.

간결성

코드를 쓰는 것보다 읽는것이 시간이 더 오래 걸린다고 한다.
버그를 수정할 때 많은 코드를 읽어야한다.
하지만 kotlin은 간결하다.
Java에서 게터와 세터, 생성자 피라미터를 필드에 대입하는 등 귀찮은 코드를 작성해본 경험이 있을 것이다.
하지만 kotlin은 묵시적으로 제공하기 때문에 작성할 필요 없다.
kotlin은 다양한 표준 라이브러리를 제공하기 때문에 라이브러리 함수 호출로 대치할 수 있다.
kotlin은 연산자 오버 로딩을 지원하지만 언어가 제공하지 않은 연산자를 프로그래머가 정의할 수 없다.

안정성

언어가 안전하다는 것은 일부 오류를 원천적으로 방지해준다는 것이다.
이를 실현되려면 컴파일 시 프로그램이 어떻게 작동될 것인지 자세히 알아야 한다.
그러기 위해선 코드를 더 많이 써야 할 것이고 생산성이 내려간다.
이렇게 안정성과 생산성의 관계를 트레이드오프라고 한다.
kotlin은 jvm 위에서 돌어간다. 이것만으로 상당한 안정성을 보장한다고 볼 수 있다.
또한 NullPointerException을 null safety로 사전에 막을 수 있고, ClassCastException으로 객체를 다른 객체로 cast 할 때 미리 검사하지 않으면 ClassCastException이 발생할 수 있다.

상호운용성

java에서 kotlin 코드를 호출할 때 아무런 노력이 필요 없다.
또한 기존 자바 라이브러리를 최대한 활용할 수 있어 상호운영성이 뛰어나다고 볼 수 있다.
java와 kotlin의 소스파일이 섞여 있어도 제대로 컴파일할 수 있고,
IDE 기능도 언어와 관계없이 제대로 작동한다.

  • 자바와 코틀린 소스파일을 자유롭게 컴파일 할 수 있다.
  • 여러 언어로 이루어진 프로그래밍을 디버깅할 수 있다.
  • 자바 메서드를 리팩터링 해도 kotlin 코드도 변경된다. 역으로 kotlin 메소드를 리팩토링해도 java 코드까지 모두 변경된다.