본문 바로가기

Essay/하루

앙큼한 돌싱녀(최종회)에서의 차정우 프로그래밍 환경과 실력은..


앙큼한 돌싱녀 마지막회에서 차정우가 혼자서 개발을 하고 있는 장면이 나온다..


어떻게 저렇게 키보드 소리가 끊이질않고 코딩을 할 수 있지? 정말 천재인가.. 아니면 또 구구단 프로그램 만드는가..ㅋ (참고 : http://abipictures.tistory.com/940)


아무튼.. 


잠깐 프로그래밍 화면이 스쳐지나가는데..





마지막회라 그런가.. 지난번 구구단 프로그래밍보다는 뭔가 더 있어보인다.. 신경을 쓴 듯하다.

오잉.. 요건 뭔가..?


이전회에서도 잠깐 비춰진 3D 캐릭터 화면이나 게임이야기가 나오는 것으로 봐서는 저 그래프 데이터는 3D 캐릭터의 모션 데이터로 보인다. 3D 캐릭터에서 관절처럼 움직일 수 있는 포인트의 시간 궤적 데이터인것으로 보인다. 그리고, 이 프로그램은 CAD 프로그램 개발사로 유명한 Autodesk의 Softimage 라는 프로그램이다.


참고 : http://en.wikipedia.org/wiki/Autodesk_Softimage


써보지는 않았지만, 이런 3D 그래픽 분야에서는 유명한 툴인듯하다. 일단 화면에 보이는 GUI 인터페이스를 보고 구글링을 해서 찾아냈다.





지난번 구구단 프로그램과 이제는 차원이 달라보인다..

개발환경은 python을 사용하고, 에디터는 sublime 이라는 프로그램이다. (sublime 참고 : http://www.sublimetext.com/)

이건 내가 써봤기때문에 안다.ㅋ

최근에 알게 된 개발용 에디터인데, vim이나 eclipse의 중간쯤에 있는 에디터라고 요즘 많이 사용하는 듯하다.






그러면 이 프로그램은 어떤 기능을 하는 것인가..

화면에 보이는 변수들과 함수, 클래스, 주석등의 이름을 봤을때 3D 화면의 메뉴의 모션효과(UI)와 관련되어 있는듯하다.


------------------------

(2014. 4. 25 추가)

위 코드의 실체를 찾아냈다.

http://support.thefoundry.co.uk/pipermail/hiero-users/attachments/20130728/52306da7/FreezeFrameMaker-0001.obj

'HIERO'라는 소프트웨어내에서 사용하기 위한 파이썬 스크립트이다. (http://www.thefoundry.co.uk/products/hiero-product-family/hiero/developers/)

정확히 어떻게 사용하는지는 잘 모르겠지만, 설명에는 HIERO라는 툴의 커스텀 UI(User Interface) manipulation을 위해 파이썬 스크립트 엔진을 제공한다는 것으로 봐서는 그 프로그램에서 커스텀 UI를 만들기위한 코드인것 같다.

--------------------


내부 함수중에 QAction이라는 이름을 사용하는 것으로 봐서는 PyQt4를 이용하고 있다.

Qt는 원래 노키아에서 만든 멀티플랫폼을 지원하는 C++기반의 소프트웨어 프레임워크인데, 2012년에 Digia라는 회사에 라이센싱 사업을 매각했다. Qt가 오픈소스 라이센스도 같이 채용하고 있어서 아주 많이 활용되고 있다. 스마트폰 어플리케이션이나 임베디드 시스템까지도 되고, 본인이 알기로는 다음클라우드의 Sync 어플리케이션(윈도우용)도 Qt를 기반으로 만들어졌다. 윈도우에 설치된 다음 클라우드 프로그램 폴더에보면 Qt라이브러리가 같이 설치되어 있는것을 보고 알았다. Qt가 멀티 플랫폼을 지원하기때문에 윈도우용에서만 Qt를 사용하는 것은 아닐것이다. 다음 클라우드 Sync 프로그램이 우리나라에서는 좀 특이하게 Linux도 지원해주는 것을 보면.. Qt가 가지는 장점이라는게 넓은 유저환경을 지원할 수 있다는 것이 아니겠는가..


위에서 사용하는 PyQt4는 파이썬용으로 Qt를 사용할 수 있도록 하기위한 패키지인데, 더 자세히 알고 싶다면 http://www.riverbankcomputing.co.uk/software/pyqt/intro 에서 확인 가능하다.


위 코드 내용은 정확하게는 알 수 없지만, Qt를 이용해서 움직이는 GUI 메뉴를 꾸미고 있는 것으로 추측된다.





다시 나오는 코드 화면을 보면..


이건 또 C++코드다.. (차정우는 멀티 프로그래밍 랭귀지가 가능하다는 결론)

어떤 기능일까.. 함수명이 collisionCheck()로 봐서는 화면에 그려지는 드로잉 객체에 intersection이 있는지를 검사하는 코드이다. 즉, 두개의 드로잉 객체가 겹쳐있는지를 확인하는 코드가 되겠다. 사용하는 변수명 스타일과 등장하는 HBITMAP등으로 보면 확실히 VC++ 코드이다. 그런데 Visual Studio IDE를 사용하지 않고 별도의 에디터에서 파일을 오픈한것이 큰 연출의 의도가 있는것은 아닌듯하다. (프로그래머마다 선호하는 에디터가 있다. 보통은 전용의 IDE를 쓰겠지만, 안그런경우도 있으니..)


그런데, 이 화면을 보여주면서.. 차정우는 이렇게 말한다.


"게임 보안쪽에 버그가 생긴것같아요..."


보안이라...... 어떻게 해석해야 할까..


음.. 게임내에서 두 캐릭터가 싸우지 않았는데 한쪽이 damage를 입는다는 것인가? (보안적인 측면에서 생각했을때..)

collisioncheck함수와 연관이 있다고 봤을때.. collision이 일어나지 않아야 하지만, 계속 나는것이 단순 연산에서의 버그가 아니라, 캐릭터의 좌표를 누군가 중간에 바꿔서 서버로 보낸다면 보안문제라고 볼 수는 있겠다..



이것으로 차정우의 프로그래밍 실력을 추측해보건데..



- Java : 초급 (구구단 짜는 수준..)

- Python : 중상급 (드라마에서 키보드 두들기는 소리로 추측해보면, 머리에서 생각하는 것들이 바로 손으로 옮겨지는 것으로 봐서는 능숙하다는 것을 알수있다)

- C++ : 초중급 (정확하지는 않으나, Visual C++ 21일 완성정도는 봤는듯한 느낌이라서..)

- 그래픽 디자인 : 중급이상 (화면에 나오는 용이나 사람 3D 캐릭터의 퀄리티를 봐서는 중급이상은 되지 않을까 한다.. 띄워져 있는것들이 어디 공개된 샘플이 아니라면..)



참고로, 혼자서 모바일과 백엔드 서버 개발, 게임 그래픽, PC용 프로그램개발이 모두 가능한 사람은 그리 많지 않을 것이다.(하나만이라도 제대로 하기 어려운데...) 프로그래머로 일하는 사람들이 극중의 차정우처럼 혼자서 모든걸 다할 수 있나보다... 하고 판단하지 말길..


그리고, 항상 프로그램을 개발하거나 컴퓨터 관련직종의, 흔히 말하는 고수들이 등장하는 영화나 드라마 장면의 모니터에서는 마우스 커서가 춤을 추는데, 절대로 배우는 마우스를 조작하고 있지 않다... 뭔가 열심히 키보드를 두들길때마다 화면이 사라졌다 보였다를 반복하고, 스크롤이 아래위로 움직였다가, 화면이 이동도 하고.. 막 그런다.

관련업계 종사자들이 봤을때는 현실성이 없는것으로 보이겠지만, 이런 내용을 모르는 타분야 종사자들은 뭐가 있어보이는 것처럼 보이나보다..

뭔가 이해하기 힘든 글자들과 기호들의 조합이 꼭 고대 이집트의 상형문자들을 읽어내려가는 듯한 느낌을 줘서 뭔가 대단한 일을 하는것처럼 보이게...



하지만 현실은 그렇다..


'IT강국'을 외치는 한국에서 일하는 많은 프로그램 개발자들에게 '야근'은 옵션이 아니라 필수라는 것을.. 

(뭐 물론 같은 IT계열이라도 소프트웨어의 특성과 비지니스 형태에 따라 다르니 오해는 없길 바란다.)







'Essay > 하루' 카테고리의 다른 글

꿈.  (0) 2014.07.13
눈물을 그치는 타이밍..  (6) 2014.06.18
앙큼한 돌싱녀, 차정우의 프로그래밍 실력은?  (3) 2014.04.21
소통이 문제다.  (0) 2013.12.24
탄도항 일몰 출사  (0) 2013.09.18