웹사이트를 24시간 운영한다는 말은 보통 사용하지 않죠 너무 당연하니까요

또한 사람이 하면 백날 걸릴 일을 코드로 한다면 1초만에 해내게  수도 있습니다

코드를 만들어낼  있는 사람  개발자는 이런 것을 가능하게  능력이 있습니다

 코드가 일해서 돈을 벌게 하면 어떨까요?

저는 개발자로써 이런 초능력같은 능력을 가지고 개발자 자신의 노동량에 비례하는 수익을 얻는 것을  아깝고 비효율적이라는 생각을가지고 있고 저는  코드가 만들어주는  노동량에 비례하지 않는 수익으로 생활을 유지하며 시간을 자유롭게 사용하고있습니다

 

일단 이것을 시작할 당시의  상태에 대해 간략히 소개해보자면 독학으로 익혔으며 CS지식이라고 하는 것에 대해서는 거의 몰랐으며개발에 대해 대단한 식견이 있던 것은 아니였습니다. 만약 코딩테스트같은것을 봤더라면 바로 탈락했을것같고요  조직에서 일해본 경험도 없었습니다. 그냥 되게 하는 방법들을 익혀서 되게하는것 정도를 개발하면서 반복했을 뿐입니다. 그래서 코드의 상태가 비효율적이고 설계가 괴상했을지라도 아무렇게나라도 어쨋든 만들고자 하는건 어떻게든 만들어낼 수는 있었습니다.

 

당시 나는 개발과 상관없는 작은 회사에 다니고 있었으며 회사에  이외에는 코드를 암호문정도로 여기는 사람들 뿐이였습니다

그래서 개발을 그냥 독학으로 시작해서 혼자서 계속 우물안에서 내맘대로 아무렇게나의 방법으로 계속 했다고 보면됩니다

월급은 숨만 쉴수있을 정도로만 벌었고,  숨만  정도의 급여에  오래 안주했습니다

근데 안주했던 이유를 생각해보면 돈안드는 좋은 즐길거리를 가지고있어서였지 않나 싶습니다

저는 개발하는걸 취미로 즐겼습니다

뭔가 재미있는거 만들어서 출시하는 활동을 좋아했어요

그냥  소소한 취미생활을 유지할수 있을 정도의 최소한의 돈받으면서 살았지요

회사의 일은 매우 재미없었으며 무엇보다 누구나 같겠지만 아침에 일어나서 출근하는게 너무 싫었죠. 

은행에 가려면 점심시간을 이용해야만 한다는점도 싫었지요.

퇴근  집에서는 휴식의 개념으로 관심사에 대한걸 개발하는 활동을 했죠

이걸 하다보면 시간이 금방흘러서 늦게자서 아침에 피곤했죠

 

보통  필요에 의한 서비스를 만들거나 했었죠.

혹은 그냥 구현되면 멋지겠다 싶은것들 이였습니다

주로 멋지다고 생각했던 일은 이용자로 하여금  앱을 통해 어떤 긍정적인 경험을 하고  경험을 통해 이용자들의 의견을 피드백받는경험을 좋아했습니다

그냥  자기만족을 위한 취미생활이였기 때문에 시장의 니즈를 분석해서 타게팅한다던가의 것은 없었어요

그런만큼 대부분의 앱들은 사용자들에 의해 사용되지 않고 존재사실을 아무도 모르게 묻혔죠

그래도  실망은 없었어요 대중적 인기를 얻을거란 기대가 처음부터 없었으니까요

그렇게 만들어가던   하나가 사람들로부터 관심을 받게 되었습니다

그리고 나는 여기에 광고를 붙였고 이에 따라 수익이 만들어졌어요

수익이 이렇게 만들어질  있다는 점에 놀랐었지요

내가 일을 안해도 가만히 있어도 돈이 들어오니까요

이런건 생전 처음 해보는 경험이라 돈이란 내가 몸을 써서 움직일때 벌수 있는거로 알고있는데 이래도 되나? 싶은 생각까지 들었습니다

물론 엄밀히 따지자면 내가 가치를 만들어두었기 때문이긴 하지만 말이지요

사실 가치를 만들었던 행위는 자체는 수익을 보장할 수는 없어요

 행위에 대한 보상은 0일수도 있는거고 그간 해왔던 작업이 모두 그랬었죠

나는 그간 많은 것들을 만들었으며 대부분의 결과물은 지금 말하는것과 같은 수익을 만들어내지 못했어요

수익을 내게된 앱은 계속 만들어오던 작업중 연장선 상에 있던 하나였을뿐입니다

특별한점이 없었다고 생각해요

  역시 그냥 그간 해왔던 개발활동의 결과물중 하나였지요

그런데  것의 경우는 수익이 만들어지게 되었습니다

 수익은 현재까지 이어지고있으며 나는  수익에 기대며  시간을 수익활동 이외에도 사용할  있게 되었습니다

이런 상황이 만들어진건 내가 의도한게 아니기 때문에 운이 좋았다고 밖에 말할수는 없겠죠

그래도 이런 운이 생긴건 내가 앱을 만드는 활동을 계속 했기 때문일겁니다

실력같은게 좋았기 때문이 아니라 실행을 했기 때문입니다

복권을 안사면 당첨가능성은 0%인것과 마찬가지 상황이였던겁니다

그러나 개발의 경우도 마찬가지로 운이란 요소가 중요하지만 그래도 복권보다는 의도할수 있는 여지가 높다고 생각합니다

앱을 만들어나간다는 활동을 지속하는것에 따르는 리스크에 대해서도 생각해봅시다

 입장에서 무언가를 개발해서 출시하는것의 리스크는 개발자인 저의 노력과 시간이였습니다. 스스로 개발할 능력이 없다면 사람을 고용해야한다는 리스크가 있지요.

이런 저의 입장에서 볼때 기획만 가지고 사람들을 고용해서 도전하는 분들이 리스크를 감당하는 것이 대단해보이더군요.

다행히 저는 그런 부담은 없었습니다. 개발자인  입장에서는 내게 만들것에 대한 아이디어만 있다면  노력과 시간을 써서 만들수 있는 상황이였던 것이죠

그리고 나는 개발하는 것을 노력을 쏟아야하는 일이라기보다 지적인 여가활동으로 여기며  작업을 즐겼기 때문에 이것을 하는데 보낸시간을 리스크라고 말하기에는 무리가 있습니다

그냥 재미있게 한번 놀고나면 복권이 한장 손에 쥐어지는 셈이죠

 복권은 꽝일수도 있는거죠

5000원이라도 당첨되면 이득인거고요

따라서 내게는 리스크없는, 아무일 없거나 잘될일 밖에 없던 일이였던 겁니다

안해야할 이유가 없는겁니다

나는 이렇게 계속 반복적으로 다양한 서비스를 개발하고 출시해왔지요

사용자가 없을지라도요

 

어떻게 보면  한명으로 구성된 사무실 없는 스타트업 회사였던 셈이죠

그냥 인터넷에 연결된 노트북 하나랑 소정의 서버임대비용과 앱스토어와 플레이스토어 등록비용만 있으면 엄연한 개발회사가 운영될수있는 상황이였던겁니다

사무실을 준비해야하는 것도 아니였고 사람을 고용해야할 필요도 없었습니다 인맥이나 투자 같은거도 사실 내가  개발활동을 함에 있어서는 일단 크게 중요하진 않았습니다.

 

앱으로 하루에 점심식사 한끼 먹을수 있는돈을 벌게되었을  회사를 그만두었습니다

 점심 한끼 값이란건 내게  상징적인 돈이였습니다

 돈은 내가 노동하지 않을  자고있을때에도 만들어졌던 돈이였기 때문이고 무엇보다  금액이  점심식사 한끼 만큼이여야만 이유가 없는 돈이였기 때문이죠

나는 이돈은 당연히 점심식사 한끼야야만  이유가 없다는 확신이 들었습니다

단지 점심식사 한끼 금액이였어야만  이유는 앱의 인기가  그정도였기 때문이였던거죠

 

회사를 그만 두고 맥북 하나만 들고 여기저기 다니며 코딩 했습니다

그냥 놀러다닌거죠

당시 사용했던 맥북은 맥북에어2010년얼리 모델이였어요. 지금 기준으로 생각해보면  부족할 법한 성능의 컴퓨터인데 당시에는 이걸로 뭐든  했습니다

무엇보다 휴대성이 너무 좋아서 그냥 밖에 놀러다니다가 뭔가 생각나면 아무데서나 노트북을 펼쳐서 코딩을   있었습니다

지하철 승강장 의자에서 공원벤치에서 공항 게이트앞 대기하는  의자에서 등등..

버스안에서는 흔들려서 멀미가  나더군요

 

회사 다닐 때에는 회사에서 일하는 시간과 퇴근후 나를 위한 시간이 분명하게 구분되어있던 삶을 살았던 반면 이제는 모든 시간이 나를위한시간임과 동시에 모든 시간이 일하는 시간이 된겁니다. 근무시간의 개념이 완전히 사라졌죠. 그리고  시간은 회사에서의 근무의느낌과는 전혀 달랐지요. 회사다니며 가지던 나만의 시간이 24시간이  셈입니다

 

일상의 모습이 완전히 바뀌어버린겁니다

9 to 6 라는 시간적 제약은 사라졌습니다

은행을 가기 위해 점심시간을 포기할 필요가 없게 되었죠

아침에 일어나야할 이유도 사라졌습니다

아무때나 자고 아무때나 일어났지요

특정시간에 내가 있어야만  장소도 사라졌습니다 그냥 아무데나 있으면 되는겁니다

 

하루의 모든 시간이 나의 작업을 위한 시간이 된거죠

워라벨같은건 없습니다

워라벨이 없다는 말은 제게는 일과 삶의 균형이 없다는 의미가 아닙니다

내가 좋아하는 일이 회사다닐때에는 퇴근후에만 허락되었는데 이제는  생활의 전부가 되었다는 의미입니다

 

당시  앱은 서버의존도가 상당히 높은 앱이였고 나날이 시간이 지남에 따라 이용자가 늘어나면서 매번 새로운 국면을 만나기 일쑤였어요

새로운 국면이란 주로 서버가 감당해야할 부하의 상황이였던겁니다

매번이 생전 처음겪어보는 량의 트래픽과 부하였고 이것은 매일 갱신되었고 갱신됨에 따라 나는 서버의 부하를 줄이기 위해 서버측 코드의 비효율적 작동을 최대한 개선해서 원활한 작동을 할수 있도록 하는 작업을 해야했습니다

 당시 우리나라는 3g 인터넷 환경이였고 접속상태가 다소 불안정한 경우가 있었습니다

그래서 이용자로 하여금 어느정도의 응답지연은 일반적인 일로써 받아들여지는 분위기의 시대였죠. 그렇다 해도 아무튼  입장에서는이런 과부하가 일어나는것을 최대한 개선해야했고 이것은 운영을 하면서 백엔드  설계가 계속 바뀌어갔죠

장애의 상황은 언제든 일어날  있었기 때문에 맥북은 언제든 가지고 있었습니다

어쩌다 안가지고 나가면  그때 문제가 터지더군요

그럴땐 그냥 근처 애플스토어에서 맥북 하나 살까? 하는 생각까지도 들었습니다

 

이런 경험은 예전엔 많은 사용자를 받아본 경험이 없었기 때문에 경험을 못해봤던겁니다

 경험상 대부분의 작업은 사람들로 하여금  존재도 모르게 묻혔죠

이전에 만들었던 서비스들도 사실 많은 접속자가 들어올것을 어느정도는 대비해서 최대한 구조를  만들려고 노력했었지만 이용자가없는 이유로  노력이 소용없던 경우가 많았죠

그래서 처음에는   훌륭하게 설계하고 섬세해야할 필요가 없다는걸 배웠어요

이런 경험을 바탕으로 인기를 얻으면 그때 고민하자라는 생각으로 대충 만들었어요

그보다는 핵심적인 내용만 최소한으로 해서 빠르고 쉽게 만들어서 빨리 출시하는 시도를 하는게 낫다는걸 배웠어요

부하를 경험했던  첫번째 수익원이 되었던 앱역시 마찬가지로 이용자 없을거란 생각으로 서버는 대충 해서 최소한 기능만 하도록 만들어서 출시했던것이였죠

그랬던 관계로 많은 부하를 겪은  앱은 운영 이후 개선된 서버측 코드의 모습에는 처음의 구조는 찾아보기 힘들정도로 많이 변하게 됐던거죠

 

저는 재미있는 것을 만들기를 좋아하는 개발자입니다. 물론 개발자이기 때문에 개발자의 특유의 성향이 있습니다. 개발자라면 효율적인설계에 대한 것을 무시할  없습니다. 이것을  나가는것이 일에서 상당한 부분을 차지하고 그렇다보니 기본적으로 개발을 하다보면사고가 효율을 기준으로 사고되게 됩니다. 이를테면 클린한코드는 지향되는게 개발자 입장에서 상식이죠 당연히 성능적으로도 낭비가없어야합니다. 저는 이것을 개발자의 장인정신이라고 부릅니다. 다른 분들은 어떨지 모르겠는데 적어도 저는 그렇습니다. 그런데 이러한개발자의 장인정신 성향 때문에 실질적으로 중요한 부분을 놓칠 수있습니다

아무리 설계가 견고하더라도 사용자가 없으면 쓸모없습니다

리액트로 만들던 제이쿼리로 만들던 그런건 아무런 중요한 점이 아니란겁니다

 적절하지 못한 자료구조를 사용하여 성능적 낭비가 발생하더라도 유저에게는 그게  중요한점이 아닌경우가 많습니다 왠만해서 유저는 어떻게 만들어졌는지는 관심이 없습니다. 그보다는 쇼핑몰 사이트라면 싼곳을 선호할테고 게임이라면 재미있으면 그만입니다 만약중고마켓 서비스라면 번개같은 성능으로 사기꾼을 매칭시켜주기를 바라진 않을겁니다.

 

처음에 이야기 햇든 나는 개발자로써의 능력이 대단하거나 한게 아니였습니다. 그냥 아무렇게나 혼자 익혀서 코딩을 취미생활로써 이어가던 매우 평범한 개발자였습니다

시간이 지나 생각해보니 내가 조금은 특별했던 한가지는 실행을 했다는 점입니다

실행을 안했다면 아무일도 일어나지 않았을테고  10년간의 시간이 어떻게됐을지 조금 아찔합니다

앱의 흥행의 기세를 이어서 이후에도 몇개가  흥행했고 나는 이것들에 의지해 수익활동과 전혀 관련없는 순수히 재미만을 추구하던 예전에 퇴근후 즐겼던 취미개발활동을 그때보다는  부담없이 즐길  있게 되었습니다

 

+ Recent posts