brunch

You can make anything
by writing

C.S.Lewis

by 광화문덕 Oct 17. 2021

#12. 코틀린에 푹 빠져버렸다

[광화문덕 시즌2: 나를 찾아서] 나는 코딩하는 게 즐겁다

안드로이드 앱 개발에 푹 빠져버렸다

저녁 9시면 꾸벅꾸벅 졸던 내가... 요새 새벽 2시까지 코틀린과 끊임없이 대화하느라 정신없다. 관심을 사기 위해 열심히 말을 걸어보지만, 아직까지는 까칠하기만 하다. 툭하면 빨간 줄을 보이고, 조금 어려운 개념을 어설프게 인지하고 말을 걸면 아예 나와 말을 섞으려 하지도 않는다.


코틀린... 안드로이드 앱 프로그램 언어.... 너란 놈....

대학교 2학년 때쯤이었을 거다...

당시 자바란 언어가 한국을 휩쓸었고, 컴퓨터공학도였던 나는 학교 공식 수업 언어였던 C++을 과감히 버리고 자바에 푹 빠져 살았다. 당시 보기 드물게 SCJP 자격증도 일찍 따냈을 정도였다. 대학 연대(?) Jlab이란 곳을 통해 타 학교 선배들과도 교류하며 그렇게 자바란 언어에 심취했던 때가 있었다.


코틀린이란 넘이 내게 너무 쌀쌀맞게 하니 벌써 20여 년이 지난 옛날이 떠오르는구나... 물론 지금 자바로 할 수도 없다... 너무도 떠난 지 오래됐을뿐더러, 난 프로그래밍과는 전혀 관련 없는 수험생으로 3년, 언론인으로 10년, 기업인으로 5년.... 을... 보냈으니.... 자바도 이젠 존댓말 하는 사이... 아니 어쩌면 코틀린보다 못한 사이일 수 있다...

지금 내게는
정말 많이 어렵다

안드로이드 스튜디오가 워낙 잘 되어있다. 사용자 환경(UI)이 어마 무시하다. XML 파일에 코틀린 파일(KT)을 연동하는 모든 것이 자동화되어있다. 예전에는 객체지향이라는 개념을 가지고 혼자 스스로 모든 걸 다 고민해야 했었는데 안드로이드 스튜디오가 그중 많은 부분을 도와준다.


물론 복잡한 앱을 만들기 위해서는 개념도를 그려야 하고, 앱 기획 및 구성도까지 꼼꼼하게 그려야 한다. 난 경솔하게도 초심자임에도 불구하고 머릿속으로 그려놓은 걸 코드화 하려고 했다.... 지금 3일째 새벽 2시까지 코딩하고 다시 고치고 하길 반복하고 있다.

하지만 그래도...
너무 설레고 재미있다

오늘은 아들과 일어나자마자 인근 도서관으로 향했다. 그리고 도서관에 있는 코틀린 관련 서적을 펼쳐놓고 코딩 실습했고, 아들은 옆에서 자기가 읽고 싶은 책을 읽었다. 우린 오전 10시부터 오후 4시까지 장장 5시간여 동안을 도서관에서 함께했다.


이제 매주 쉬는 날이면 같이 도서관에 가서 공부하자고 아들과 약속했다. 휴일을 보다 생산적으로 보낼 수 있는 일이 생겨서 보람차다.


근데 아무래도 책으로는 한계가 있음을 인지했다. 따라 하기에는 아직 내공이 부족하지만, 코딩 소스 설명은 내 수준보다 높았다. 생략된 곳이 많기도 했고, 책을 읽으며 부족한 부분은 웹 검색을 통해서 추가적으로 이해해보려고 했지만... 어렵다.... 아직 코틀린 언어와 함수, 관계도 등에 익숙하지 않다 보니 암호 해독하는 수준인데...... 찾는 것마다 소스 예제가 다르니 동일한 개념이지만, 암호를 해독할 때마다 다른 느낌이라 더 혼란스럽다고 할까...


게다가 예제에는 사용하라고 적힌 함수가 안드로이드 스튜디오에서는 사용하지 말라는 함수로 나올 때면 앞이 캄캄해졌다. 업데이트에 대한 부분도 고민이 크다.


그러다 찾게 된
구글 공식 개발자 교육 과정

구글이 공식 페이지에서 앱 개발 관련 교육을 진행하고 있었다. 지금 내가 가진 코틀린 책은 3권... 도서관에서 오늘 참고하며 읽어 나간 코틀린 책이 5권이다. 하지만 다들 아쉬운 건 사실이다.


결국 개념을 정확히 이해하는 것도 중요하고, 개념을 코틀린 최신 클래스와 함수를 사용하여 구현하는 것 그것이 바로 고급 개발자로 가는 길인데 말이다.


진지하게 학원을 다녀볼까 하였으나, 일단 구글 안드로이드 공식 페이지 강의에 의존해보려고 한다. 초심자로서 내가 생각하는 앱을 만들 날을 떠올리며 포기하지 않고 열심히 배우고 정리해보련다.

변수에는 ${ }
함수는 fun funcName ( ){ }
함수를 사용하고자 한다면

함수를 호출할 때에는 인수라는 parameter를 넘기면 되지만, 함수를 정의할 때에는 parameter 객체 값을 정의해줘야 한다.

구글은 예제를 통해 처음부터 코딩에 대한 효율적인 방법을 제시하고 있구나... 비효율적인 코딩을 지양하고, 어떻게 하면 반복되는 단순 코딩을 함수를 활용해 단순화할 것인가를 고민하도록 하고 있구나...

오늘 여기까지...
이제 내일 출근을 위해 자야지

코틀린 공부를 시작한 지 일주일 차다. 퇴근하고 집에 와서 밥 먹고 아들이 공부하는 시간 나는 이렇게 코틀린 공부를 하고 있다. 그리고 아들과 아내는 잠이 들고... 나는 시간 가는 줄도 모르고 암호 해독(?)을 하다 보면 어느새 새벽 1시가 훌쩍 넘어버리기 일쑤였다.


예전 와인 공부할 때가 그랬다. 포도 품종 공부하고 와인 라벨에 담긴 역사공부를 위해 이것저것 찾다 보면 시간 가는 줄 몰랐다. 지금이 그렇다. 기분이 좋다. 내 젊음을 헛되이 보내지 않고 무언가에 몰입하며 보낼 수 있게 됐음에 말이다.


오늘은 이쯤 마무리하고 자야겠다. 내일부터 또 새벽 2시마다 잘 테니 말이다. ^^


매거진의 이전글 #11. 우린 꿈을 닮아가고 있다
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari