ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소프트웨어 개발을 공부하며 느끼는 점
    생활 이야기 2018. 7. 9. 15:30
    반응형



    소프트웨어 개발을 하면서 느낌점을 적어보고자 한다. 나는 왜 소프트웨어 개발을 공부하는 것인가? 에 대한 질문을 던져보았지만 처음 공부할때처럼 '세상을 보다 좋은 곳으로 만들기 위해서' 라는 대답이 쉽사리 나오지 않았다. 그런 말은 상투적이고 의미없다는 것을 깨닫아버려서인것일까 라는 고민도 해보았지만 아직까지 잘 모르겠다.


    소프트웨어 개발 중에서도 유독 웹을 좋아하는 이유는 여러가지가 있지만 웹 브라우저는 최근 존재하는 어떠한 기기에서든지 대부분 내장되어 있기도 하고 온라인 상태만 된다면 동일한 경험을 사용자에게 제공해줄수 있어서이다. 어떤 사람이든 모두에게 좋은 것은 제공되어야 한다는 나의 철학과도 잘 맞기도한다. 다만 이 철학이 최근에는 흔들리고 있는것같아서 조금 서글프기도하다. 결국 거대 소프트웨어 개발사들은 돈을 목적으로하는게 아닌가 라는 생각이 들기때문이다. 자본주의 사회에서 돈의 중요성은 말도 필요없겠지만 개인적 철학과 개발자 개인의 이익을 어떻게 적절하게 분배하느냐에 대한 고민 또한 크다.


    예로들어 최근들어 재미있게 즐겼던 'Unturned' 라는 게임을 보자. 이 게임은 스팀에서 제공되고 20대 개인 개발자 혼자서 개발한것으로 알고 있다. 다만 이 게임은 무료이며 개발자가 향후 앞으로도 유료가 될 일은 없다고 못박았기에 이 게임은 앞으로도 계속 무료일것이며 추가적으로 유료 아이템이나 사용자의 지갑에서 돈이 나가게 하는 행위는 없을것이다. 물론 Golden 유저인가하는 기부 행위가 있긴 하지만 사실 사람들의 선행에 의지하는것은 많은 무리가 있다고 생각하기에 개발자의 생계를 어떻게 유지시켜줄 것인가에 대한 문제를 해결하여주지 못한다. 


    물론 Unturned 라는 게임으로 게임개발자로서의 이름을 알려 다른 게임회사에 취직할수도 있고 추후에 다른 팀을 꾸려서 다른 게임을 개발할수도 있겠지만, 지금으로서는 Unturned 게임 하나로는 어떠한 확실한 수익을 내지 못하는것이다. 이 말은 결국 지속 가능성이 적어진다는 소리이다. 물론 계속 유지될수도 있겠지만 가능성이 적다는 소리이다. 왜냐하면 보상없는 행위는 아무래도 동기부여가 줄어들기 때문이다.


    언턴드의 해맑은 하늘(?)


    이 Unturned 라는 게임을 개발하기 위해서는 어마어마한 시간이 들었음이 틀림없을 것이다. 이 게임을 얼리엑세스 때부터 플레이 해왔지만 어떠한 소프트웨어 (게임)을 개발하다 보면 어마어마하게 많은 문제들을 해결해야함은 분명하기 때문이다. 소프트웨어 개발자들이라면 분명 공감을 할 것이다. 사소한 세미콜론 하나만으로도 에러를 유발하여 머리를 아프게 할수 있음을.. 물론 고수 개발자의 길로 갈수록 그러한 문제들에 대해 대응하는 방법이 좀 더 능숙해지겠지만 나는 아직 뉴비 개발자라 그런 부분까지는 잘 모르겠다. 내가 하고싶은 말은 어떠한 소프트웨어 (게임)의 완성체를 개발하기 위해서는 수많은 시간과 노력이 필요하다는 소리이다. 만약 수익이 발생하지 않는다면 이 개발 기간동안 투자되는 식비, 숙박비(?), 취업함으로서 얻을수 있는 월급의 기회비용은 지속적으로 지불되고 있는것이다.


    물론 내가 만약 언턴드의 개발자라면 지금 비록 수익이 한푼도 나오지 않더라도 굉장히 뿌듯하고 사실 현재 언턴드의 프로젝트들이 굉장히 많이 존재하기에 다양한 개발자들과의 소통에도 기회가 생겨 굉장히 즐겁지 않을까 생각한다. 개인적인 생각으로 언턴드라는 게임이 향후에 어떻게 진행될지 궁금하지만 지금까지만해도 상당히 성공한 게임에는 틀림없다. 스팀 그린라이트에 등록되기도 한 게임이니 말이다.



    소프트웨어 개발을 처음 시작하면 하는것이 Hello World을 찍어보는것이다. 그렇다면 이 Hello World라는 소프트웨어는 어떠한 것을 의미하는것이냐면 이 분야에 대해서 공부를 하겠다 라는 개발자의 첫 의지를 보여주는것이자 결과물인것이다. 다만 요즘 고민중인 부분은 이 Hello World라는 분야에서 무엇을, 어떠한쪽으로 나아가야하는가? 에 대한 고민이다. 다들 알다시피 Hello World라는 결과물 자체만으로는 결국 '수익'이 발생하지 않는다. 그러면 이 Hello World 라는 것에서 시작해서 어느쪽으로 개발을 진행하여야하는가 에 대한 질문이 나오는데 사실 답이 없음을 알고 있음에도 불구하고 다들 한번쯤은 고민해본 문제가 아닐까 생각한다. 


    예로들어 To Do List CRUD 앱을 만들어서 이것을 포트폴리오로 활용해서 다른 회사에 취직한다 라는 답도 있을것이고 To Do List CRUD 앱 자체의 기능을 더 발전시켜 할일 앱을 창업할수도 있을것이다. 다만 어떤 언어를 배워서 어느 분야에 활용하느냐 에 대한 답이 중요하지 않을까 라고 생각하는데 그 이유에 대해서는 결국 사용자의 니즈에 부합하지 않으면 그 프로그램은 어떤 프로그램이든 쓸모가 없어지는 것이다. 최근들어서 블록체인 분야가 급상승하고 있기에 나도 이더리움 dApp 개발에 관심을 가졌었다. 또한 한 때 '알파고' 열풍으로 머신러닝, AI 분야가 상승할때 관련 강좌들도 본적이 있는데 지금 생각해보면 내가 지금 하고자 하는 (개발하고 싶은) 분야에 이 것들을 활용할수가 없다. 내가 진지하게 고민하지 않아서 그런것일지도 모르겠지만 지금 당장 블록체인과 인공지능을 활용해서 다른 사람에게 실질적으로 도움이 되는 (필요로하는) 소프트웨어를 생각해본적이 없다는것이다.


    블로그 글들을 작성하면서 과거에 어떠한 글들을 써왔는지 쭉 한번씩 보기도하고 어떤 분야로 블로그에 유입이되는가 살펴보기도하는데 주로 공부를 정리한것들이 대부분이였다. 여기에는 우분투 설치법, 정보처리기 기사를 공부하면서 나온 정리들, 각종 언어들을 공부하면서 정리한것들인데 물론 유입해서 들어온분들에게는 필요한 정보라 들어오셨을것이다. 나도 개발공부나 이것저것 공부를 하다보면 모르는 부분이 있어 검색해서 나오는 정보들을 정말 감사하게 생각한다. 


    애초에 그러한 것들을 정리하는 이유가 나또한 도움을 받았기에 나도 누군가에게 내가 알고 있는 정보를 공유하면서 도움을 주고자 하는 의미가 크다. 다만 요 부분에 대해서 최근에 생각을 조금 달리하고 있는데 앞으로는 그러한 정보글보단 이러한 느낀점들을 좀더 작성할까 생각중이다. 예로들어 내가 우분투를 설치하고자하는데 방법을 잘 모른다면 우선 구글에 검색을 해볼것이다. 그러면 보통 우분투의 Installation 정보부터 각종 블로그 글들까지 수천개의 우분투 설치법을 정리한 블로그들이 나오는데 이렇게 중복되는 정보들을 내가 굳이 다시 시간을 투자해가면서 작성할 이유는 적은것같다. 


    StackOverflow와 같은 사이트들에 가면 프로그래밍 문제에 관한 수천만건의 정보들이 들어있고 그 정보는 이미 대부분 존재하는것들이다. 이는 프로그래밍 분야에만 한정된 것이 아니다. 예로들어 전에 스팀잇이라는 블록체인형 블로그에서 중국어와 영어 공부한 것을 정리한적이 있는데 지금 다시 살펴보면 단어, 문장에 한정되어 있어 그 쪽에 관심이 있어하는 사람은 다른 글들을 읽으면서도 충분히 원하는 정보를 얻을수 있다. 만약 내가 '사과' 라는 말을 중국어로 번역한 것을 정리하였는데 이는 다른 분들의 블로그에도 수없이 존재할 뿐만 아니라 구글 번역기와 같은 휼륭한 소프트웨어를 통해서도 얻을수 있는 정보이다. 오히려 내가 중국어를 공부하면서 느꼈던 점이나 어떻게 공부했더니 더 공부가 잘되더라~ 하는 후기가 좀더 도움이 될수 있다고 생각한다. 


    전자제품 후기도 마찬가지이다. 그 제품의 하드웨어적 스펙을 알고 싶다면 나무위키(?) 나 개발사 홈페이지를 통해서 충분히 알수 있지만 실제로 그 제품의 사용후기나 문제점들을 경험해본 분들이 작성하는 글들이 사용자에게는 더욱더 도움이 되는것이다. 앞으로 블로그 글들을 작성할 때에는 요러한 부분들을 좀더 중점적으로 유의해서 작성할 생각이다. 물론 정말 희귀한 자료(?) 나 정보들에 대해서는 글을 작성할 것이지만 늅늅 개발자 입장에서 그러한 정보들은 많지 않으리라 생각한다.

    반응형

    댓글

Designed by Tistory.