안드로이드 개발 전문가 과정에 합격했지만, 올레 에코노베이션과 마찬가지로 T 아카데미에서도 선수과목이 필요했습니다. 그것도 에코노베이션과 똑같은 3 일짜리 자바 고급강의!! 그 때의 기억이 떠오르면서 합격했다는 뿌듯함과 자신감은 사라지고 또다시 불안감이 저를 휘감았습니다. 하지만 어쩌겠습니까? 또다시 지난번처럼 도망쳐버리기에는 돌아갈 곳도 없는 상황에서 사치에 불과하다는걸 알고 있었습니다. 그래서 일단 부딪혀보자는 마음을 가지고 면접때와 같이 낙성대 역에서 마을버스에 올랐습니다. 도착한 T 아카데미, 배정받은 강의실로 들어가 일단 앞쪽에 자리를 잡았습니다. 그러고는 주위를 둘러봤습니다. 대부분 저보다는 어린 대학생들처럼 보였습니다. 그 친구들을 둘러보면서, 지금 실력이 저 어린 친구들보다 훨씬 떨어진다는 생각에 자신이 더욱 작게 느껴졌습니다. 혼자 감상에 빠져있다가 강의가 시작될 무렵, 강의실 앞으로 형님처럼 보이는 한 분이 헐레벌떡 강의실에 도착했고, 마침 비어있던 제 옆자리에 자리를 잡으셨습니다. 훗날 이 만남은 제게 큰 힘이 되는데요. 좀 과장해서 말하면, 이 형님이 없었다면 아마 저는 안드로이드 전문가 과정에서 중도 하차하지 않았을까 생각할 정도랍니다.
자바 고급 강의가 시작되었고, 시간이 점점 흐르면서 에코노베이션과는 뭔가 다름을 느꼈습니다. 사실 안드로이드를 위한 자바 고급 강의에서 DAO 와 DTO 와 같은 자바 서블릿에서나 사용하는 개념들이 등장할 필요가 없지요. 안드로이드 앱을 만들때도 DB 를 다루고 쿼리를 다루지만, 그렇게 중요하지는 않다고 생각합니다. 이런 관점에서 T 아카데미에서 진행하는 자바 강의는 정말 딱 필요하다 싶을 정도의 내용들로 이뤄졌습니다. 주로 인터페이스와 상속 구조 및 사용하는 방법이나 각종 자료구조의 응용 등의 내용이었습니다. 학원에서 배웠던 내용, 혼자서 자바 서적을 탐독하면서 익혔던 개념들이 살아나면서 이해가 되기 시작했지요. 물론 완벽하진 못했습니다. TreeMap 이나 TreeSet 등 잘 접해보지 못했던 자료구조를 배울때나 강사님이 내준 과제를 해결하는데는 주변 사람의 도움이 필요했었습니다. 이 때 바로 옆에 앉아 계시던 형님의 역할이 컸습니다. 제가 이해하지 못하고 있거나 과제를 진행하지 못하고 있을때는 친절하게 먼저 문제가 뭔지 물어봐주셨고, 친절하게 설명해주셨지요. 많은 도움이 됐습니다. 이후에는 모르는 문제가 생겨도 의지할곳이 있다고 생각하니 에코노베이션에서 강의를 들을때처럼 당황스럽지도 않았고 마음에는 안정감이 생겼죠.
그렇게 무사히 3 일의 자바 고급강의를 마치고 돌아오는 월요일부터 본격적으로 안드로이드 강좌에 돌입했습니다. 안드로이드는 완전 처음이었죠. 관련 책을 구매해서 한번 훝어본적은 있지만, 아직까지 완전히 처음이라고 볼수 있는 정도였지요. 개발하시는분들은 다들 아시겠지만, 안드로이드 응용프로그램은 JAVA 를 기반으로 만들어졌습니다. 물론 자바 JVM(자바가상머신) 대신 달빅이라는 모바일에 최적화된 가상머신을 사용하고 있지요. 안드로이드가 자바 기반으로 이뤄져 있지만, 사실상 자바와는 별도로 동작한다고 봐도 무방하다 생각합니다.
안드로이드 전문가 과정은 두달간 진행되었습니다. 그 중 한달은 안드로이드 이론과 개념에 대한 강의로 진행되었고, 나머지 한달은 실제 프로젝트를 만드는 것으로 진행되었습니다. 안드로이드를 배우는 기간 동안은 학원에서는 절대로 느끼지 못했던 프로그래밍의 재미에 대해서 알게 되었지요. T 아카데미에서는 강의실 공간을 수강생들을 위해 밤늦게까지 개방해서 강의와 프로젝트에 집중하여 작업할 수 있도록 배려해 주었고, 덕분에 이해가지 않는 부분이 발생하거나 문제가 생겼을 때 강의실에 남아있던 형님과 동생들과 함께 문제를 해결해 나갈수 있었죠. 힘들때도 있었습니다. 도무지 개념이 이해가지 않을 때는 내가 프로그래밍과 맞지 않은건 아닌지 고민하기도 했고, 진지하게 중간에 그만둘까 생각해보기도 했습니다. 하지만, 강사님 주변의 강의를 같이 듣던 친구들덕에 꿋꿋하게 버틸수 있었지요.
그렇게 한달동안 이론강의를 들었지만, 이정도로 과연 내가 앱을 만들 수 있는지 의심이 들긴 했습니다. 아무리 한달내내 안드로이드 강의를 듣고 실습을 했다하더라도 온전한 하나의 프로그램(앱)을 만드는데는 이론의 이해만으로는 부족할거라 생각했지요. 가령 어떤 기능을 만드려면 나름의 설계와 시나리오가 필요합니다. 하지만 이건 이론을 이해했다고 잘 할수 있는건 아닙니다. 댜수의 프로그래밍 경험을 통한 문제해결능력을 키워야지만 가능하지요. 저는 다른 친구들에 비해서 이런 경험이 턱없이 부족했습니다. 부족한게 아니라 아예 없었죠. 그래서 저는 모든게 처음이었습니다.
우선 어떤 앱을 만들것인지 결정하고 기획서를 작성한 뒤 DB 설계, 클래스 설계 등의 과정을 거치고 드디어 실제로 코딩을 할 시간이 다가왔습니다. 기획서에 작성한것처럼 어떤 기능을 구현해야 하는데 당췌 뭐부터 시작해서 진행해야할지 막막하더군요. 옆에 계신 형님께 이런 고충을 말하니 일단 원하는 기능이 있다면 구글 검색을 해보라는 것이었습니다. 그래서 말 그대로 관련 기능에 대해 검색해봤습니다. 최대한 비슷한 형태로 구글검색을 해보니 대부분은 구글이 답을 주더군요!! 완전 신세계였어요. 검색을 통해서 하나하나 찾아가다보니 어느정도 구색이 맞춰졌습니다. 기본적인 기능에 대해서는 대부분 구글을 통해서 찾아보고 그래도 모르는게 생겨면 옆에 계신 형님께 도움을 구했지요. 사실 그 형님도 배우러 오신거고 본인 프로젝트 진행하기에도 바쁠텐데 저 같은 완전 초보 옆에 앉은 죄(?)로 시간을 많이 뺏기셨지요. 그래도 항상 친절하게 알려주셨습니다.
위에서 잠깐 언급했지만, T 아카데미 전문가 과정은 정말 알찬 강의입니다. 한달간 이론을 배운 뒤 프로젝트를 진행합니다. 아마 일반 학원이었으면 프로젝트의 완성만을 목표로 삼았을겁니다. 프로젝트의 질이라던가 평가 같은 과정은 생략되거나 간소화했겠죠. 하지만 T 아카데미는 프로젝트 선정과정에서부터 우선 다양한 아이디어를 내고 그 중에 정말 마켓에서 팔릴만한 아이템을 선정합니다. 그리고 그 아이디어가 수강생의 수준에 맞춰서 정말 한달안에 완성할 수 있는지를 판단하고 최종 결정합니다. 아이디어가 결정되면 클래스 다이어그램, DB 설계 등의 과정을 거치게 됩니다. 이런 과정을 모두 수행하는데 꼬박 일주일이 소요됩니다. 한달동안 프로젝트를 진행하는데 일주일이면 아주 긴 시간입니다. 약 1/4 의 시간을 소비하는 것이니까요. 그리고 나머지 3/4 의 시간을 모두 코딩의 시간으로 할애할 수도 없습니다. 마지막 1 주일은 디자인을 입히고 발표준비를 하는 등의 시간으로 할애해야하기 때문에 실제로 코딩 가능한 시간은 약 2 주정도 밖에 안되죠. 그러다보니 큰 규모의 프로젝트를 진행하기는 힘듭니다. 또 서버통신이 필요한 기능은 모두 제외하고 오로지 앱 상에서 모든 기능을 구현해야 했지요. 2 주동안에 실제 코딩을 완료하려고 하다보니 시간이 많이 촉박했습니다. 밤새는건 기본이고 주말도 모두 코딩에 힘을 쏟았습니다.
어느덧 3 주가 지나고 마지막 1 주가 남았습니다. 그러나 아직도 미완성. 계속해서 코딩에 시간을 할애할 수밖에 없었습니다. 다행인것은 건축학을 전공해서 디자인에 대해서는 전혀 부담이 없었습니다. 다른 친구들은 디자인 때문에 며칠간 골머리를 앓아도 저는 거의 하루 정도만에 디자인을 끝낼 수 있었지요. 그래서 코딩에 시간을 더 할애할 수 있었습니다. 코딩만으로도 시간이 부족했던 저는 코딩에 대해서 다른 친구들에게 물어본 대신 저는 디자인 방법이나 포토샵 다루는 법에 대해서 알려주면서 서로 도움을 주었습니다.
제가 만든 앱은 '좋은습관만들기(Habit Maker)'라는 이름의 습관 관리 앱이었습니다. 좋은 습관을 들이고 싶은데 항상 신경을 쓰고 살 수는 없는 바쁜 현대인들을 위해서 일정시간 간격을 설정해두면 그 시간이 되서 알림 푸시를 날려주죠. 그러면 사용자는 푸시를 클릭해서 앱에 접속하여 습관을 실행했음을 알리는 체크를 하고 그 결과를 다양한 통계로 보여줍니다.
한달의 시간이 끝나고 완벽한 수준의 결과물은 아니었지만 드디어 원하는 기능이 동작하는 앱을 완성하게 되었습니다. 감격의 기쁨!! 뭔가 해냈다는 느낌이 들었지요. 덜달아 개발에 대한 자신감도 상승했습니다. 마지막으로 결과물에 대한 발표와 평가의 시간이 남았습니다. 발표는 앱을 만들게 된 배경부터 앱에 대한 시연까지 대략 15 분정도의 시간동안 진행합니다. 그리고 평가는 우리 강사님만 하시는게 아니라, 외부에서 몇분의 심사위원을 초청해서 평가하죠. 그렇다보니 허술하게 대충 준비할 수는 없었습니다. 강사님도 자신이 가르친 수강생들의 결과를 발표시키는 입장이되다 보니 그 어느때보다 많은 신경을 써주셨습니다. 초시계를 들고 발표시간을 조정해주기도 하시고, 발표 과정에 대해서도 조언해 주셨습니다. 저는 나름 아이디어에 자신감이 있었고 발표하는걸 꺼리는 성격은 아니다보니 즐겁게 발표준비를 할 수 있었습니다. 발표전날은 집에도 못가고 밤새 준비했었죠. 다들 그랬습니다. 누구하나 자기 앱에 대해 애정이 없는 친구가 단 한명도 없었기 때문이죠. 그래서 다들 피곤했지만 표정은 밝았습니다.
긴장되는 마음으로 발표를 시작했고, 시간이 지나가는 것도 모를정도로 빠르게 발표를 무사히 끝냈습니다. 코딩 과정에서 가끔 앱에 버그가 발생했었는데, 시연할 때 나오면 어쩌지 하고 조마조마했었는데, 다행히 잘 작동했습니다. 다음날, 결과가 발표됐는데 결과에 경악할수 밖에 없었습니다. 1 등!!! '와~ 내가 일등이라니!!!'. 말도 안되는 일이 벌어졌습니다. 같이 수강한 20 명 중에서 제가 1 등을 차지한 것입니다. 뿌듯함이나 대견한 마음보다는 같이 고생한 친구들에게 미안한 마음이 먼저 들더라구요. 내가 가장 많은 도움을 받았고, 내 개발 실력이 가장 형편없는데도 제가 1 등을 한것이 미안했습니다. 개발 실력보다는 아이디어가 좋아서 수상을 하게 된거라 생각했습니다. 우리반 친구들 모두 축하를 해주었고, 여러 전문가 과정을 마치는 행사에서 SK 플래닛 대표님 앞에서 시연을 끝으로 2 달간의 과정을 모두 마치게 되었습니다.
이 두 달은 제 인생의 가장 큰 터닝포인트였습니다. 거의 6~7 년간 건축 하나만을 바라보면서 살아왔던 제가 고작 두 달만에 완전 다른 길로 접어들게 된 것입니다. 학원이나 다른 기관에서 두달을 보냈다면, 이런 성과는 없었을거라 확신합니다. T 아카데미에서의 모든 상황이 저에게 긍정적으로 작용했습니다. 옆에 앉은 형님, 같이 수강했던 친구들, 강사님, T 아카데미 직원분들, 이 모든 요소들이 제 주변에 한꺼번에 일어났기 때문에 이런 성과를 낼 수 있었습니다. T 아카데미를 수료한 뒤로는 이제 저는 개발자가 되어도 좋다는 생각을 했습니다. 이전에는 개발을 오로지 사업을 실현시키기 위한 수단 정도로 시작했었는데, 이 두 달을 통해서 개발자로서의 길을 걸어보기로 결정한 것이죠. 그렇다고 사업을 하겠다는 생각을 완전히 접은것은 아니지만, 단지 개발자로서도 한번 살아봐도 좋을것 같다는 생각이 처음 들었던 것입니다.
그리고, 한달뒤 어느 회사에 취업하게 되었습니다. 이 이야기는 다음에 이어서~^^