개발자가 되기까지: 2021년에 했던 것들 상세

Sia Hwang·2022년 12월 1일
0

My Dev Log

목록 보기
2/4

What I learned in the Game programming?

  • 게임프로그래밍 학원에서는 C/C++, C#, Unity를 배웠다. 초급반과 고급반으로 나누어져, 초급반에서는 C/C++, 객체지향프로그래밍 등 프로그래밍에 필요한 기초 지식들을 배웠다.

  • 개인적으로 이 때 배운 C/C++이 앞으로의 코딩 인생에 많은 도움이 되었다. C언어에서 배웠던 배열과 포인터 덕분에 자바의 참조변수 개념이 금방 이해되서 웹 개발을 공부하던 초창기에 공부가 비교적 수월했다. 그래서 프로그래밍을 처음해서 참조변수 개념을 어려워하는 친구들에게 C언어의 배열과 포인터 공부를 권유하곤 했었다.

  • C/C++을 배우면서 아래 이미지처럼 미로찾기, 오목, 뱀게임, 베네치아 등의 게임(콘솔로 플레이)을 만들었는데, 이 과정에서 객체지향프로그래밍적으로 코드를 설계하는 법과 싱글톤 패턴을 적용해 보면서 디자인 패턴의 존재를 알게 되었다.

  • 또한 중복코드를 제거하고 잘 작성한 메서드를 재활용해서 사용할 수 있도록 코드를 최적화하는 법을 배웠다. 당시 강의방식이 강사가 내 준 숙제를 해 오면 그에 대한 코드리뷰를 받고 수정하는 방식이라 개인별 코드 상태에 따라 최적화할 수 있는 방법을 생각해보고 될 때까지 수정해보는 시간을 많이 거쳐서 좋았다.(일단 강사가 그냥 떠먹여 주는 법이 없었음)

  • 그리고 C/C++은 메모리 할당과 해제를 프로그래머가 직접 해야만 하기 때문에 열심히 했었는데... 당시 C/C++만 알던 시절에는 몰랐으나 추후 자바를 배우면서 자바가 참 편한 언어라는 사실을 알 수 있었다. 그렇지만 C++은 지금도 좋아하는 언어 중 하나이다.(메모리 할당부터 해제까지 한땀한땀 내 손으로 작성하는 것도 재밌어...)

  • 약 4-5개월 간 게임 프로그래밍 초급반을 수강하면서 프로그래밍의 기초를 잘 다졌다고 생각하고, 실제로 배운 것도 많았기 때문에 여기까지 들인 시간과 돈이 아깝지 않았다.

But, why did I quit the Game programming?

  • 하지만 결과론적으로는 게임 프로그래밍을 그만두게 되었다. 왜냐면
  1. 고급반에서 반년정도 심화 게임프로그래밍에 대해 배웠는데 퀄리티가 별로였다. 가장 큰 문제는 고급반 강사의 강의능력이 별로였다.

    • 윈도우MFC, WIN32 API, 유니티와 C# 등을 배웠는데 시간이 많지 않아서 짧게짧게 하고 넘어가다보니 초급반에서 C/C++을 배우던 때에 비해 깊이감이 없었다.
    • 당시 가장 중요했던 것이 유니티니까 거기에 시간을 많이 쏟아야 하는건 알겠는데 지금 와서 생각해보면 강사의 강의력 문제였던 것 같다. 그렇다고 힘 주는 유니티도 그닥이었고...
  2. 게임 프로그래밍 공부를 시작한 지 약 1년째가 되어가면서, 유니티를 어느정도 배우고 포트폴리오를 만들 수 있을 결과물이 나오고 수강기간도 얼마 남지 않았을 무렵부터 채용공고를 보기 시작했다. 그리고 내가 만든 포트폴리오로는 명함도 내밀 수 없다는 것을 직감했다.

    • 유니티로 이런 모바일게임을 포트폴리오용으로 만들었었는데 취직용으로는 경쟁력이 많이 딸리겠다는 생각이 들었다.

    • 취직을 위해서는 유니티만 할 것이 아니라 그래픽 렌더링 같은 것에 대한 이해도 필요했는데 그걸 이해하고 있다는 것을 보여줄 수 있는 결과물이 필요했다. 하지만 몰랐고, 학원에서도 알려주지 않았던 터라 없었다.

    • 게임 업계가 생각보다 좁았다. (웹개발에 비하면) 산업의 크기 자체가 그렇게 크지 않아서 그런지 채용 공고 자체가 굉장히 한정적이라는 생각이 들었다. 전직장도 참 좁은 업계였기 때문에 좀 더 넓은 곳에서 일하고 싶었다.

    • 게임 서버 개발자에 대한 수요가 많았으나 공급이 부족했고, 클라이언트 개발자는 수요에 비해 공급이 많은 것이 눈에 보였다. 장기적으로 봐도 서버 개발이 롱런할 수 있을 것이란 생각이 들었다. 하지만 내가 다니던 학원은 클라이언트 개발만 가르쳤기 때문에 서버 개발로는 또 쓸 수 없었다.

    • 게임 클라이언트 개발은 생각보다 섬세하게 캐릭터의 움직임과 타격감 같은 것을 조절해 줘야 했는데 무엇보다 이게 적성에 잘 안 맞았다. 나는 보여지는 것을 예쁘게 만드는 것과 거리가 먼 사람이었던 것이다...

    • 그러면서 서버 개발에 관심이 생겨서 여기저기 알아보던 찰나, 웹 개발의 존재를 알게 되었다.

이것을 끝으로 게임개발과 안녕하고 웹 개발을 시작하게 된다.

profile
당면한 문제는 끝까지 해결하기 위해 노력하는 주니어 개발자입니다.

0개의 댓글