말귀를 못 알아듣는 상사, 혹은 동료?

너무도 흔히 이야기되는, 직장에서, 자신을 제외한 사람들의 약점이란, 그들은 도무지 말이 통하지 않는 다는 것이다. 그들은 게으르고 무식하고 이기적이기까지 해서, 도무지 다른 사람의 말을 들으려 하지 않는다는 것이다. 어떻게 그런 인격을 가진 사람이 존재할까 의심이 되지만, 들리는 말에 의하면, 그들은 실존인물인 것이다. 그토록 싫어하는 사람과 계속해서 한 직장에 다니고 있다는 사실이 약간은 놀랍기까지 하다. 어쨌든…

본인의 의도가 상대방에게 제대로 전달되지 못했다고 해서, 반드시 그 상대에게 문제가 있다고만 할 수 없는 것이, 불완전하게 끝나버린 대화에는 그것을 시작한 이에게도 일정부분의 책임이 있기 때문이다. 전달하고자 했던 부분을 제대로 하지 못했다는 면에서라면, 목표를 성공하지 못한 이에게 더 큰 책임이 있다고 할 수 있겠다. 물건을 팔기 위해서 소비자를 설득시켜야 하는 쪽이 장사치이듯이, 설득을 시키지 못한 쪽이 상대방을 비난할 필요가 없단 뜻이다.

내가 한번도 만나보지 못한 사람을, 당신은 매번 함께 부대끼고 있다는 사실이 뭔가 이상하지 않은가?

설득하지 못한 자신을 탓해라. 그 다음에, 사람을 탓하든 말든 그건 당신의 자유다.

Windows도 못 죽이는 Window

한 명이 그런 말을 했을 때는, 분명히 다른 이유가 있을 것이라고 생각했다. 그런데 그런 말을 하는 사람이 점점 늘어났다. 그렇지만, 찌질한 내 어플리케이션 때문에 Windows(Window XP)를 종료할 수 없다는 게 말이나 되나?

언제 마지막으로 껐는지 기억나지 않는 내 컴퓨터의 종료아이콘을 클릭했다. 다른 프로그램들이 죽어도 나의 찌질이는 죽지 않고, Windows도 종료되지 않았다. 젠장~

쓰레드를 죽이지 않아서? 트레이아이콘에 내가 모르는 뭔가가…? 문제는 FormClosing이벤트에 있었다.

다음은 폼의 종료아이콘을 클릭할 경우 폼을 숨기고, 트레이아이콘의 메뉴를 클릭할 경우 폼을 진짜로 종료하는 ‘아주 일반적이라고 생각했던’ 코드이다.

혼자서 테스트 할 때는 잘 됐다. 문제는, Windows를 종료해보는 테스트까지는 해보지 않았다는 거… 그리고, 그런 건 당연히 종료되어야 하는 거 아냐?

문제는 FormClosing이벤트의 파라미터인 FormClosingEventArgs에 CloseReason이라는 멤버를 몰랐다는 것이다. 이는 폼이 어떻게 해서 종료요청을 받았는지를 알려주며, 그 중에는 WindowsShutDown이라는게 있어서, Windows가 요청했는지도 알 수 있다. 사용자가 명시적으로 폼을 닫을 경우에는 CloseReason이 UserClosing가 된다.

코드를 다음과 같이 수정하니, 윈도우가 무사히 종료된다.

일단, 이렇게 문제가 일단락 되기는 했지만…, Windows란 놈, 생각보다 약하다.

타이핑 속도

난 타이핑 속도도 그리 빠르지 않고, 단축키도 별로 사용하지 않는다. 이게 별 문제가 안 되는 가장 큰 이유는…, 사고의 속도가 손의 속도를 따라가지 못하기 때문에 빠를 필요가 없는 것이다. 결국, 머리의 속도에 손이 맞춰지게 됐단 거다.

그렇지만, The Art of Computer Programming의 저자인 Donald Knuth는 조금 달랐다.

I love keyboards, but my manuscripts are always handwritten. The reason is that I type faster than I think. There’s a synchronization problem. I can think of ideas at about the rate I can write them down with a pencil. But with typing I’m going faster, so I have to sync, and my thoughts have to start up and stop again in a way that involves more of my brain. ((An Interview with Donald Knuth, CACM Vol.51 No.7))

저는 키보드를 사랑하지만, 제 원고는 항상 손으로 씁니다. 생각하는 속도보다 더 빨리 타이핑해버리거든요. 동기화 문제가 생기죠. 제가 아이디어를 연필로 적는 것과 그것에 대해서 생각하는 속도는 비슷합니다. 그렇지만, 키보드를 사용하면 동기화하기 위해서 생각을 멈춰야 하는데, 그러려면 머리를 더 써야 하거든요.

타이핑 속도를 늦추지 않는 대신, 앗싸리 연필을 쓴다.

역시…, 대가는 다르다.

RegCreateKeyEx() & Windows 2000

Windows XP와 Windows Vista에서는 아무런 문제가 없는 VC++ 2005로 작성된 프로그램이 Windows 2000에서만 런타임에러를 토해버린다. Micorsoft를 싸잡아 욕하면서 꽤 많은 시간을 삽질한 결과…, 역시나 내 실수다.

out 파라미터인 phkResult가 NULL인 경우, 이러한 예외상황을 Windows XP와 Windows Vista에서는 적절히 처리하는데 반해서 Windows 2000은 그렇지 못하다.

MSDN이 말하지 않았으면, 하지 말라는 거다!

월급

프로그래머로 일하는 친구 놈에게 전화가 왔다. 몇 달 월급이 밀렸다며, 회사생활에 대한 하소연을 늘어놨다. 나는 일단, 회사를 그만 두는 것이 어떻겠냐고 충고했지만, 친구는 그 후로도 사장의 말을 몇 번 더 믿었다.

결국, 친구는 받지 못한 월급만 더 많아진 상태로 회사의 다른 직원들과 퇴사했다. 회사는 폐업하고, 사장은 새로운 회사를 차렸다고 한다. 줄 월급보다 훨씬 적은 벌금을 물어야 하는 사장이 밀린 월급을 줄 가능성은 없어 보인다.

월급은 프로젝트가 성공하거나, 완료해야 주는 돈이 아니다. 이런 건, 통상 성과급 정도로 구분한다.

월급 月給

[명사]일을 한 대가로 달마다 받는 삯. ≒삭료(朔料)·월료(月料)·월봉(月俸). (네이버 사전)

이게 월급이란 거다.

사업주가 빛을 내서라도 직원들의 월급을 주는 것은 당연하다. 월급 줄 돈이 없으면 사업을 접는 것이 마땅하다. 회사가 성공했을 때, 가장 큰 이익을 보는 이가 사업주므로, 이러한 리스크를 감당하는 것이다.

당연히 성공할 줄로만 알았던 플래그쉽 스튜디오가 망했단 뉴스를 보고, 친구가 생각나서 몇 자 적었다.

플래그쉽 스튜디오의 커뮤니티 매니저 테일러 발비는 13일 현지 언론을 통해 플래그쉽과 핑제로의 직원 전원이 해고 통보를 받았으며, 7월13일자로 회사가 문을 닫는다고 밝혔다. 회사 최고 임원 3명이 사비를 털어 직원들의 마지막 월급을 지불했다고 말했다. (www.thisisgame.com)

친구야, 냉정해지자.