Android(Kotlin)

심기일전 코틀린! - 00. 코틀린

E.I.T.U 2023. 6. 2. 12:26

오늘부터 그동안 배운것들을 복습한다는 생각으로 하나씩 정리해나가려한다.

함께 공부하자는 마음으로 읽어나가주면 좋겠다.

 

Java 에서 Kotlin 으로

안드로이드 앱을 만드는 방법은 참 다양하다.

React-Native 나 Flutter 를 이용하여 하이브리드 방식으로 개발할 수도 있고

Java 나 Kotlin 을 이용하여 네이티브 방식으로 개발할 수도 있다.

혹은 최근에 핫한 웹앱 방식으로 개발할 수도 있다.

 

그 중에서도 우리는 Kotlin 에 주목해보려 한다.

 

사실 Kotlin 이 세상에 처음 모습을 드러낸 것은 꽤 오래된 일이다.

2011년 7월에 JetBrains 가 처음 Kotlin 을 발표하고나서 벌써 10년이라는 세월이 넘게 지났다.

 

하지만 안드로이드 공식 지원 언어가 된 것은 구글 I/O 2017 에서 이고 2019년에 안드로이드 공식 개발 언어가 되었으니

사실 우리가 안드로이드 개발로써 Kotlin 을 접한것은 그리 오래되지는 않은 것 같다.

 

 

왜 Kotlin 을 쓰는가?

컴공과에 입학하고 안드로이드 프로그래밍을 배우면서 내가 처음 접한건 Java 였다.

이미 선수과목으로 Java 를 배우고 올라왔기 때문에 그냥저냥 어렵지않게 다가왔던것같다.

졸업 후 처음 Kotlin 을 접하게 된건 그야말로 별거 아닌 계기였다.

'회사에서 많이 쓴다니까.. Jetpack이 어쩌구.. 요즘 대세는 어쩌구..'

그냥 취업이 잘 된다니까 Java 대신 Kotlin 을 공부했을 뿐이었다.

 

Kotlin 을 처음 배우기 시작할땐 Java 와 차이가 너무 나서 정말 많이 헷갈렸다.

 

학부생때 배웠던 언어들은 대부분 타입 선언 후 변수명을 선언하는데 { TypeParameter valueName }

Kotlin 은 mutable 선언 후 변수명 선언 후 타입 선언의 형태를 가지고있다. { val(var) valueName: TypeParameter }

처음엔 val 과 var 의 차이도 구분 못해서 맨날 고쳐쓰고 var 로 통일하고 난리도 아니었다.

 

무엇보다 Java 는 기본적으로 Nullable 인데에 반해 Kotlin 은 Nullable 을 명시적으로 선언해줘야 하는점에서 정말 많이 해맸다.

이 당시 작성한 코드를 보면 ! 가 얼마나 더럽고 지저분하고 많이 붙어있는지 읽기도 힘들 정도다.

어떻게 이 포트폴리오로 취업을 했는지 그저 신기할 따름이다.

https://github.com/eitu-jerry/ArcornBook

 

GitHub - eitu-jerry/ArcornBook

Contribute to eitu-jerry/ArcornBook development by creating an account on GitHub.

github.com

 

그리고 이건 다음 포스팅에서 다룰 예정이지만 ViewBinding 때문에도 정말 많이 해맸다.

물론 ViewBinding 은 Kotlin 이라서 어려웠던건 아니지만 Kotlin 을 배우면서 처음 접한 개념이라

당시에는 그냥 Kotlin 이라서 어려웠다고 생각했으니까말이다.

 

사실 위에 말한 어려웠던 점들은 지금에 와서는 모두 장점이라고 볼 수 있다.

mutable 을 간편하고 보기 쉽게 정의하는 점이나

명시적 Nullable 선언으로 NullPointerException 에 대응하기 더 좋은 점이라던가 말이다.

물론 dataClass 나 compose 등 장점이 더욱 많지만 그건 차차 다뤄가도록 하자.

 

 

마무리

이 포스팅에서 말하고 싶은건 "Kotlin 이 Java 보다 더 뛰어나니까 무조건 Kotlin 을 써!" 이게 절대 아니다.

단지 안드로이드 공식 개발 언어도 Kotlin 이고 Kotlin 에서만 사용할 수 있는 기술들도 많이 나오고있고

무엇보다 장래를 생각하면 Kotlin 을 시작하지 않을 이유가 없기 때문에

굳이 둘 중 하나를 추천해야한다면 Kotlin 을 추천하겠다는 이야기를 하고싶었다.

 

앞으로 이 심기일전 시리즈를 통해 스스로도 많이 복습하고 공부하고 미래를 위한 준비시간이 되길 바라며

이만 말 줄이도록 하겠다.