자바로 개발 공부를 하다가 이번에 코틀린으로 안드로이드 개발을 하게 되었다. 처음에는 코틀린이 자바 베이스라는 사실 때문에 안도를 하였지만, 이것이 오히려 독이 되기도 하였다. 그래서 자바 베이스 '덕분에' 가 아니라 '때문에' 라고 한 것이다.
자바는 대표적인 객체지향 패러다임 프로그래밍 언어이다. 자바 8 이후로 함수형 프로그래밍 방식을 많이 도입 하였고, 현재 어느 정도 많이 정착했다고 생각이 들지만 결국 그 구현 내용 또한 객체로 되어 있다. 그리고 어디서 주워 들은 얘기인데 현업에서도 그렇게 적극적으로 사용되지는 않는 것 같다.
역시(?) 나 또한 함수형 프로그래밍은 자바의 정석으로 공부하고, 가끔 사용해본 것이 전부였다.
하지만 코틀린은 객체지향 + 함수형인 멀티 패러다임 프로그래밍 언어라고 할 수 있다. 비교적 최신 언어들은 대부분 함수형 프로그래밍을 지원하고 있고, 자바 또한 자바8부터 함수형을 도입한 것을 보니 함수형 패러다임의 영향력을 무시할 수 없다는 것을 느꼈다.
현재 코틀린으로 안드로이드 개발을 시작한지 일주일 정도 되었다. 나의 코드를 되돌아보니, 파일 확장자만 .kt 일 뿐 이것은 그냥 자바 코드라고 해도 될 것 같았다. 다른 분들의 코드와 비교해보니 정말 많이 노력해야겠다는 생각이 들었다.
코틀린의 장점을 활용하고 싶었고, 이제 본격으로 Java to Kotlin 을 진행할 것이다.
내가 이런 고민을 하고 있던 찰나에 "이제는 웹을 버리고 안드로이드를 시작할 차례입니다." 라고 말씀해주신 민석님 덕분에 정말로 안드로이드 개발이 시작됐다는 것을 느낄 수 있었다.
원래 이번 포스팅은 이런 내용을 적으려고 했던 것이 아닌데.. 갑자기 두서 없는 글이 되어 버렸다.
그래도 따로 어디 기록하기는 애매하니 그냥 넘어가야지 : )
아무튼 이제 코틀린 / 안드로이드를 시작하면서 의식적으로 그 스타일을 따라야겠다고 생각이 들어서, 관련 자료들을 읽어보았다.
사실 이 내용들은 자바 컨벤션과 많이 겹친다고 하는데, 나는 자바로 개발 공부를 할때도 많이 못 지킨 것 같다.( 아이고오.. )
원래 나는 직접 기록하면서 기억하는 타입이지만... 양이 너무 방대하기 때문에 어쩔 수 없이 주기적으로 읽는 방법을 선택해야겠다.
고차 함수에 대해서는 나중에 따로 정리를 한번 해야겠다.