Kotlin All in One

Kotlin All in One

지금 우리 팀이 개발하고 있는 서비스에 iOS를 제외한 백엔드, 백오피스 프론트, 안드로이드를 전부 Kotlin으로 개발하고 있다. Kotlin을 선택한 이유는 2가지인데 첫째는 개인 선호고 두 번째는 적은 리소스로 빠르게 개발하기 위한 전략적 이유였다. 정말 빨랐는가? 묻는다면 처음은 빠르지 않았다. 지금은 Spring Boot와 Kotlin은 어느 정도 성숙한 조합이지만 KotlinJS와 Kotlin Multiplatform은 아직 알파버전에 실험적인 스펙이라 프론트를 KotlinJS로 개발하는데 많은 삽질이 있었다. 이미 Wrapping된 UI Component(MUI나 RingUI)를 사용해도 되지만 Ant를 사용하기 위해 모든 컴포넌트를 Kotlin으로 정의하기도 하고 Gradle과 씨름 한판을 하며 많은 우여곡절이 있었다.

그리고 서비스를 런칭하고 작은 업데이트를 진행하며 느낀 점은 단단하단 느낌이었다. 이 감정의 시작은 Kotlin의 Null-Safety다. !! 와 같은 operator를 최대한 사용하지 않고 Nullable을 고려하니 NullPointException은 보지 못했고 프론트엔드에서도 자바스크립트를 사용했다면 느슨한 null check로 버그가 발생할 위험이 있지만 KotlinJS를 사용하니 서버 Response가 NotNull에서 Nullable로 바뀌는 특수한 경우가 아니면 자주 발생하는 위험 요소가 사라진 것이 단단한 느낌을 주었다.

Spring, KotlinJS(React), Android 코드 스타일이 다르다. Spring은 블로킹, KotlinJS는 { } 로 마크업 언어와 같이 표현하고 Android의 경우 Extension, Listener와 Courutine으로 논블로킹 방식으로 개발하게 되는데 이에 익숙해진다면 각 코드 스타일에 영감을 주는 형태로 발전한다. 플랫폼을 넘나들며 개발하는데 혼란스러움이 없고 긍정적인 효과를 주는 것은 단단해진다는 느낌을 느끼게 해준다.

KMM 또한 시도하였지만 일정상 문제로 우선은 Draft 시켜두었다. 앞으로 틈틈이 준비해서 최소한 DTO와 같은 것들은 iOS포함해서 모든 플랫폼에서 공유할 수 있게 설정하는 것이 목표다. 이에 장점은 생략하겠다. 슬슬 채용도 해야 해서 이 글을 작성하며 떠올린 우리가 원하는 개발자를 간략하게 적어둘 필요가 있겠다.

  • Gradle/Maven과 씨름해도 절대 지지 않는 사람.
  • Kotlin 코드를 아름답고 이해하기 쉽게 작성할 수 있는 사람.
  • 아직 도전자가 적은 이 환경에서 살아남을 수 있는 강인한 모험가.
우대조건 : iOS, Android, React, Spring 전부 가능한 자

Read more

높은 하늘

높은 하늘

요즘 밖을 나가면 매일 하늘이 푸르고 맑아 참 높다. 전 세계를 뒤덮은 질병이 이러한 맑고 높은 하늘을 만들었기에 아이러니하다. 질병은 전 세계를 뒤덮고 가족과 지인,  모두를 이간질하며 거리두게하였고 질병은 오프라인 기반 사업하던 우리 회사를 속되게 표현하여 쫄딱 망하게 하였다. 결국 우리 팀원도 20명에서 3명으로 줄었으며 큰 짐을 짊어지게 되었다. 아이러니하게

By Nine

탈고리즘 (1)

자는 시간을 제외한 하루의 대부분을 유튜브를 켜두고 지내왔다. 일어나서는 뉴스, 최신 소식을 듣고 보며 음악도 유튜브로 듣고 퇴근 후 저녁에는 구독한 채널들이 올리는 영상들을 시청하며 하루를 보냈다. 매달 유튜브를 시청하며 사용하는 60GB의 데이터는 훈장과 같았다. 가끔 습관적으로 유튜브를 켜는 것에 자괴감이 올때도 있었지만 넓고 다양한 주제의 정보를 자연스럽게 얻을 수

By Nine
어쩌면 당연한 것

어쩌면 당연한 것

전 회사에서 무엇을 해야 하는지 애매한 상황에 난 담담하게 내 할 일을 했다. 당연하다고 생각했던 react + webpack 도입이나 인프라 정리, 테스트 코드 기반 작업, 공통 모듈 라이브러리화, 레거지와 주석 코드 정리를 했다. 생각보다 오랜기간동안 진행했고 그때 스트레스를 많이 받았다. 다시 당연하다고 생각했던 것들을 해야 할 시간이다. 하지만 과거에 내가 했던

By Nine
IntelliJ .properties 파일 인코딩 오류

IntelliJ .properties 파일 인코딩 오류

어느 순간부터 IntelliJ에서 .properties 파일 인코딩이 깨지는 이슈가 생겼습니다. 원래는 하단 메뉴바에 인코딩 옵션을 선택해서 파일 인코딩을 수정할 수 있었지만 하단 메뉴바에서도 수정할 수 없게 되었습니다. 하단에 파일 인코딩 수정 메뉴message.properties 파일 인코딩은 utf-8 이지만 ISO-8859-1 으로 수정이 불가능 합니다. 이럴 경우 맥 OS 기준으로 ⌘ command + ⇧ shift + a (Find

By Nine