본문으로 바로가기

드디어 2013년도 KGC의 마지막 날입니다. 3일 내내 강연들으러 가는 것도 꽤나 피곤한 일이었네요.

오늘은 늦게일어나서 부랴부랴 준비하고 코엑스로 향했습니다.



[마지막날 시간표]



마지막날은 그래픽 세션이 몰려있는 날로 상대적으로 개발쪽은 어떤것을 들어도 고만고만 할 것 같아서 다음의 강연을 선택했습니다.


첫번째 강연, '효율적인 개발자 시간 관리 및 개선 방법론(블리자드)' 얼마전에 작은 프로젝트가 끝나서 여유가 생겼는데, 이 남는 여유분의 시간을 어떻게 활용해야 하는지 고민하던 찰나, 마침 나에게 필요한 강연인것 같아서 참관하였습니다.

강연자님께서 설명한 개발자의 시간관리는 실무자를 대상으로 하는 방법론이었지만, 매우 유익한 강연이었습니다.


1. 할 일 목록을 순서/중요도 없이 마구 작성.

  - 계획은 무의미 해지더라도 계획은 세워야한다라는 모토로 일단 계획을 작성. 이러한 계획들을 작성하고 차후에 완료했을때의 기쁨은 상당한 만족감을 제공하며, 이러한 습관을 들이는것 자체가 팀원간의 의사소통에서도 유리함.(일의 목록을 가지고 간결명확하게 의사소통이 가능해지므로) 또한 처음에는 계획을 세우는 것에 상당한 시간이 소모될 지 모르지만 습관화 되면 일을 계획(고민)하면서 낭비되는 시간을 세이브 할 수 있음. 따라서 이러한 습관이 생활전반에 자연스럽게 묻어나게되면 엄청난 시간을 절약할 수 있다. (ex. 스티브잡스가 매번 같은 옷만 입어서 옷을 고르는 시간의 낭비를 없애는 것)


2. 할 일 목록 각각의 할당 시간을 설정하고 우선순위를 선정하여 일을 수행.

  - 일의 할당시간을 정하는 것은 간혹 일의 크기가 매우 커서 하나의 일을 계속하게 될 수도 있는데, 이는 능률을 매우 떨어뜨리는 행위이므로(예를들어 일의 크기가 너무 커서 휴식없이 밤샘 작업을 한다던지 하는 것!) 아무리 큰 일이라도 시간을 나누어 충분한 휴식시간을 가질 수 있도록 하는것이 중요.

  - 일을 수행할때는 사람은 멀티태스킹 능력이 매우 떨어지며(없다고 봐도 무방) 하나의 일에 집중하는 시간은 보통 20분정도이고, 중간에 딴짓이나 업무로 인한 의사소통등의 인터럽션이 5분이상 지속되면 기존에 하던 일은 잊어버린다. 따라서 이러한 인터럽션이 발생되는것을 최소화 할 필요가 있다. 특히 외국인에 비해 한국인의 일하는 습관이 이 부분에서 가장 큰 차이를 보이며, 개선되어야 할 점.


3. 최적화.

  - 이런 기준을 가지고 일을 하다보면 목록에 있는 일을 다 하지못하는 경우가 발생하는데, 이 때 완료하지 못하는 일들을 살펴보면 대체로 우선순위가 낮은 일들이 많으며 이러한 일들을 살펴보면 작고, 사소한 것들이 많으며 이런 것들을 제외해야 한다. 예를 들자면 컴퓨터 빌드시간, 부팅시간, 인터넷 속도 등이 이에 해당되며, 최적의 작업환경을 만들어야 함.

  - 의사소통에도 최적화가 존재하며, 의외로 의사소통부분에서 낭비되는 시간이 많음. (회의나 E-mail작성 등) 따라서 잦은 회의는 지양하는 편이 옳으며, 회의를 참여할때는 목적이 명확해야하고 참여자 전원이 회의에 대한 준비가 완벽히 되어있어야 함.


위의 3가지 원칙 외에 휴식에 대한 다른 시각을 제시하였으며, 개발자로서 가져야할 의지에 대해서도 강연해 주셨습니다.


개발자에게 휴식이란?   일을 끝내기 위해 쉬는 것으로 쉴 시간에 일하지 말 것!

Working : Home : Sleeping8 : 8 : 8 의 비율을 유지해야 함.

개발자란 직업은 매우 고달픈 직업으로 직업으로서의 생존뿐 아니라 발전도 더불어 필요!


그리고 마지막으로 이러한 시간관리를 위해서는 우선적으로 자기자신에 대한 확신이 있어야 하며, 확신이 서야 자기관리가 되기 시작하며 삶이 여유로워지고 일과 사람을 사랑하는 단계에 들어선다고 하였습니다. 만약! 이것이 되지 않는다면 다른길을 알아볼 것을 추천(?)하셨습니다.



두번째 강연, 'Unity3D와 UPS로 멀티플레이 게임 만들기(머치디퍼런트)' 로 유니티로 멀티플레이 게임을 구현하는 방법을 알고 싶어서 강연을 참관하였습니다. 머치디퍼런트 회사가 홈페이지에 들어가보면 마치 유니티공식홈페이지의 서버페이지 정도로 보여서 유니티자체 서비스로 지원해 주는 기능인 줄 알았었는데, 알고보니 이 서비스는 유니티와는 별개의 플러그인 서비스 였습니다. 강연은 UPS에 대한 소개와 간단한 예제들을 통한 UPS로 멀티플레이 게임을 구현하는 과정을 담고 있었습니다.


- UPS는 Unity Park Suite의 약자.

- 유니티 전용 네트워크 엔진으로 싱글스레드 기반

- 유틸리티형태의 자체 스크립트를 C#언어로 제공

- 유니티 에디터내에서 서버와 클라이언트 작업이 가능

- 해외에서는 uLink로 유명하며, 5가지 모듈을 제공 (uLink / uLobby, uGameDB, uZone, uTsung)


UPS로 멀티플레이 시스템을 구축하는 것을 보니 매우 쉽고 빠르게 구축이 가능하다는 것을 알 수 있었습니다. 짧은 기간내에 멀티플레이 기능을 구현할 때 매우 쓸만할 것으로 생각되었습니다.



세번째 강연, '유니티 안드로이드에서 활용할 수 있는 암호화 팁(유니티 코리아)' 는 유니티 모바일 플랫폼중 하나인 안드로이드를 기준으로 빌드시 어떻게 암호화하여 보안위협으로 부터 보호할 수 있는지에 대한 강연이었습니다. 전날 들었던 보안관련 강연과 일맥상통하는 부분이 있었으며 강연에서는 간단한 예제들로 난독화와 스크립트 그리고 에셋번들을 암호화 하는 것을 볼 수 있었습니다.

암호화는 유니티 자체에서 지원하지 않으며, 외부프로그램을 이용해서 암호화를 진행해야 합니다. 하지만, 코드 난독화의 경우 원하는 수준만큼의 난독화가 잘 되질 않거나, 난독화는 원하는 수준이 되었더래도 난독화로인해 이전에는 잘 실행되던 기기에서 동작하지 않는 경우가 발생되는 경우도 종종 있다고 합니다. 따라서 난독화에 너무 공들이는 것을 비추천하셨습니다. 대신 암호화를 추천하셨는데 그 방법은 다음과 같았습니다.


1. 암호화할 스크립트들을 프로젝트 외부로 빼서 외부에서 mono(유니티 컴파일러)로 컴파일

2. dll화 된 파일을 암호화툴을 통해서 암호화

3. 유니티 에디터에서 암호화된 파일을 txt형태로 불러와서 전체 동작이 메모리상에서만 동작할 수 있도록 복호화

- 에셋번들(3D 모델링 오브젝트) 또한 스크립트 암호화와 유사한 방법으로 구현할 수 있습니다.


다만, 강연이 끝난 후 Q&A 시간에 어떤 분께서 강연에서는 난독화를 비추천하셨지만, 암호화의 경우 기존 많은 툴로 암호화를 깨버릴 수 있기 때문에 난독화가 더 요구되는데, 난독화에 힘을 쓰지 말라는 것에 대해서 이해할 수 없다는 반응도 있었습니다.




이렇게 KGC의 모든 일정을 마쳤습니다. 개인 사정상 몇몇 세션의 강연을 듣지 못한 것은 아쉬웠지만 유익한 시간이었던 것 같습니다. 첫 KGC 참관이기때문에 저에게는 대체로 다 괜찮은 강연으로 보였지만, 이전에 KGC를 참관했던 사람이라면 어떨런지는 잘 모르겠습니다. 저는 내년 KGC가 벌써 기대가 됩니다.


ps. 몇몇 KGC 강연들은 게임포털에서 취재형식으로 제공을 하고 있으니 참고해볼만 합니다.

- 인벤 : http://www.inven.co.kr/webzine/special/gameshow.php?gs=kgc

- 디스이스게임 : http://www.thisisgame.com/webzine/news/nboard/4/?sf=subject&sw=kgc


'프로그래밍 > KGC 참관기' 카테고리의 다른 글

KGC 2013 참관기 - 둘째날  (0) 2013.09.27
KGC 2013 참관기 - 첫째날  (0) 2013.09.25