나의 개발 돌아보기
포스트
취소

나의 개발 돌아보기

얼마전에 크래프톤 정글 3기 시험을 봤습니다. 면접을 대비해, 그리고 앞으로의 입사면접을 대비해서 지금까지의 개발 성장 과정을 정리해 봅니다.

(최종 합격했습니다.)

접촉

  • 초등학교 때 컴퓨터를 잘 아시는 도덕선생님이 따로 불러서 ‘나모 웹 에디터’ , ‘파이어웍스’ 등을 알려줬습니다. 천연기념물 관련 홈페이지를 만들려고 했지만, 자료 모으는 게 너무 방대해서 포기했습니다. 홈페이지 만드는 것도 관심있는 주제가 있어야 하는거구나 생각했습니다.
  • 중학교 때 근처 대학교에서 C++ 강의를 들었습니다. 그 때도 포인터는 어려웠지만, 재밌었던 기억이 납니다. 이후 기회가 될 때마다 개발을 해보려 시도합니다.
  • 대학에 진학해 ‘프로그래밍’ 교양을 신청했는데, 첫 수업부터 타 과는 무조건 F 준다며 쫓겨났습니다. (아니 그럴거면 막아 놓으면 되잖아..)
  • 두꺼운 자바책을 빌려서 어플을 만들어보고자 했으나, 가상머신, 이클립스 등 각종 설치에 진을 다 빼고 완주하지 못했습니다. 책을 처음부터 끝까지 정직하게 읽으려고 하면 안되는구나 깨닫습니다.
  • 대학교 창업프로그램에서 지원을 받아 웹페이지를 만드는데, 원하는 기능은 거지같이 구현하고 돈은 꽉 채워받는 외주업체를 만났습니다. 창업을 하게 되면, 개발 능력은 키워놔야겠다는 생각이 듭니다.

입문

졸업시험 즈음 복잡하게 계산해 볼 것이 있어서, 다시 컴퓨터의 힘을 빌려보려고 했습니다. 그러다가 기둥수학 연구소 라는 블로그에서 엑셀로 스도쿠게임, 체스 게임만드는 시리즈 포스팅을 발견했습니다.

읽으면 읽을수록 ‘이거 쩔잖아?’ 라는 생각 뿐이였습니다.

그 찐따같던 엑셀이 맞나? 진짜 옛날에 맨날 엑셀 함수만 썼는데 프로그래밍도 되어서 게임도 만들 수 있는 걸 보니까 가슴이 웅장해진다.

논리적인 진행 속에서 그래픽까지 하나하나 쌓아올리는 쾌감이란.. 시험 끝나면 무조건 정주행해야겠다고 다짐했습니다.

실제로 정주행을 하고, 생활코딩을 만나 즐겁게 웹을 배웠습니다.
나모 웹에디터 때와 비교도 안 될정도로 좋아진 환경. 풍부한 자료.

개발 배우기 정말 좋은 때구나!

업무에 활용

쏙쏙 들어오는 생활코딩 ‘egoing’님의 강의로 코딩에 대한 전반적인 이해를 하고, 다시 엑셀 VBA로 돌아왔습니다. 의무 복무를 하던 당시에 주 업무였던 ‘공문 작성’을 자동화하기 위해서.

이제부터 실전이다.

자동 공문작성

엑셀에 입력해 놓은 개인정보와 행정처리 결과를 공문으로 한장씩 작성하는 업무였습니다. 반복작업인데, 정부프로그램이 워낙 별로라, 그 안에서 하나하나 복사 붙여넣기를 하기는 너무 번거로웠습니다. 같은 자리 클릭도 지겹고.

엑셀 VBA로 각 레코드에서 자료를 가져와서 , Word로 공문을 재작성 하는 기능을 만들었습니다. 당연히 반복문만 걸어주면,여러 레코드도 문제없었습니다. 만들어진 공문들을 정부시스템에 ctrl+c, ctrl+v 만 해주면 됩니다. 이 때부터 꿀을 빨면서, 확보된 여유시간에 코딩공부를 더욱 합니다.

이후 업무가 바뀐 다른 공문을 쓰더라도 템플릿만 바꾸면 되기 때문에 고치기가 수월했습니다. 이전 코드를 보고 다시 짜면서, 비효율적인 코드가 눈에 들어올 때마다 실력이 늘어난 것도 확인 가능했습니다.

자동 공문작성은 새벽에 갑자기 대량의 문서를 생산해야 할 일이 있었을 때 빛을 발했습니다. 1시간 걸려서 짠 프로그램을, 5년이 지난 후에도 문제 없이 쓰고 있다고 합니다.

자동 입력 매크로

업무가 공문 작성만 있는 것은 아니였습니다. 엑셀에 있는 내용을 또 한번 정부시스템에 일일히 쳐서 검색하고 검색한 데이터에 클릭으로 결과를 입력하는 일도 있었습니다. 문제는 데이터가 하루에 200개도 될 수 있다는 것. 입력 자료도 퇴근할 때쯤 들어와서, 퇴근 전 2시간 정도 눈 빠지게 해야하는 업무였습니다.

파이썬, Selenium 을 이용해 기능을 만들고, 편하게 쓰기 위해 QTpy 로 GUI를 만들었습니다. GUI까지 짜고보니 진짜 프로그램을 만드는 기분이 들기 시작했습니다.

이후 간단한 AutoHotKey 를 이용해 금방 만들어서 활용하니 삶의 질이 매우 향상되었습니다.

업무자동화 오픈채팅방

VBA관련 포스팅도 충분했지만, 도큐먼트라는 게 있는지도 잘 몰랐고 읽는데도 익숙하지 않아 오픈채팅방에서 질문을 많이했습니다. 그런데 어느날, 유일했던 엑셀VBA 오픈채팅방을 방장이 폭파시켜버렸습니다!

‘없으면 내가 한다.’ 그래서 바로 채팅방을 팠는데, 당연히 그 방에 있던 사람들도 흡수됐고 서로 질의 응받을 주고 받으면서 지금은 400여명(현재 379명)이 들어있는 채팅방이 됐습니다. 업무 자동화 방 이 또한 새로운 경험이였고, 진취적인 개발하는 비전공자분들과 친해질 수 있는 기회가 되었습니다.

유랑자

VBA를 어느정도 알겠다 싶었을 때부터 개발로 하고 싶은 것들이 하나씩 생각났습니다. 그리고 본격적인 개발 유랑을 시작합니다.
가장 먼저 하고 싶었던 건 ‘게임 만들기’ 였던 것 같습니다. 무슨 게임을 만들고 싶다기보다는 ‘게임이 만들어지는 원리’가 궁금했습니다.

메인 화면은 어떻게 만드는 거지? 캐릭터들은 어떻게 서로 상호작용이 가능한거지? 전체 프로그램은 어떻게 껐다 켰다 할 수 있는거지?

인터프리터로 처리되는 스크립트 언어만 했던 저로써는 당연히 이해할 수 없는 것들이였습니다. ‘객체’ 라는 것이 있다는 걸 그때 처음 알았으니까요. 공부한지 1년이 지나고였던 것 같습니다. 게임코디 강좌 로 코드만 쭉 보는데 어떻게 하는지 전혀 모르겠어서 킵해두고 실력을 더 쌓기로 했습니다.

코딩 게임

생활코딩으로 입문했기 때문에 당연히 입문언어는 웹쪽 언어인 자바스크립트였습니다. 자바스크립트 서적도 읽고 오픈채팅방에서 이해 안되는 부분도 이것저것 물어보며 지냈는데, 그 때 채팅방에서 친해진 분이 같이 하자고 한 게임입니다. 그 중에 Clash Of Code 라는 게임은 주어진 테스트 케이스에 맞는 출력을 하는 게임입니다. 누가 더 빨리 짜나도 따지지만 코드가 얼마나 짧은가로도 경쟁을 하다보니 실력도 확확 늘고 재미있게 했습니다. 게임을 하면서 실력있는 개발자분이랑도 친해져서 개발 가이드도 받을 수 있었습니다. 게임 튜토리얼부터 알고리즘 풀기가 있어 어느새 알고리즘으로 관심이 빠져버렸습니다.

백준, 알고리즘, 종만북

알고리즘을 배우면 누구나 통과하는 관문, 백준종만북으로 공부를 한창했습니다. 1권 중간까지밖에 못읽었지만 종만북을 읽으면서 좋았던 것은 인터넷에도 좋은 자료들이 있지만 ‘사람들이 좋다고 하는 책’ 은 진짜 좋다는 것을 몸으로 느꼈다는 것입니다. 이후 전개 자체가 깔끔하고 이해가 쏙쏙되는 좋은 책들을 찾아 읽으면서 더욱 코딩생활이 재밌어졌습니다.

이어지는 와리가리

이후 아두이노(갑자기 드론이 만들어보고 싶어져서), 프로세싱(아두이노 알려주는 책에서 이걸 쓰길래), 라즈베리 파이(아두이노 책에서 소개해서), 리눅스(라즈베리 파이로 서버 돌릴 수 있다고 해서), Java(서버는 Java spring으로 만들어야 된다길래), Node.js(요즘엔 이게 서버만들기 더 쉽다고 해서), SQL(아무래도 데이터베이스는 알아야 할 것 같아서) 등등을 공부하며 여러분야를 찍먹해봤습니다. 깊지는 않았지만 기존 알고 있던 기술들을 이해하는데 도움이 되었습니다. 더 중요한 것은 새로운 분야를 새로 배우는데에 거부감이 줄어들었습니다.

경제 활동

외주

경제 활동과 상관없이 개발을 공부했지만, 하다보니까 생각지도 못하게 개발로 돈도 벌게 되었습니다. 업무자동화 방에서 크몽으로 엑셀 프로그래밍 외주를 하시는 분이 있길래, 도전했는데 처음 의뢰하신 분이 장기 고객이 되셔서 꽤 오래 작업을 해줬습니다. 마사회 사이트에서 경마 자료(이전 경기 기록, 훈련 성과 등)를 스크래핑해서 나름의 기준으로 조합해 예상번호를 뽑는 프로그램이였습니다. 적중이 얼추 돼서 꽤 돈을 버셨던 것 같습니다. 나중에 프로그램을 쓰는 회원도 모집하려고 웹도 만들자고 하셨는데 프레임워크는 있는 줄도 몰랐고, 서버에 대한 지식이 없어서 못했던 아픔이..

과외

유튜브 채널 코딩 트레인을 운영하는 ‘Daniel Shiffman’님에게 영감을 받아, 저도 코딩의 멋짐을 널리 알리고 싶어서 지인들에게 무료강의를 했었습니다. 카톡 단체 강의도 해보고 원데이 클래스로도 진행했습니다. 이해하고 활용하신 분들은 소수인 것 같지만.. 이후에는 크몽에서 과외도 개설해서 좋은 인연도 많이 만들었습니다.

과외나 외주를 하면서 좋은 점은, 개발 외에 다양한 분야의 분들이 어떤 곳에 프로그래밍이 필요해서 요청을 하시는지 볼 수 있다는 것입니다. 요청자 중에 도박사이트를 운영하시는 걸로 의심되는 분도 계셨는데(당연히 거절함) 세상의 다양한 면을 알게 되었습니다.

전자책 쓰기

업무 자동화 방에 처음 들어오시는 분들이 질문이 공통적이라, 시작부터 기초적인 부분을 담은 전자책을 써서 wikiDocs에 게시했습니다. 시험삼아 크몽과 탈잉에도 출판했는데 은근히 몇 부 판매 된 것도 신기했습니다.

창업

의무복무가 끝날 무렵 진로에 큰 고민은 없었습니다. 전공으로 돌아가기 전에 창업이 해보고 싶었습니다.(너무 만만하게 봤던게지)

첫번째 창업팀은 복무 중에 들어가 틈틈히 회의를 했는데, 논문을 스크래핑하여 인공지능을 이용해 인사이트를 뽑아내려는 곳이였습니다. 덕분에 코세라에 있는 ‘앤드류 응’ 교수님의 좋은 강의NLP강의 :CS224n 도 알게 돼 AI도 chatGPT 열풍 전에 미리 접할 수 있었습니다.(알파고가 한 번 휩쓸고 가긴 했습니다.)
하지만, 페이나 지분에서 비전이 불확실해, AI공부와 논문 크롤러만 만들기만 마치고 도망쳤습니다. 지금 ChatGPT 나온 거 보면 아찔하네요.

두번째 창업팀은 전공과 관련있고, 같은 학과 사람과 시작했습니다. 서비스를 운영해볼 수 있을 정도로 React와 서버까지 공부가 된 상태였습니다. 구현과 서비스의 기회를 놓칠 수 없어 뒤도 안재고 시작했습니다. 그러나 지분과 투자에 대한 견해차이로 그만 두었습니다. 계속 기획이 바뀌는 바람에 서비스를 못 돌려보고 나온 것이 천추의 한..

마참내, 게임 만들기

마참내!

창업 좌절 후 전공으로 돌아가 1년 동안 일을 했습니다.일을 하면서 이직 타이밍에 꼭 하고 싶었던 것이 있었습니다. 그것은 바로 ‘게임 만들기’
개발에 감을 잡았을 때부터 관심이 있었고, 코딩에 입문하게 해준 것도 어찌보면 게임만들기(스도쿠, 체스)였기 때문에 이 타이밍에 안하면 후회하겠다는 생각이 들어 유니티 튜토리얼을 후다닥 수강하고 제작에 돌입했습니다. 해외여행 기간도 줄이고, 2달여간 만든 결과물입니다.

Box Tengo(Android)
Box Tengo(iOS)
Okkay Studio 블로그

즐겁다!

게임 만들기가 눈물나게 자랑스러운 성과인 이유는, 초창기의 목표가 5~6년만에 마침내 이루어졌다는 것. 또 처음으로 불특정 다수에게 실제로 서비스하는 프로덕트를 만들었기 때문입니다. 배포는 비록 스토어의 힘을 빌렸지만, 지금까지 개인용으만 제작했던 외주나 개인 프로젝트와는 또 다른 공기입니다.

아무도 궁금해하지 않는 회고를 마치고

사실 스스로를 위해 기록했습니다. 여기까지 오는데 6년 걸렸구나.
아직도 할 말이 많아, 인상 깊었던 프로젝트는 따로 포스트를 파야겠습니다.

늦은나이지만, 이제는 취미를 벗어나 생업으로 개발을 해보려고 합니다. 지금까지 해내온 것을 보니 힘이 납니다. 몇 년 후에 또 한번의 개발 회고를 쓸 수 있기를 바라며.
마칩니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.