Kotlin/NextStepCourse-EffectiveKotlin

Effective Kotlin 3기 첫 회고

Flambee 2022. 2. 13. 12:59

해당 글은 NextStep 이펙티브 코틀린 with TDD, Refactoring, Clean Code 3기를 진행하며 쓴 회고글입니다.

Effective Kotlin을 신청한 계기

작년에 새로운 팀에 들어가서 가장 먼저 사용하게 된 것은 자바가 아닌 코틀린이였습니다. 코틀린을 사용한 이유는 바로 코드가 간결해지고 개발자의 편의에 초점을 맞춘 언어이기 때문이였다.

하지만, 아이러니하게도 팀에는 코틀린을 할 수 있는 사람이 없었던 상황인지라, 팀장님과 나는 맨땅의 헤딩을 했다.

이 맨땅의 헤딩 1년이지나 벌써 2021년 10월이 됐다.

1년이 지난 나의 코틀린 코드를 보면서 하나 의문을 품었다.

타 회사 분들과 스터디를 하게 되면 몇몇은 코틀린을 사용하고 있었고 코틀린을 사용하고 있었던 사람들과 코틀린 코드를 볼 줄 아는 사람들은 항상 이런 말을 했다.

"역시 코틀린 코드는 코틀린스럽네요."

라고 말이다. 그렇다. 내 코드가 과연 코틀린스러울까? 가 의문이었다.

내가 들어가 있는 팀은 구현에 있어 코드 리뷰를 항상 하고 있다. 코드 리뷰의 범위는 기능 구현, 소스 코드의 플로우를 함께 보며 진행을 하고 있다.

자바, C#인 경우에는 팀원들 대부분이 자주 사용을 하고 있어, 코드의 플로우 상에 이상한 부분이나, 왜곡 된 부분이 있다면, 그때그때마다 체크해주는 식으로 진행한다.

하지만, 코틀린은 내가 팀에 참여한 뒤로 처음 사용을 하고 있어서 전체적인 맥락만 체크해줄 뿐, 코틀린 API에 대해서 자세한 체크를 해주거나, 받을 수 없는 상태였다.

대표적인 예시는 apply, let, run, also, with를 어느 순간에 적절히 사용할 것인가이다.

이러한 상황 속에서 계속 의문만 커져갔다.

이와 중에 어떻게 해야 이 의문을 풀까? 라는 생각에 해결 방법에 대해 찾아봤는데, 해결 방법은 간단했으나 어려웠다. 바로 내 코드를 기능 구현 소스 코드로만이 아닌 코틀린 코드로 봐줄 사람이 필요했다.

이렇게 찾다가 찾은 강의가 바로 Effective Kotlin 이다.

첫 수업

2021년 10월 12일이 첫 수업이였다. 수업 강사는 제이슨 님이였다.

사실 Effective Kotlin을 들어야 되겠다는 생각을 한 것 중에 하나가 제이슨님이 수업 강사인 것도 한몫을 한 것 같다.

그가 발표한 어디 가서 코프링 매우 알은 체하기! : 9월 우아한테크세미나 은 하루종일 일로 지쳐있었던 나에게 다시 활력을 불러일으킬 만큼 유익한 시간을 만들어주었다.

그때 정말 보면서 정말 많이 놀라고, 웃었던 것 같다.

1주 차 수업 내용은 해당 강의를 어떻게 들어야 하는가? 부터 코틀린이란 무엇인가 그리고 간단한 단위 테스트 방법, 과제를 하는 방법에 대해 말해주었다.

이때 가장 놀라웠던 건 강의를 듣기 위해 모인 사람이 30명이나 된다는 것이였다.

첫 과제

문자열 사칙연산 계산기라는 것을 구현하는 게 첫 과제였다.

첫 과제에 대해서 구현을 하는 데 거의 7시간이 걸렸다. 거의 오후 7시에 시작해서 새벽 2까지 한 것 같다.

이렇게 2시까지 비몽사몽한 상태로 푸시를 날리니깐, 어느덧 꼬여버린 나의 깃을 볼 수 있었다.

당시 상황에서는 Next Step에서 요구하는 깃의 Pull request는 처음이라 익숙하지 않았던 것도 있었고 우여곡절 리뷰어님을 통하여 나의 깃을 Pull request 할 수 있었다. (급하게 리뷰어님이 그림까지 그려주셨다 ㅠㅠ..)

정말 하나하나 차근차근 설명해줬었던 리뷰어님은 정말 천사였다.😂😂

첫 리뷰

리뷰어 님에게 첫 리뷰를 받아보았다. 첫 리뷰에 신난 나는 궁금한 거에 있으면 코멘트를 남기였다.

이때 주고받은 대화만 25개였다.

이렇게 리뷰를 받아보니깐, 하나 확실히 느낀 점이 있었다.

항상 다른 언어를 배울 때 가장 중요한 것은 변수 선언이라고 생각하는 나였다. 하지만 리뷰를 통하여 하나의 깨달음을 얻었는데, 바로 어떤 언어든지 처음 배울 때 가장 먼저 봐야 할 것은 그 언어의 코딩 컨벤션 이다.

항상 코딩 컨벤션은 설명서 같아 보여서 안 읽었던 과거의 나.. 반성하자..

코딩 컨벤션을 보고 컨벤션을 따라서 코딩을 하는 것이 바로, 그 언어의 본질에 다가가는 첫 관문이었고, 코틀린을 코틀린 스럽게 쓰는 방법 중에 하나가 바로 코딩 컨벤션이였다.

코틀린의 컨벤션은 아래의 링크를 통하여 확인 할 수 있다.

https://kotlinlang.org/docs/coding-conventions.html#colon
https://developer.android.com/kotlin/style-guide?hl=ko

혹시나, 모르겠지만, 항상 똑같은 언어를 사용하다가 다른 언어로 커브를 돌릴 생각을 하는 개발자는 꼭 코딩 컨벤션 부터 확인하고 그 언어를 배우는 것을 팁으로 주고 싶다.


오늘은 첫으로 시작하여, 첫으로 끝나는 회고를 써보았다.

첫 회고 글을 쓴 시점에서 벌써 effective kotlin을 시작한지 2 주나 됐다, 현재는 1 주차 미션을 모두 완료한 상태이며, 2 주차 미션을 진행 중에 있다.

그리고 회사를 다니면서 진행하는 중인데, 처음에는 회사를 다니면서 할 수 있을까? 라는 살짝의 불안감을 가지고 시작을 했는데, 다행히 미션 기반의 미션이라서 더 열심히 할 수 있었고, 어떻게든 내가 낸 강의료 만큼 뽑아 먹는다는 생각으로 하니 더 집중을 할 수 있었다.

effective kotlin 첫 회고는 이것으로 끝내려고 합니다.

다음 시간을 기대해주세요~😁