당신이 지금 당장 Kotlin을 해야하는 이!유

김희망·2023년 4월 7일
2

개발일지

목록 보기
7/17

코틀린!!

개요

나는 Java, Spring boot에 굳건한 의지를 갖고있던 백엔드 개발자였다. 그러나 결국 코틀린에게 결국 굴복당하여 완벽하게 코틀린화가 되었다. 자바를 좋아하던 과거의 나를 돌아보며 또 코틀린으로 넘어온 지금의 나를 돌아보며 이 포스팅을 쓴다.

Kotlin!!!

코틀린은 2011년 JetBrains에서 발표한 JVM 기반의 프로그래밍 언어다. 자바와 같은 JVM 기반의 언어로 자바와 비슷한 구문을 가지고 있지만, 보다 간결하고 안전한 코드 작성을 지원하며, 함수형 프로그래밍을 지원하는등 다양한 기능을 제공한다.

코틀린의 장점?

  1. 코드의 간결성
    • 코틀린은 자바보다 코드가 더욱 간결하고 가독성이 좋다.
    • 코틀린은 불필요한 보일러플레이트 코드를 줄일 수 있으며, 함수형 프로그래밍 스타일을 지원해 더욱 간결한 코드 작성이 가능하다.
  2. 함수형 프로그래밍 지원
    • 코틀린은 함수형 프로그래밍을 지원한다. 함수형 프로그래밍은 코드의 가독성과 유지 보수성을 향상시키는 효과가 있다.
    • 동시에 병렬 처리와 같은 성능 이점을 가져올 수 있다.
  3. NULL 안정성
    • 코틀린은 널 안정성을 보장하는 기능을 내장하고 있어, 널 포인터 예외 NPE를 방지하는데 도움이 된다.
  4. 자바와 상호운용성
    • 코틀린은 자바와 상호운용성이 뛰어난다. 따라서 스프링 부트 프로젝트에서 자바와 코틀린을 함께 사용하여 개발할 수 있으며, 라이브러리나 프레임워크도 자바와 호환성이 좋다.
  5. 개발 생산성
    • 코틀린은 코드 양을 줄여주고, 생산성을 향상시켜주는 맣은 기능을 제공한다.
    • 람다식, 확장 함수등을 사용하여 반복적인 코드 작성을 줄일 수 있다.
    • 안드로이드 앱 개발에서도 코틀린을 많이 사용하고 있으며, 개발 생산성을 크게 향상시키는 데 도움이 된다.
  6. 향상된 타입 추론
    • 코틀린의 향상된 타입 추론을 통해서 더욱 간결하고 읽기 쉬운 코드를 사용할 수 있다.

처음 코틀린을 사용하여 자바로 만든 50줄 코드를 코틀린을 사용해 20줄로 줄였을때 느꼈던 감정은 다시 표현하지 못할 정도로 좋았다. 보일러 플레이트 코드가 줄면 줄수록 코드를 적게 쓸수록 팀이 관리해야 할 코드는 줄어들고 결과물에서 처리해야 할 오류가 적어진다.

자바의 이후 버전에서 제공하기로 한 기능들 중 일부는 이미 코틀린에서 제공중이다. 코틀린을 사용하면 미래 자바 버전의 사용 가능한 기능들을 미리 경험할 수도 있다.

코틀린 DSL

DSL Domain-Specific Language : 특정 도메인이나 문제 영역을 해결하기 위해 설계된 특화 언어

코틀린을 사용하면 DSL이란 것을 사용할 수 있다. Spring Kotlin API와 같은 API를 이용 가능하게 해주는 DSL도 있다. 그 뿐만 아니라 당신의 코드를 사용하게 될 다른 개발자들을 위해 풍부하고 다양한 API를 직접 디자인하고 만들 수 있다.

coroutine 코루틴

코틀린에서는 협력형 멀티 태스킹, 동시성 프로그래밍 지원, 비동기 처리를 쉽게 도와주는 코루틴이라는 친구를 사용할 수 있다.

코루틴을 사용해 비동기 코드 작성이 쉬워지고 성능, 가독성등을 개선하며 에러 핸들링이 더욱 쉬워지고 유연한 스레드 관리를 할 수 있다.

코틀린의 전망

코틀린은 안드로이드 앱 개발을 위한 공식 언어로 채택되어 대중적인 언어가 되었다. 자바와 함께 새로운 언어의 기준을 제공하는 대표적인 언어 중 하나다. 안드로이드 뿐만 아니라 백엔드 개발에서도 코틀린의 사용이 늘어나고있다.

상대적으로 신생 언어인 코틀린은 간결함을 포함한 다양한 장점들로 코틀린을 사용한 개발이 더 많아질 것이다.

특히 안드로이드 앱 개발 공간에서 인기가 높아지고 있고, 앞으로도 더욱 널리 채택될 것이다.

그리고 코틀린은 강력한 지원을 제공하고 지속적인 성장과 개발을 보장하는 데 구글에서 공식적으로 지원을 하고있다.

전반적으로 코틀린의 미래는 유망하고, 앞으로도 계속 인기 있고 널리 사용되는 프로그래밍 언어가 될 것이다.

코틀린을 고민중인 개발자분들께

사실 자바개발자에서 코틀린으로 넘어온다는 것은 그렇게 어려운 과정이 필요하지 않다. 지금 당장 꼭 코틀린으로 넘어와야한다? 이건 또 아닌 것 같다.

아직까진 한국에서 자바국이라고 불릴 정도로 자바 관련한 채용, 레거시들이 많이 남아있기 때문이다.

그러나 자바 개발자라도 꼭 코틀린을 배워 함께 사용할 수 있는 개발자가 되어주었으면 한다.

그만큼 코틀린은 좋은 언어고 당신의 개발 인생을 행복하게 해줄 수 있는 언어라고 생각된다. 나는 미래에도 자바보단 코틀린을 더욱 많이 사용할 것이며 더욱 심오하게 코틀린을 공부할 예정이다.

그리고 하나 더 사실 언어가 개발자 인생의 중요한 선택지라고는 생각되지 않는다. (물론 각 전공에 맞는 언어를 사용하긴 해야지요) 언어의 중요성보다는 어떠한 아키텍처를 구축할 수 있는 능력 이 언어로 이러한 기능을 구현할 수 있는 능력을 더욱 중요시 생각하면 된다.

코틀린 vs 자바 채용

솔직히 말하자면 아직 코틀린보다는 자바의 채용이 훨신 많은 편이다. 그러나 대기업, 중견기업, 강소기업 등등 여러 기업에서는 코틀린을 도입했으며 앞으로도 많은 기업들이 코틀린을 도입하리라 예상해본다.

코틀린 스프링부트 공부법?

나는 코틀린을 처음 시작할때 유튜브 인터넷 강의나 공식문서, 문법 정리 포스팅을 보며 익혔다. 자바랑 비슷한 점이 많아서 나름 금방 익힌 것 같다.

그 후로 자그마한 CRUD + 인증인가 시스템을 만들었다. 처음 시작할 때 여러 지인들의 코드를 참고하거나 물어보기도 하며 프로젝트를 완성시켰고 그 이후에는 코틀린 인 액션이라는 책을 구매해 읽고 있다.

결국엔 코틀린을 스프링부트에 적용시키려면 직접 해보는 방법밖에는 없는 것 같다. 도전을 두려워하지말고 일단 해보자!

결국 나는..

결국 나는 코틀린에 정복당한 지금을 후회하지 않으며 오히려 더 빨리 코틀린으로 전향했어야 한다고 생각이 들 정도로 코틀린에 대해 만족하고있다.

자바가 좋지 않은게 아니다. 코틀린이 너무 좋은거다. 생각해보라 왜 JetBrains에서 코틀린을 만들었겠는가? 자바로 구성된 환경이 마음에 들지 않아서다.

코틀린은 엄청난 실력의 개발자들이 모여 자바의 단점을 고치기 위해 시간을 투자하고 또 투자해 만들어진 작품이다. 안 쓸 이유가 없다.

코틀린은 매우 매력적인 언어라고 생각하고 함수형 프로그래밍을 지원하는 언어이면서 또 객체지향을 고수할 수 있는 아주 아름다운 언어라고 생각된다.

지금까지 여러 언어 go, python, java, javascript, typescript, c, c++ , c#을 공부해 봤지만 나에게는 코틀린이 가장 좋은 언어, 가장 잘 맞는 언어라고 생각된다!

글을 마치며

코틀린에 매력에 반한 한 개발자의 말씀을 읽어주신 분들에게 감사의 말씀을 전하며 다들 코틀린의 매력을 느껴보셨으면 하는 바람입니다. 다들 즐거운 개발자 인생을 사시길 바랍니다..!

profile
소프트웨어 엔지니어, 김희망입니다.

1개의 댓글

comment-user-thumbnail
2023년 5월 27일

화이팅입니다🧚‍♂️

답글 달기