정말 아이디어만 생각한지 십 수년. 이것저것 시도해 본 게 수 십개. 그 과정에서 얻고 배운건 많지만 유의미한 결과로 나온것이 별로 없다.
2002년 병특으로 시작한 개발경력이 이제 20년차에 이르렀다. 그리고 이젠 무엇이 되었든 하나라도 결과물을 만들어 보고자 한다. 늘 생각하는, 소프트웨어 개발자로서, 태생적으로 결과물은 사라지게 되어있지만 그래도 무엇인가 작은 흔적으로 남을 수 있다면 나의 인생에 그리고 이 세상에 조금은 의미를 남길 수 있지 않을까 싶다.
20년동안 나는 어떤 일들을 해 오고 무엇을 배웠을까?
어려서 부터 컴퓨터에 관심이 많았고 컴퓨터 학과에 진학했지만 일반 프로그래밍은 약간 지루하고 목표의식을 가지기에 어려운 주제들이 많았다. 이걸 왜 배우고 이것으로 무엇을 할 수 있을지를 구체적으로 생각하기 어려웠고 조금은 시각적인 부분에 집착하는 나로서는 딱히 흥미를 가지지 못했다. 마치 중고등학교 때 공부를 왜 해야 하는지 모르고 하는 것처럼… 그 당시(1999년)개인 웹사이트 만들기 붐이 시작되었던 시점인데, 나 또한 조금 더 시각적인 웹사이트 제작에 끌렸지만 프로그래밍의 재미를 느끼기엔 한계가 있었다.
괜찮은 디자인 템플릿이나 자바스크립트로 된 인터렉티브한 메뉴(그래봐야 별 쏟아지고 버튼 색 바뀌는 정도)를 찾아보다 마주치게 된 플래시(당시 매크로미디어 플래시)가 나의 인생을 바꿔놓았다. 자바스크립트와 유사한 레벨의 스크립트, 통합된 개발 환경, 가벼운 결과물과 웹에서 쉽게 보이고 상호작용 할 수 있는 범용성 등 기존 프로그래밍 언어로 무언가를 할 때 장애가 되었던 모든 것들이 간단하게 정리되어 있는 기분이었다.
성인이 되고 처음으로 무엇인가 관심있는 분야를 가지게 되었고 플래시로 만들 수 있는건 무엇이든 만들기 시작했다. 개인 홈페이지, 게시판, 그림판, 학교 발표 등등.. 무엇보다 만들자 마자 배포하고 주변의 피드백을 받을 수 있다는 것이 가장 큰 매력이었다.
2002년 월드컵이 끝나고 병특을 시작하게 되었는데 제일 처음 했던 업무는 공장 자동화… 70년대 c 로 만들어진 프로그램의 하드웨어(프로그램은 손대면 안됨)를 유지보수하고, 해당 로직을 파악해서 공장자동화 솔루션으로 다시 개발하는 것이 주 업무였다. 델파이나 시중에 나와있는 자기만의 스크립트 언어를 가진 솔루션을 사용해야 했는데 개발 자체도 어렵지만 해당 공정을 파악하기 어려워 힘들었던 기억이 난다. 결국 코딩 스킬위에 도메인 지식이 우선해야 한다는 단순한 논리를 배울 수 있었다. 그 와중에도 플래시를 UI 로 사용해 보려고 한다던가 하는 시도를 했는데 마지막으로 했던 업무가 회사에서 신규 프로토 프로젝트로 만들던 발 지압+조이스틱을 연동한 청기백기 게임이었는데 하드웨어 연동과 게임로직을 C#으로, UI를 플래시로 만들어 개발 비용과 기간을 많이 단축할 수 있었다. 이 곳에서는 DB와 백엔드, 서버/클라이언트등의 개념들에 대해 실무에서 경험해 보고 생각해 볼 수 있는 기회가 많았고 공장의 거친 사람들과 수 많은 갑질 클라이언트들을 사회에서 가장 낮은 레벨인 어린 병특 초년생의 신분으로 어떻게 대해야 할 지 배울 수 있었던 것 같다. 쉽게 말하자면 꼰대 접대 스킬이 만랩을 찍었던 시기… 잘 만든 프로그램도 중요하지만 결국 사람이 하는 일이니 사람과의 관계가 모든것을 결정한다는 큰 깨달음을 얻었었다. 유지보수 업무 때문에 기계를 멈춰야 할 때 자기 실적 떨어진다고 면전에서 욕하던 실무자 아저씨들의 마음을 얻어 점심밥까지 얻어먹고 조카 소리듣는 수준의 관계로 바꾸기도 하였다.
2004년 한게임 플래시게임팀으로 이직, 지금의 하이퍼케주얼 장르이자 당시 대 유행이었던 플래시게임을 만들게 되었다. 2008년까지 한게임-네이버에 있고 중간에 휴직 후 학교를 졸업하면서 본격적인 사회생활을 하게 되었는데 여기서는 당연히 플래시만을 사용했다. 웹의 미래가 플래시에 달려있을것 같던 시절이었다. 작은 게임을 반복적으로 만들며 기획-개발-출시의 사이클을 어려번 경험해 봤다는게 가장 큰 경험이었다. 중간에 1년정도 일본에서 일해본 경험도 좋았고 내가 만든 결과물이 네이버의 첫페이지나 서비스에 나타나는 뿌듯함도 많았다. 팀을 옮겨 UI/UX에 관련된 개발을 했던것도 지금 생각하면 아주 바람직한 경험이었다.
이런 욕구가 충족되면서 내 기대는 일반적인 사회 생활에 대한 것으로 옮겨갔다. 더 높은 연봉과 더 많은 책임을 가지고 싶었다. 내 기대가 너무 컸던 것일까 아니면 빠르게 성장하는 조직에서 내 역할이 없었던 것일까? 지금 생각하면 간단히 답이 나오는 문제이지만 그 때는 어떻게 해야할지 몰라 많이 혼란스러워 하고 힘들어 했던것 같다. 사람을 잘 믿고 아직은 어려서 온갖 희망고문에 조리돌림 당하던 때, 더 이상 이용당하고 싶지 않다고 결정하고 다른 기회들을 알아보기 시작했다. 플래시가 대한민국에서 정점에 달해있던 때라 여러 알바도 쉽게 얻고 강의에 번역에 회사 일 말고 다른 활동들을 활발하게 하다보니 회사에서 연봉올리는 것보다 돈이나 경력에서 훨씬 좋다는 것을 알게되고 다른 사람들은 이미 이렇게 살 고 있다는 것에 또 충격을 받는다.
결국 큰 프로젝트를 받아 2008년 법인으로 창업, 정말 안해본 일이 없을 정도로 수 많은 일을 했다. 개발도 개발이지만 대표로서 개발 이외의 모든 일들을 처리해야 하는 어려움이 있었다. 하지만 사람들 대하고 만나는걸 좋아했고 스스로의 회사를 키운다는 즐거움이 있어서 번아웃 없이 꾸준히 달릴 수 있었다. 말 한마디에 수천만원씩 왔다갔다하는 계약의 순간이라던가 개발 이외의 많은 요소들이 나의 삶에 미치는 영향력을 다시금 확인하며 매트릭스의 진실의 약을 먹은 사람처럼 다시는 직장인으로 돌아갈 수 없다는 것을 알게 되었다. 사업(?)은 잘 되었지만 외주업무만을 주로하고 우리의 사업이 없었던 때라 이 때 부터 뭔가를 해야한다는 강박이 생겼던것 같다. 수 많은 아이디어 회의와 프로토 개발 그리고 실제 구현과 실패를 경험하며 리더쉽의 부재, 소통의 아쉬움 등의 여러 문제를 알게되고 또 해결하고자 했지만 눈 앞에 들어오는 다른 계약들을 무시할 수 없어서 우리들의 프로젝트는 자주 중단되고 바뀌었다. 2011년 즈음 이러한 상황이 반복되고 번아웃이 올 때 즈음 회사를 정리하게 된다. 무엇을 하겠다는 확실한 동기가 없이 브레인스토밍만 하는것 보다 무엇을 하겠다는 생각이 구체적으로 생기면 다시 시작하겠다는 마음이었다. 08년 창업후 첫째, 10년에 둘째가 태어나서 이전처럼 밤샘하고 미친듯이 일을 할 상황이 안되었던 것도 이유였다.
법인은 유지하고 있었기에 들어오는 일들은 혼자 처리하고 무슨 사업을 할 지, 어떤 서비스를 만들지 고민하는게 일과였다. 일하면서 만난 많은 사람들을 다시 만나며 팀을 꾸려보기도 하고 정기적으로 아이디어 회의도 해 보고 그 와중에 외주 업무와 셋째 임신 그리고 고민과 고민과 고민… 2012년 카카오 게임의 성공에 자극받아 퍼즐장르의 게임을 처음으로 만들어 앱스토어와 플레이 스토어에 출시했다. 마케팅에 대한 개념이 없는 상태라 출시 후 다운로드 자체가 되지 않았고 예상하지 못했던 많은 사이드 업무들로 게임 출시 후 ‘좋은 경험했다’ 정도의 결론을 내리게 되었다. 외주 아티스트와의 협업, 코어 게임 플레이 외에 생각해야 할 수 많은 변수들, 스토어 페이지, 홍보 등 개인이 하기에 부족한 많은 점들을 다시금 확인하며 또 다시 외주와 번역…
당시 전세로 살던 전원주택이 살기가 어려워질 정도로 하자가 많고 악화되자 이걸 계기로 늘 이야기만 해 왔던 해외 이민(당시엔 한 번 살아보자 정도…)을 결심, 급히 모든 걸 처분하고 2014년 한국을 떠나게 된다. 내 머릿속의 계획은 게임을 몇 개 더 만들어서 돈을 벌거나 그게 안되면 만들어 놓은 게임을 포트폴리오로 어딘가에 취직을 한다는 것. 말레이시아, 발리 여행 중에 비슷한 장르의 게임 2개를 완성해서 내 놓았지만 역시 반응은 좋지 않았다. 첫 번째 게임과 비슷하게 홍보가 전혀 되지 않았고 이런 부분을 어떻게 해결해야 하는지 전혀 모르던 때였다.
2014년 6월, 독일에 들어온 상황에서 현실적으로 비자 받기가 어려워 취업을 결심, 언리얼 엔진으로 콘솔 게임을 만드는 회사에 플래시를 이용해 UI를 만드는 포지션으로 입사하게 된다. 스케일폼이라는 프레임워크가 플래시를 언리얼 엔진에서 돌게 해주는데 엔진이 발전하는 것에 비해 플래시는 너무 느렸다. 결국 플래시 개발자로 채용되었으니 스스로 팀에 새롭게 UI를 만들것을 제안해 큰 성과를 내게 되었다. 언리얼 엔진과 C++로 성능과 디자인 효과에 큰 성과를 냈고, 이 변화와 도전으로 회사와 동료들에게 큰 신뢰를 얻게 되었으나 퍼블리셔의 프로젝트 취소로 이직을 하게 되었다. 이 곳에서는 언리얼엔진에 대해 많이 배우게 되었고 100명 이상의 큰 팀이 어떻게 하나의 프로젝트에 협업하는지, 수평조직 문화가 어떤것인지에 대해서도 많이 배우게 되었다.
2015년 9월, 독일에서 두 번째 회사는 모바일로 플래시 게임을 하는 업무였는데 이 회사는 조직 개발과 눈에 보이는 외형 확장에 돈을 아끼지 않던 미국 발 스타트업이었다. 내가 들어갈때 한창 확장하던 시기였고 제대로 된 에자일 개발을 하고자 각 팀 구성을 정석대로 꾸려놓고 정석대로 프로젝트를 진행할 수 있었다. 마치 투자자 돈으로 에자일 코칭을 받는 기분으로.. 덕분에 에자일 개발론에 대해 피부로 느끼며 배울 수 있었다. 또한 슬쩍슬쩍 손만 대 보던 유니티 개발도 시작하게되었다. 리드 엔지니어로서 역할을 시작하기도 했다. 하지만 이러한 방만한 운영으로 모회사가 매각을 결정하면서 당시 인수를 희망했지만 실패한 한국 회사가 베를린 지사를 만드는 데 합류하게 된다.
2017년 2월, 리드 엔지니어로 유니티 모바일 게임을 만드는 팀을 꾸리는 것이 주요 미션이었지만 한국 본사의 의사결정과 정치질 때문에 무엇하나 되는 것 없었던 시간이었다. 주로 외주 개발 업체를 관리하고 유니티로 프로토타이핑을 했는데 실력있는 외주 업체 CTO와 함께 한 프로젝트를 출시까지 할 수 있었다. 목표로 했던 영주권도 취득하여 처음 독일에 왔을 때 취업해야 했던 이유도 사라졌다. 이런 저런 생각으로 마음이 뒤숭숭 할 때 마침(?) 한국에서 갑자기 지사 철수를 발표하게 된다. 정치질이 이유였는데 여러 경험으로 한국 회사와는 일하지 않겠다고 결심하는 계기가 되었다.
다시 나만의 일을 해야하나 조금 쉬어야 하나로 뒤숭숭할 때 잘나가는 스타트업에 들어가 있던 기존 동료가 같이 일해보자는 제안을 했다.하다가 싫으면 언제든 그만두자는 마음으로 2018년 6월에 합류해서 여러 포지션을 두루 거치며 마지막엔 50명 이상의 개발자를 책임지는 역할을 하기도 했다. 자율 주행 관련 시뮬레이션을 만드는 회사라 처음엔 클라이언트 쪽 유니티 개발을 했지만 가벼운 뷰어가 있어야 해서 WebGL로 뷰어/에디터를 만들고, NodeJS 로 툴을 만들고 Jenkins 와 도커로 CI/CD 구현을, 그리고 이 모든것을 나 대신 수행할 사람들을 채용했다. 개발팀, QA팀, 릴리즈팀을 만들고 사람을 뽑고 관리하고 개발 업무와 프로젝트 지원 등 회사의 중요한 의사결정에 중요한 포지션으로 일 했기 때문에 꼭 사업이 아니더라도 이 곳에서 같이 성공할 수 있지 않을까? 라는 희망회로를 돌리던 때였다. 네이버에서 얻은 교훈 때문인지, 대부분 나와 맞지만 내가 특히 싫어하는 일을 해야 하는 상황 때문이었는지 모르겠지만 어쩐지 나 스스로가 장기판의 말일 뿐이라는 기분이 들면서 처음으로 아무런 계획없이 사직을 하기에 이르렀다. 사직 후 계약에 따라 최소 3달을 더 일해야 했는데 나 스스로가 정신적으로 얼마나 지쳐있었는지, 그럼에도 불구하고 아직도 나 스스로 내보일 수 있는 무엇인가가 없다는게 속상했다. 마침 독일에서 같이 일했던 친구의 소개로 한 창업자와 함께 모바일 앱 프로토 타입을 만들어 투자를 받아보기로 했고, 동시에 같이 일했던 친구와 게임 프로토타입을 만들어 역시 우리만의 게임 회사를 만들어 보자는 계획을 세웠다. 이제야 직장인에서 다시 사업가로 돌아가는 마음으로…
2020년 1월, 모바일 앱 프로토는 만들었지만 코로나로 대부분의 투자 미팅이 취소 되어 프로젝트를 홀드 상태에 들어갔다. 게임 프로젝트는 우리의 지분은 거의 포기하는 대신 전폭적인 지지를 해주는 회사에 들어가서 하는 것으로 결정 되었다. 아직도 안정적인 급여의 미련을 버리지 못해 결국 이 길을 택했다 ㅠㅠ 게임을 만들면서 스스로 프로젝트도 시작한다는 마음이었다. 하지만 곧 프로젝트가 바빠지며 개발과 팀 빌딩에 시간을 보내다 보니 어느새 2022년이 되었다.
물론 그 와중에 형이랑 웹지엘로 만드는 게임 프로젝트도 하고 유니티로 게임 프레임워크도 만들어 보았지만 꾸준히 지속되지 못했다. 그렇게 게임만들고 갈팡질팡만 하다 무엇이라도 한 걸을 앞으로 가야겠다고 다짐한게 수 개월 전… 그리고 이제 이렇게 첫 발을 다시 내 딛었다. 프로젝트는 플러터로 만드는 폐쇄형 SNS, 그리고 유니티로 만드는 게임 이렇게 두 가지이다. 하나도 못하는 놈이 왜 두 가지를 동시에 하냐면 하나를 하게 되면 다른 한쪽이 하고 싶어 의욕이 떨어지는 때가 있는데 그 때 주제를 바꿔 진행한다면 조금 효율이 좋지 않을까 하는 생각에…
테크트리 요약
1992 Turbo C
1999 Java, C++, JS, Flash/AS
2002 Delph, VB, PHP
2003 C#, ASP
2014 UE4/C++
2015 Unity/C#
2018 WebGL/TS
2019 Flutter/Dart
현재 주로 사용하는 기술들 Flutter/Dart, Unity/C#, JS/TS, NodeJS, Electron, Vue, Firebase
애플과 구글 개발자 등록도 새로운 계정으로 했다.
그리고 오늘 첫 일지를 남긴다. 프로젝트명은 nocnoc.me 와 LastHero(가칭)
애플, 구글 개발자 등록
스토어 페이지 세팅 및 각종 certificate/provisioning 설정
깃헙에 프로젝트 등록, 초기 커밋
파이어베이스 프로젝트 세팅
CodeMagic 에 nocnoc CI/CD 연동 및 테스트
nocnoc 기본 flow 디자인
nocnoc 네비게인션 바