패치워크 레이드를 위해 대학원 연구실 입장. 잘하면 금방 끝날 수 있겠다고 예상했던 건 당연히 헛다리였다. 오늘 예상했던 주요(?) 작업들이 비교적 금방 끝나긴 했지만, 진짜 문제들은 따로 있었다.
분명히 소스 고쳐서 빌드했는데, 지우거나 고쳐뒀던 소스가 떡하니 다시 살아나 있고 - 파일은 아무리 봐도 지금 폴더의 지금 파일이 맞는데. 혹시나 해서 VS 껐다가 켠 뒤 그냥 빌드 말고 다시 빌드 실행하니 돌아갔다. 조이스틱 연결도 소스상으로는 아무리 봐도 전임자가 시리얼 통신으로 짜둔 것 같은데(주석도 감쪽같고), 꽂혀있는 건 그냥 USB로 꽂혀있고(따로 변환 드라이버도 없다고 하고). 겨우겨우 알고보니 조이스틱 클래스로 들어오고 있던 상황 - 뭐, 이정도 까지는 애교였지. 아무리 봐도 모드 변경하면서 조이스틱이 죽어버리는 것 같은데, 이쪽 코드는 내가 최근에 직접 짠거라 몇 줄 되지도 않는 건데 - 어찌하여 모드만 바꿨다 하면 죽어버리는 걸까. 시간가는 줄 모르고 염병 삽질을 하다가 - 아무리 봐도 이상하다, 이건 모드 문제가 아니라 조이스틱 문제 같다고(실제로 조이스틱 소스도 계속 들여다 봤다) - 혼잣말 반, 비명 반. 마침 같이 계시던 O 님이 그거 알 거 같다고 - DirectX에서 조이스틱 모듈 갖다 쓰면 윈도우 포커싱이 문제가 됐었던 기억이 난다고. 실제로 MFC에서 메인 윈도우에 포커싱이 돼있을 땐 잘만 되다가, 서브 윈도우로 포커싱이 옮겨가면 조이스틱이 그대로 죽어버렸다. 와, 이건 정말 예상 못 했다. O 님에게 관련 경험/기억이 없었으면 그대로 우주 팽창이 멈추는 날까지 엉뚱한 코드들만 쳐다보고 있었을 뻔. DirectX에서 조이스틱 모듈 끌어오지 않으면 딱히 조이스틱 붙일 대안이 마땅치 않았을 저 옛날에 생성된 코드들 보면서 - 진실로 언데드의 영역인가. 결국 고쳐놓긴 해야 될 것 같은데, 과연 어떤 대안을 찾아봐야 좋을까. 점점 일이 커지는 느낌인데. 더해서 지난번에 붙인 기기 포트 바꾸는 UI 만들어 준다고, 금방 만들어서 테스트 해보는데 - MFC 자체 이벤트의 괴랄함도 괴랄함이지만 - 도대체가 방금까지 잘 되던 시리얼 통신이 왜 또 포트 오픈 시점부터 갑자기 X랄이란 말인가. 테스트를 위해 포트 번호를 바꾼 뒤 재부팅을 하지 않았던 걸 결국 원인으로 지목한 뒤 재부팅 - 재부팅 후 빌드 중 링크 에러가 툭 튀어나오길래 순간 식겁했으나 - 차분하게 생각했다. 난 건드린 거 없다. 침착하게 VS를 껐다가 켜보자. 정말로 재실행 했더니 다시 빌드 되었고, 포트 번호 변경 문제도 재부팅으로 해결되었다.
어찌어찌 I 대학 프로젝트가 일단 마무리 되었네. 다음 요구사항은 또 다음 언젠가 다시 일정 잡히겠지. 이렇게 일하면서 - 정말 내가 성장하고 있는 것인가 - 잘 모르겠다. 왜 병X같이 어리버리 삽질만 한다는 느낌이 강하게 들까. 뭔가 희한한 잡지식들이 늘어난 것 같긴 한데. 와, 이거 진짜로 그냥 다시 만들고 싶다. 프로그래밍 첫 스승에게 전화해서 반말하고 싶어졌다 - 형, 코딩 워리어의 길이란 게 원래 이런 거야? 패치워크도 못 잡는 거야? O 님 말씀 들어보니 요즘 연구실에선 이미 C#도 많이들 사용하고 있다던데 - 문득 아침 지하철에서 펼쳐본 패턴 책의 내용이 떠올랐다. 플래그를 없애기 위해 고안한 템플릿 메소드 패턴 - 짜잔 - 그래서 그깟 플래그 조금 없애겠다고 기어이 상속을 이용하시겠다? 미쳐도 단단히 미친 거지. 다중상속을 막아놓은 자바에서 한걸음 더 나아가 인터페이스만 사용하도록 만든 하일스베르 선생이 훨씬 진일보 한 거지. 어쨌든 짧고 굵게 연구실에 정든 느낌이고, 다음 레이드 일정을 기약. 물론 아직 봐두지 않은 부분이 많기 때문에 - 작업을 하면 할수록 가속도가 붙을 것 같다고 며칠 전에 적었던 건 - 실언이었던 걸로 정정.