travlog / travlog-android

5 stars 0 forks source link

안녕하세요 코틀린 사용하시는데 어떤가 궁금하네요 ㅎㅎ #19

Open rkdgusrnrlrl opened 6 years ago

rkdgusrnrlrl commented 6 years ago

안녕하세용 잘 지내고 계시죵 ㅎㅎㅎ

안드로이드 쪽은 코틀린 많이 사용 하는것 같은데, 개발 하다보면 JAVA에 비해 어떤 점이 좋은지 궁금합니다. 반대로 불편한점 있는지도 궁금하네요 ㅎㅎㅎㅎ

fobidlim commented 6 years ago

@rkdgusrnrlrl 안녕하세요. 요즘 다른 개인적인 일이 있어서 트레블로그에 많은 신경을 못쓰고 있었네요. 곧 다시 타올라보겠습니다!

코틀린이 개인적으로는 함수형 프로그래밍을 할 수 있어서 좋아요.

코틀린 람다 표현식도 좋지만, JAVA를 사용해도 Android Studio IDE 내에서 람다 표현식을 사용할 수 있기 때문에 장점으로 꼽지는 않겠습니다. (실제 람다 표현식이 아닌, IDE에서 표시만 람다로 보여줄 뿐, 그리고 retrolambda 플러그인으로 JAVA에서 실제 람다 표현식을 사용할 수도 있구요.)

Nul Safety를 가장 큰 장점으로 꼽을 수 있을 것 같아요. 컴파일에서 미리 null을 대처할 수 있습니다.

별도의 class 선언 없이도 유틸 등을 만들어서 사용할 수 있으며, Data Classes, Sealed Classes 처럼, 분명한 목적에 맞게 새로 추가 된 class도 있어요.

switch 문이 사라지고 when 으로 대체되었습니다. if 문이나 switch ~ case 에서 return 하는 경우, return when { } 으로 사용할 수 있어서 코드가 더 간결해졌어요.

구글에서 코틀린을 1st language로 채택하면서, 모든 Google sample 코드가 kotlin 이거나, kotlin과 JAVA 중 kotlin을 우선으로 사용합니다.

코틀린으로 개발 된 라이브러리가 많아졌고, 추세는 더욱 증가하고 있습니다.

개인적으로 코틀린을 사용해보기 전 까지 생산성 향상에 대한 의구심이 많았어요. JAVA로도 충분히 빠르게 작업하고 있다고 생각하고 있었거든요. 개발자가 JAVA 활용과 코틀린 활용 레벨이 동등하다면, 코틀린이 확실히 생산성이 매우 많이 높습니다. 코드도 훨씬 줄일 수 있어요.

아직까지 저는 코틀린이 손에 익지 않아서, 코딩할 때 멈칫멈칫 하는 경우가 있습니다. 이게 가장 큰 불편함이라고 볼 수 있겠네요 ㅋㅋㅋㅋ 그 불편함은 손에 익으면 점차 사라지겠죠?

개인적인 편차는 있겠지만, 코틀린 하루 이틀만 해보면 금방 익숙해지고, 금방 JAVA의 생산성과 비슷한 레벨이 될 수 있습니다.

한마디로 저는 코틀린에 큰 불신이 있었는데, 코틀린 엄청 좋아요 👍🏽

rkdgusrnrlrl commented 6 years ago

개인적으로 JAVA를 선호하기는 하는데, 코틀린이 생산성이 높다고 하니 개인적으로 한번 써 봐야겠네요 ㅎㅎ 최근 사용 하고 있는 웹프레임워크도 코틀린을 지원 해서 자바로 기본적인 것들 만들고 코틀린으로 마이그레이션 해볼까 합니다. ㅎㅎ 혹시 코틀린 용 테스트 프레임워크도 쓰시는 것 있으신가요??

fobidlim commented 6 years ago

아직 코틀린으로 테스트까지는 못해봤어요

fobidlim commented 6 years ago

@rkdgusrnrlrl 최근에 이런 글이 있어서 가져왔습니다. Testing with Koin

rkdgusrnrlrl commented 6 years ago

@fobid 고맙습니다( ) 한번 읽어 볼께요 ㅎㅎ 👍