반응형

Programming 9

게임 회사 취업에서 코딩 테스트가 갖는 의미

월요일에 합격자 발표를 진행하면서 진행 했던 인턴 채용 절차가 끝난다. 넥토리얼을 위한 코딩 테스트 문제를 내면서 부터 시작 된 이 채용 과정에서 면접까지 보고, 합격자 선정을 하면서 이런 저런 생각이 들게 되었다. 채용 과정에서 코딩 테스트는 어느 정도의 의미를 부여해야 할까. 이번 채용 과정에서 냈던 문제들은 작년에 비해서 난이도가 있었는데 자체 기준의 합격자들을 면접 보면서 면접 결과가 코딩 테스트의 고득점과 비례 하는 것 같지는 않다. 오히려 고득점이 아닌 합격 선만 넘긴 경우가 훨씬 더 면접에서 좋은 평가를 받는 경우가 많았다. 물론 면접에서는 굉장히 다양한 요소를 반영하고 있기 때문일 수도 있다. 그리고 코딩 테스트가 알고리즘 문제에 완전히 중점을 두고 있기 때문에 알고리즘 문제의 경험과 지속..

Plastic SCM Repository 를 Git 과 Sync 하기

Plastic SCM에 대해서는 할말이 은근히 많고, Plastic SCM, SVN, GIT, Perforce를 간단하게 비교 하는 포스팅도 조만간 올릴거지만.. 그 전에 지는 몇 주 동안 나를 스트레스 받게 만들었던 Plastic SCM 저장소를 Git과 연동 하는 문제에 대해서 이야기를 해보고자 한다. Changeset의 정보를 다 가져가고자 한다면 Plastic SCM 에서 Git으로 이동/연동 하는 방법은 기본적으로 4가지 정도가 있다. 1. Plastic SCM의 GUI Client 에서 진행 하는 방법. 일반적으로 제일 많이 알려져 있고, Plastic SCM 가이드 문서에도 나와 있다. Client의 Main Actions 탭에서 sync를 원하는 branch를 선택하고 팝업 메뉴를 띄운뒤에..

SVN에서 나오는 SQLite: database disk image is malformed 오

오늘 오전부터 SVN에서 커밋 진행 하면 오류가 나오기 시작 했다. 오류 메세지는 쌩뚱 맞게 .. Commit failed (datails follow) database disk image is malformed cleanup 부터 온갖 방법으로 해결을 도모 하였으나, 오류 메세지는 꿈쩍도 하지 않았다. 확인을 해보니 SVN에서 SQLite 를 이용하는데, 이 SQLite 에서 어떤 이유에서인지 table이 깨진 경우 이런 결과가 나온다. SVN에서 서버의 rep-cache.db 파일을 SQLite로 관리를 진행 하고 있으므로, 그 DB 안의 어떤 Table이 오류가 난 것.. 해결 방법을 한참을 고민하다가 이렇게 접근을 시작했다. 머너 sqlite3 콘솔을 다운로드 받고 ( http://www.sqli..

게임 개발에 대한 잡담.

오늘은 일찍 퇴근해서 집에 오자마자 한 숨 자고 조금 전에 깼습니다. 뉴스를 보다가 스티브 잡스에 대한 기사가 하나 있더군요. 매일 경제에 있던 기사 였는데, 애플의 주가가 40배 넘게 뛰었다는 기사였습니다 그런데, 이 기사에서 눈길이 가는 문장이 하나 있었습니다. 듣지도 보지도 못한 혁신적인 제품으로 시장을 선도하기보다는 기존 제품 가운데 대박 가능성이 높은 제품을 찾아내 그 제품을 획기적으로 개선하는 전략을 선택한 것이다. 최근에 새로운 게임에 대한 생각을 한적 있었는데, 제일 많이 들은 이야기 몇가지는 레드오션, 새로운 것.. 이런 것들이었습니다. 저는 개인적으로 게임은 예능으로써의 성격으로 인하여, 선점된 것들이 뺏을 수 없는 시장이라고 보지 않습니다. 오히려 저는 레드 오션과 같은 개척된 시장은..

NSIS를 이용한 압축 파일 배포(NSIS 7Z PLUGIN)

예전에 NSIS를 이용 할 경우 대용량 파일을 배포 할때 오류가 나는 문제에 대해서 포스팅을 한 적이 있다. (자세한 내용은 http://www.yuno.org/295 을 참고) 이 때, 해결 했던 방법 중에서 일반적으로 쓰인 방법이 인스톨러와 데이터 파일을 배포해서 2개 이상의 파일을 이용한 배포였다. 그런데, NSIS 자체에서 압축 기능을 지원하고는 있지만, 별도의 압축 파일을 처리 하는 모듈은 없기 때문에 NSIS의 EXCUTE SCRIPT 를 이용해서 COMMAND로 실행 가능한 7Z 압축 바이너리에 압축 풀 파일을 넘겨주어 압축을 푸는 방식을 이용했다. 즉, INSTALL.EXE 와 DATA.7Z 이렇게 2개의 파일을 배포 하지만 INSTALL.EXE 는 설치 능력은 있지만 DATA.7Z 파일의..

소프트웨어 회사에서의 테스트 조직에 대한 단상

몇년 전에 읽었던 "조엘 온 소프트웨어"라는 책이 있습니다. 혹시 아직 안보신 개발자 또는 개발자와 함께 일하시는 분들은 한번 읽어 보시기를 추천합니다 ; 이 책의 22장에 보면 " 테스터를 두지 않는 (잘못된) 다섯가지 이유 " 라는 부분이 있습니다. 다섯가지 이유를 저자는 1) 버그는 프로그래머가 게을러서 생기니까요. 2) 우리 소프트웨어는 웹에 올려놓아서 버그는 금방 고쳐질 수 있으니까요. 3) 고객이 소프트웨어를 테스트해줄 테니까요. 4) 우수한 테스터는 테스터로 일하려고 하지 않거든요. 5) 테스터를 고용할 돈이 없으니까요. 로 들고 있습니다. 이러한 이유를 들어서 테스터를 두지 않는 다면 멍청한 짓이다! 라고 저자는 이야기 하고 있습니다. 저 역시 이 부분을 상당 부분 동감합니다. 제가 지금까..

프로그래머는 어째서 방어적 입장을 취하는 것일까요?

종종 이런 이야기를 듣습니다. "프로그래머는 너무 방어적으로 일을 하는 것 같다." 라는 말이죠. 어떤 의미일까요? 예를 들어서 소프트웨어 개발 회사에서 어떤 프로젝트를 진행을 할때 그 프로젝트의 목표를 구현 하는 일을 소위 기획이라고 합니다. 기획자들은 충분한 시간을 가지고 이 프로젝트의 진행 목적 부터 진행 중간 단계의 표현, 기능 들에 대해서 진지하게 고민합니다. 그렇게 해서 (예제로써) 약 버스를 만들기로 했습니다. 그리고 이것에 대한 내용과 스케쥴을 기획서에 작성을 해서 그 기획서를 들고 프로그래밍 조직으로 찾아가서 이야기 합니다. "이것을 언제까지 만들어주세요." 그러면 프로그래머는 기획서를 쭉 살펴보고 기획서가 너무 부실하다고 생각합니다. 기획서에 써 있는 것들이 어떤 목적으로 구현이 되는 ..

결제 시스템의 이야기

이게 과연 Programming 분류에 들어가야 하나 싶지만. 아무튼. 웹은 그 태생의 한계 때문에 여러 시스템을 구현할때 다양한 편법이 이용되어진다. 처음에는 편법이었지만 시간이 지나갈수록 당연시 되어지고 그 헛점 조차 그 편리함에 덮혀지는 뭐 그런.. 방금전에 뉴스 사이트를 보다가 이러한 기사를 보았다. http://news.naver.com/news/read.php?mode=LSS2D&office_id=032&article_id=0000203799§ion_id=102§ion_id2=249&menu_id=102 대략 요약하자면 인터넷 쇼핑몰에서 별도의 결제 사이트를 연동하여 결제할때 주고 받는 통신을 위조해서 적은 금액으로 물건을 구매 하는 행위에 대한 이야기다. 이거를 처음 발견했던건..

ASP.NET C#의 Bitmap class를 이용해서 BMP 저장 오류

게임 케릭터 미리 보기 작업을 하느라 처음으로 ASP.NET C#을 이용해서 그래픽 파일을 브라우저로 전송하는 코드를 작성할 일이 생겼다. ASP.NET을 처음 만져봐서 각종 정보를 찾아 보니 든든한 클래스가 많이 존재했다. Bitmap, ImageConvert, Color 등.. 따라서 게임 그래픽 데이터 파일을 로드하여 Bitmap 에 넣고 각종 변환 작업 (색 변경, 조합, 이미지 머지 등) 수행 후에 BMP로 저장 또는 Response.OutputStream으로 바로 이진 전송을 해도 오류가 나는게 아닌가. 오류도 당황스럽게 GDI+ 일반 오류. (A generic error occurred in GDI+) 가 발생 하는게 아닌가.. 뭐가 문제란 말이냐!! GIF나 JPG로는 잘 저장이 되는데! ..

반응형