알고리즘 문제 풀이로 하루를 시작하며 코틀린 기초 문법 복습에 돌입했다. 강의를 통해 익혔던 내용들이 실제 문제에 어떻게 적용되는지 확인하는 시간이었다. 처음엔 너무 쉬운 문제들이라 생각했지만, 막상 코드를 작성하다 보니 코틀린 특유의 꼼꼼함이 눈에 띄기 시작했다. 마치 깐깐하지만 속정이 깊은 친구를 만난 기분이랄까.
예상치 못한 곳에서 만난 코틀린의 깐깐함
가장 먼저 느낀 점은 코틀린이 null 값에 대해 상당한 경계심을 가지고 있다는 것이다. 변수를 선언할 때부터 null 가능성을 명확히 지정해야 하고 (Int? 처럼), readLine() 함수를 사용할 때 !! 연산자를 붙여야 하는 이유도 알게 되었다. C 언어에서 흔히 발생하는 쓰레기 값 참조 오류를 미연에 방지하기 위한 설계라는 것을 깨달았다. 덕분에 더욱 안전한 코드를 작성할 수 있겠다는 믿음이 생겼다.
형변환 과정도 C 언어만큼 엄격하다는 점도 인상적이었다. 파이썬에 너무 익숙해져서 형변환에 대한 경각심이 다소 느슨해졌었는데, 코틀린은 이러한 부분을 확실하게 잡아주는 느낌이었다. 예를 들어, 정수형 변수를 실수형 변수에 대입하려면 명시적인 형변환 함수 (toDouble(), toFloat(), toInt())를 사용해야 한다. 묵시적 형변환을 허용하는 파이썬과는 달리, 코틀린은 개발자가 의도를 명확하게 드러내도록 강제한다.
어제 공부했던 array와 list를 직접 사용해보니, 단순히 문법을 익히는 것만으로는 부족하다는 것을 느꼈다. 실제 코딩 과정에서 어떤 자료구조를 선택해야 효율적인지, 각 자료구조의 특징을 어떻게 활용해야 하는지 고민하는 과정이 필요하다.
코틀린과의 동행, 더 나은 개발자를 향한 발걸음
오늘 코틀린을 다시 한번 곱씹어 보면서, 코틀린이 단순한 프로그래밍 언어를 넘어 더 나은 코드를 작성하도록 도와주는 훌륭한 도구라는 것을 깨달았다. 코틀린의 깐깐함은 때로는 불편하게 느껴질 수도 있지만, 결국에는 더 안전하고 효율적인 코드를 만들도록 이끌어준다. 앞으로도 코틀린과 함께 성장하며 더욱 발전된 개발자가 될 수 있도록 꾸준히 노력해야겠다.