2013년 즈음이었다. 그 해 여름날도 여느 때와 다름없이, C++로 게임 서버를 열심히 개발하던 날이었다.
시장은 대격변을 맞이하여 모바일 게임으로 시대가 변해 있었고, 빠른 반응성보다는 결과 저장만 필요한 웹 서버만 있어도 충분한 시대가 되어있었다.
반응성 보장에 조금만 실패해도, 부정적인 게임 플레이 경험을 주기에 ns (나노 세컨드) 단위로 로직에 신경 써야 했던 시기는 지나가고, 어느새 웹 서버 기반의 장점이 극대화되어 몇 년 새 난 뒤쳐진 사람이 되어있었다.
그나마 다행이었다면, ruby on rails로 웹 서버를 접해봤다는것 정도랄까?
내가 잘하고 경쟁력 있는 것들이 “별로 중요하지 않다”는 기조는 내가 해온 것이 부정당하며 뒤쳐졌다는 생각을 지우기 어려웠다.
실제로 다니던 회사가 문을 닫게되어 구직하던 과정에서의 몇몇 면접관에게
이제 소켓 서버 왜 써요?
웹 서버도 아직 안써봤어요?
신기술 공부 잘 안하시나봐요?
같은 비아냥을 꽤나 여러 차례 들어야했다.
꽤나 긴 시간 동안 실제로 그랬다.
모바일로 시장이 넘어간 2013년부터 2016년 리니지2 레볼루션 이전의 대다수의 게임은 소켓 서버가 필요하지 않았다.
웹서버를 통한 DB 저장만 해도 되는 싱글 플레이 게임이 다수였기에 가능했다.
나도 그래서 소켓 서버를 제쳐두고 웹 서버를 더 파고들었다.
그들이 그걸 원한다면, 그 것도 잘하고 싶었다.
그럼에도 나는 꽤 이단아였는데, ruby on rails를 쓰는 결정 때문이었다. 해외에서의 많은 레퍼런스와 달리 국내에서 ruby on rails 매우 비주류 였다. 특히 게임용 웹 서버로는.
그렇게 내가 웹서버에 익숙해지다보니, 다시금 소켓 서버가 필요해졌다.
모바일에서도 상호 작용이 필요한 게임 들이 늘기 시작한 것이다.
그렇지만 나는 다시 비동기 네트웍 엔진 및 게임 프레임 워크 전문가로 돌아가기를 포기했다.
내가 가장 오래 해왔고 가장 잘 할 수 있는 것이지만, 오픈 소스 문화에서 잘 조립해 쓰는 문화가 나에게 큰 성장의 계기가 되었기 때문이다.
변화에 뒤쳐지지 않기 위한 몸부림이 어떤 의미에선 나에겐 계기가 되었다는 사실을 깨닫고 과거를 돌이켜보았다.
C언어 스타일 마인드 (나노 단위 최적화)에서 개발 효율성에 큰 가치를 두게 변했던 시기도, 객체 지향에서 마이크로 단위 기능 단위로 쪼개기 시작한 것도, 소켓 서버만이 아닌 웹 서버를 사용하게 된 것도 적어도 나에게는 꽤나 큰 편견과 고정 관념을 이겨내고 나서야 가능했다.
그 변화가 긍정적인지, 부정적인지는 별개의 문제다.
다양한 경험을 하고 다양한 변화를 받아들이다보니,무엇이 더 나에게 맞는지, 내가 어떠한 개발 철학을 가지게 됐는지가 확고해지고 단단해졌다.
기술적, 발상의 스펙트럼이 넓어지니 조금 더 나은 판단에 가까워질 수 있었다.
어쩌면 그 경험들이 내가 읽어온 수많은 개발 방법론 서적들의 명언들이 와닿게 되어, 발전의 계기가 되는거라고 생각한다.
나는 변화를 두려워하지 않을 수 있다면, 변화를 선도 할 수 있는 사람으로 성장 할 수 있다고 믿는다.
앞으로 몇단계고 더 넘어야 하는, 그리고 이런 변화에 두려움을 몇번씩 이겨내고자 해온 프로그래머로써 조금씩 더 유연해지자고 말하고 싶다.