저도 아직 신입 취업 준비중인 백수 개발자 입니다. 저같은 초보가  이런글 써도 되는지 모르겠네요.

답글(... 소설?)달다가 글이 너무 길어져서 새 글에 옮겨 봅니다.

 

저같은 경우는 스터디.. 같은걸 해본적은 없네요. 혼자 재미삼아 이것저것 만들다가

최근에는 우연찮게 마음맞는 친구들 몇이 모여 간단한 게임을 만들었습니다.

(요.. 몇줄 아래에 제가 만든 게임이 있습니다. 쑥스럽게.. 홍보 한번..)

https://play.google.com/store/apps/details?id=whitehole.meteorPrincess 

 

제가 여태까지 공부한 방법은..

재미있는 것만 했습니다. 아마 처음 시작하셨을때는 재미있으셨을거라고 생각되는데요..

재미있어서 하게 됐으면 재미있는걸 해야한다고 생각합니다.

다 준비하고 시작하려다가 포기하는 사람 많이 봤거든요. 제 스타일도 아니구요.

자바 기본서 말고는 책을 처음부터 본적이 없습니다. 결국은 다 보게 되니까요.

 

제가 지금까지 하던일을 간단하게 예로 들자면

저는 게임 만드는게 가장 재미있습니다. 기초고뭐고 하나도 모릅니다. 액티비티 하나에 위젯 몇개 올리는 것밖에 모르는데..

 

캐릭터 움직이는걸 시작하죠. 서피스뷰가 뭔지도 모르고 막 쓰죠.

인터넷 강좌들 봐가면서 따라가다보면 여기저기 막힙니다. 그럼 검색하죠. 그러다 보면 항상 나오는게 서피스뷰 뭐시기.. 적당히 배웠습니다.

미사일이 한발밖에 안나가네? 몹 여러마리 어떻게 하지? 그럼 검색하죠. 다 있더라구요. 멀티쓰레드, 리스트, 객체 등을 배웠습니다.

짜잔~ 주위에 자랑합니다. 개발을 전혀 모르는 사람은 비웃죠. '이게 게임이냐 ㅋㅋ'

학과 수업정도로 C나 자바 배워본 애들은 신기해 합니다. '와 움직인다'

 췌.. 좀더 큰거 만들테다. 그러니 메모리가 빵~ GC가 뭔지 배우죠. 메모리 관리하는 방법 배우게 되죠.

 

이쯤 되면 게임 만들다 말고 몇번 씩 처음 부터 다시 짭니다.

소스가 더럽거든요. 내가봐도 어딜 수정해야 하는지 감이 안잡혀..

거기다 처음엔 본래 소스 챙겨놓고 봐가며 하는데 나중에는 그나마도 그냥 프로잭트 째 딜리트 해버리고 새로 짭니다. 아오.. 내 일주일

매번 짤때마다 변수는 여기 파일에 모와놓자. 동작 부분과 출력 부분 나눠서 만들자. 기능별로 파일 따로 만들자.

비슷한 동작 하는건 한곳에 몰아서 하나만 수정하면 다 적용되게 만들자. 등등 주로 수정하기 쉽게! 스타일로 변해가더라구요.

또 너무 이거에 집착해서 소스가 무거워 지거나 오히려 지저분해 지거나 하기도 하구요. 그럼 다시 적당히 타협해가면서 짜보고.

이쯤되면 객체지향 프로그래머 라고 해도되나요..?

(이쯤부터 디자인 패턴쪽을 공부하기도 합니다.)

이쯤 되니까. 나 쫌 하나? 나도 스토어에 함 올려봐??

간단한 유용한 정보 보여주는 어플을 말도안되는 퀄리티로 급조해서 올렸습니다.

개발자 스타일이라고 하나요? 기본 제공 UI에 편하지도 않고.. 좋은 정보 볼 수 있으면 되잖아! 심보..

뿌듯해하며 다운로드 숫자 올라가는거 보면서 처음 알았습니다. 1+1하는 프로그램 짜도 남의 손에 들어가면 에러가 나는구나..

거기다 더 무서운게.. 어플 다운 받은 분들께 이메일 옵니다.

님. 이거 안됨.

뭐!? 왜!? 여기 이게..들어가는데 왜 널포인트?? 모..모르겠는데 일단 안꺼지게...

예외처리하는 방법 배우게 되죠.

뭐 다 예외처리 해준거 같은데 전화오면 핸드폰이 멈추네. 이거 내 어플탓인가? 내 어플 켜면 카톡 보면 안돼..

라이프 사이클 배워야죠 뭐

 

남들은 만, 십만 다운로드 하는데. 전 이때 한달만에 1000 다운로드 보면서 뿌듯해 했습니다.

개발자 분들이면 30분도 안걸려서 만들 그런 어플에 별점 5개 찍어주시는 분들 보며 눈물납니다.

옆에 오류 (21)개 이런건 안자랑..

 

어느정도 오류 잡히자. 욕심이 생기기 시작하더라구요. 제 어플이 부끄러워지기 시작하죠.

 

좀 큰거 만들어 볼려는데 몇몇 기능이 아우.. 이거 어느세월에 작업해 근데 보니까 여기서 누가 만든거 갔다 쓰면 편하게 된데요.

근데 다른 액티비티 쓰네. 나 액티비티 하나밖에 안써봤는데. 손톱 잘근잘근..

구글느님의 도움을 받아 올렸다 액티비티! 근데 인텐트가 뭐야 이거 무서워... 손톱 잘근잘근...

아오 이렇게 삽질하느니 내가 그냥 직접 만들껄. 그게 빨랐겠다. 괜히 이거 쓰나? 역시 기초가 없으면 안돼. 하다보면 감이 잡히죠.

 

 

.....

글이 길어져서 담배 한대 피고 왔더니 다음에 무슨이야기 하려고 했는지 까먹었습니다.

다음에 이거이거 익히고 했지 맞아. 등의 생각을 하다가 제가 가장 최근의 경험한게 떠올라서..

 

망할 파편화..

 

여태까지 배우고 익힌걸. 난 쫌 다름! 하며 에러 내 주시고 버벅임을 선물해 주시는 특이기기들..

기기마다 어떤 함수가 속도가 빠르고 느리고 어떻게 돌아가는거고 하나하나 다 알 수가 없어서

익히게 된 소스 최적화. (그래도 몇몇 기기는 답이 보이질 않아....)

 

이야기가 엄청 길어졌는데요.

저는 이런 식으로 공부가 먼저가 아니라 하고싶은걸 저지르고 공부해서 매꾸는 방식으로 개발을 배웠습니다.

 

이 방법도 단점은 많습니다.

가장 문제가 팀 작업이라면 중간중간 문제가 생길때 기본이 없으면 해결 하는데 걸릴 시간이 책정이 안됩니다.

검색해도 안나오고 질문해야 할때 기본이 없으니 뭐라고 물어봐야 할지도 감이 안잡히거든요.

 

하지만 장점으로는 매번 재미있는 걸 만들기 때문에 완성된(그때 그때 기준의) 프로그램들이 나오게 되구요.

프로그램의 퀄리티가 올라갈때마다 결국은 책에 나오는 대부분의 기능을 사용하게 됩니다.

(팁. 이때 그렇게 내가 산 책정도는 다 해본듯 싶을때 개발자 분들이 흔히 정석이라 부르는 좀 딱딱한 책을 사서

소설 보듯이 한번 보세요. 잘못 잡힌 버릇들이 많이 고쳐집니다.)

실용적인 소스들을 검색하게 되니 다른 분들이 적어놓은 소스를 엄청나게 보게 됩니다.

다른사람의 소스만으로도 많이 배우게 되죠.

 

 

처음에 말씀 드린 것처럼 저도 초보 개발자이고 공부중인 백수 입니다.

지금은 엔진을 한번 써보려고 cocos2d랑 unity를 보고 있습니다.

 

물론 위에 방법은 제 방법이기에 맞지 않을수도 있습니다.

하지만 너무 조급해하지 않으셨으면 합니다.

졸업과 취업의 압박은 있겠지만 즐기시면 실력은 알아서 따라올거라고 생각합니다.

 

저 역시 비슷한 경험을 하고 개발을 포기하고 다른일을 하다가 그만두고 다시 개발 공부를 시작했습니다.

혹시나 저처럼 좀 많이 돌아서 가실까봐 도움 안될 긴 이야기 남겨 봅니다.

 

 

현업에 뛰시는 개발자 선배님들 이 글 보시면

덤으로 저 좋은 게임회사 들어가는 법좀 알려주십사... 굽신굽신

 

그리고 혹여나 이 글이 도움 되신 분들 있으시다면

https://play.google.com/store/apps/details?id=whitehole.meteorPrincess 

이거 한번 플레이 해봐주시면 감사감사..