기본 콘텐츠로 건너뛰기

역시 세상은 자동화되어야 한다.

1. 오늘 아침 오랜만에 뱅뱅사거리에 가야 할 일이 있었다. 뱅뱅사거리보다 조금 북쪽에 있는 강남역 근처는 아침부터 사람이 많지만, 뱅뱅사거리는 보통 사람이 그닥 많지 않다. 보통 강남역에서 오는 방향으로 차가 조금 있을 뿐이지 다른 방향에는 차가 거의 없다.
 그런데 오늘은 뭔가 달랐다. 뱅뱅사거리에 도착하기 한참 전부터 차가 밀려있었다. 전 직장이 뱅뱅사거리에 있어서 거의 1년 반을 출퇴근했지만 이렇게 밀린 적은 처음이었다. 이유가 뭔지는 뱅뱅사거리에 도착해서야 알 수 있었다. 뱅뱅사거리의 신호등이 네 방향 모두 정지되고 경찰관 두 분이서 교통정리를 하고 있으셨다. 두 분이 수고하고 계셨지만, 역시 교통은 신호등이 있을 때 만큼 잘 정리되지 않았고, 결국 네 방향 모두 차가 밀리는 상황이 되었던 것이다.
 평상시에 별로 신경 쓰지 않고 지나가는 신호등이지만, 교통량을 기반으로 대기 시간을 최소화하기 위한 최적의 시간으로 설계되어 있다. 문제가 생길 때까지 그 존재를 신경 쓰지 않아도 된다는 점에서 보면, 가장 잘 구현된 자동화 시스템의 하나가 아닐까 한다.

2. 자동화. 좋은 울림이다. 다른 사람들은 모르겠지만, 프로그래머에게 자동화는 세상 무엇보다 중요한 단어이다. 모든 프로그래머는 자동화를 위해 존재한다고 할 수 있다. 워드나 유틸리티는 물론이고, 게임조차 과거 주사위를 돌리고 판을 정리하던 것을 자동으로 할 수 있도록 자동화한 것이라고 볼 수 있다.

3. 좋은 프로그래머가 갖춰야 하는 덕목으로 무엇 하나만 고를 수는 없다고 생각한다. 하지만 자동화는 분명 좋은 프로그래머가 갖춰야 할 덕목 중 하나라고 생각한다. 아니 덕목 중 하나가 아니라 최소 조건이라고 생각한다. 내가 사용하는 도구의 장점과 한계를 인식하고, 내가 해야 할 작업 중 반복적인 패턴을 찾아내서 자동으로 반복될 수 있는 일을 추출해내는 것을 할 수 없다면 다른 일을 잘하더라도 결국 좋은 퍼포먼스를 낼 수 없다. 사소하고 중요하지 않은 일에 너무 많은 시간을 뺏기기 때문이다.

4. 작업을 자동화하는 것만큼 중요한 것이 작업을 간소화시키기 위한 적절한 도구다. "장인은 연장 탓을 하지 않는다."라는 말을 빌려서 도구는 중요한 게 아니라고 말하는 사람도 있다. 하지만 절대 아니다. 틀렸다. 저런 말 절대 믿지 마라. 자신이 갈고 닦은 칼을 쓰지 않는 주방장을 봤는가? 자신의 끌을 가지고 있지 않은 목수를 믿을 수 있겠는가? 만화 그리는 사람이 고액의 펜촉을 사거나, 그림을 그리는 사람이 좋은 붓을 사는 데는 다 이유가 있다. 물론 장인이라면 좋은 도구가 없어도 어떻게든 작업을 완성할 것이다. 하지만 그렇게 나온 작품이 그 장인의 실력 전부라고 생각하면 안 된다.

5. 도구 얘기를 하니까 갑자기 전에 알바로 일했던 회사가 생각나서 화난다. 그 회사는 뭐랄까 도구를 잘못된 방향으로 사용했다. 뭐랄까 툴로 해결 해야 할 문제를 손으로 해결하고 사람의 손으로 해야 하는 것을 툴로 해결했다.
 버전 컨트롤 시스템으로 Source Safe라는 구시대의 유물을 사용했는데, 그나마도 제대로 사용하지 못했음은 물론이고, 유지보수라는 명목으로 추가 요금을 받기 위해 파견을 많이 나갔는데, 파견 나간 회사에서는 SourceSafe를 사용할 수 없어 이메일로 코드를 주고받았다. 당연히 파견지의 소스와 회사에서 가지고 있는 소스가 달라졌고, 이 차이때문에 꾸준하게 문제가 발생하면서 그 상황을 당연한 상황이라고 인식하고 해결하려는 노력도 하지 않았다.
 IDE로는 Visual Studio를 사용했는데, 솔직히 내가 Vim과 GDB를 이용하는 것보다 더 간단한 기능들만 사용했다. bookmark나 함수의 선언을 찾아가는 단축키는 당연히 몰랐고(일부는 그런 기능이 있다는 것도 몰랐다.) 리팩토링 관련된 기능은 설명을 해줘도 왜 필요한지 이해를 못 했다.
 가장 짜증 나는 것은 손으로 해야 할 것을 도구를 이용해 했다는 것이다. 코드의 작성을 템플릿 코드만을 이용하기 때문에 자신이 작업하는 코드가 어떻게 돌아가는지 실제 디버거를 붙여서 돌려보지 않으면 모르고, SQL이나 Regular Expression은 쓰기는커녕 읽지도 못해서 GUI 툴을 이용해야만 작업이 가능한 사람이 절반은 됐다.
 3년도 넘은 이야기지만 아직도 그 회사만 생각하면 자다가도 열 받아서 잠이 깬다.

p.s. 뭔가 말하다 보니 다른 사람 욕하는 얘기로 새버렸다. 욕을 더 하고 싶은데 길어질 것 같으니 다음 기회에 다른 글로 적도록 하겠다.

댓글

이 블로그의 인기 게시물

[게임] ENSLAVED: Odyssey to the West 리뷰

우선 네타 없는 리뷰부터 먼저 하자면 Enslaved는 서유기의 리메이크인 액션게임이다.
 배경은 인간들끼리의 전쟁이 있은 지 약 200년 후. (전쟁이 발생한 시기는 알 수 없으나 건물이나 자유의 여신상이 형태를 유지하고 있는 것을 보면 지금보다 먼 미래는 아닌듯하다.) 자연은 파괴되었고(하지만 황무지를 제외하고 도시에 생긴 숲은 오히려 지금보다 더 좋아 보인다.) 인간들은 기계의 노예가 되어 있는 세계에서 몽키(손오공)가 헤드기어(금고저) 때문에 트립(삼장법사)의 노예가 되어, 트립의 고향인 동쪽으로 여행을 떠나는 내용이다.

 중간에 픽시(저팔계)라는 캐릭터가 등장하여 플레이어와 함께하지만, 사오정에 해당하는 캐릭터는 등장하지 않는다. 아마도 빠른 스토리 전개를 위해 없는 게 좋다고 판단한 듯하다. 개인적으로 좋은 선택이었다고 생각한다.

 수집 노가다 없이 엔딩만을 보기 위한 플레이 타임은 약간 짧은 듯한 10시간 내외지만 가격이 저렴하므로 딱히 손해 봤다는 느낌은 들지 않는다.
 다만, 할 수 있는 전투법이 한정되어 있어서 2회차 이상부터는 흥미가 급격하게 떨어진다. 사실 엔딩을 보고 싶다는 생각이 없으면 1회차 플레이 중간에 때려치우고 깊어질 정도로 전투 패턴이 일정하다.

 게다가 트립과 픽시와 같이 여행한다고 하지만, 사실 몽키 혼자 있어도 크게 상관없다.
 픽시는 스토리를 빼면 정말로 있으나 마나 한 캐릭터다. 지원사격을 해준다고 하지만 딱히 지원사격이 필요한 상황이 아니라서 더욱더 그렇게 느껴지는 듯하다. 1) 언뜻 보기에도 다양한 재주를 가지고 있는 것으로 보이는데 정작 플레이어와 interact할만한 부분이 나오지 않아서 더 아쉽다. 2)
 트립은 적을 유인하는 것과 몽키의 스킬을 업그레이드해주는 것 이외에는 딱히 interact할 필요성을 못 느끼고, 그나마 유인에 관한 것도 스팀에서 판매하는 Premium edition에 들어 있는 Ninja Monkey를 사용할 수 있는 2회차 플레이부터는 정말 쓸 필요가 없다.

 전투가 쉬운 만큼 퍼…

Poker X 스위치 교체

키보드덕후들 사이에서 유명한 Poker X라는 키보드가 있다. 해피해킹과의 미니키보드중에서 tilde(~)와 backspace의 위치가 신경쓰여 못들고 다니겠다고 하는 사람들을 위한 레이아웃으로 꽤나 인기있어 생산이 중지되고 다음 버젼이 나오고 있는 지금도 주문 요청이 꾸준하게 들어오고, 중고시장에서도 없어서 못팔고 있는 물건 중의 물건이다. 이놈을 몇달 전부터 휴대용으로 사서 들고다니고 싶다고 IRC에서 소리치고 다녔더니, P형이 자신이 가진 청축 Poker X를 업어가라고 하였다. 처음에는 청축 특유의 소음때문에 휴대용으로 쓸 수 없는 관계로 재생산만을 기다리다가 4월에 수입하겠다던 레오폴드로부터도 딱히 긍정적인 반응을 볼 수 없어서 결국 포기하고 P형의 청축포커를 가지고 왔다.
보강판이 없는 모델인 덕분에 보강판을 때리는 거친음은 나지 않았지만, 그래도 청축특유의 딸깍음은 어쩔 수  없어 집밖에서 쓰려면 욕먹을 각오를 해야한다.(실제로 써보고 욕먹었다.) 집에서만 쓸거라면 미니키보드의 장점이 사라지기 때문에 스위치를 조용한 적축과 흑축의 조합으로 바꾸기로 하였다. 앞에서 말했듯이 보강판이 없기 때문에 기판을 분리하는건 매우 쉽다. 그냥 키캡을 빼서, 나사만 풀어주면 기판이 들린다.
문제는 desoldering이라고 부르는 납을 제거하는 작업인데, 포커는 녹는점이 높은 무연납을 사용하고 있다. 일반납이라면 적절히 녹여서 스위치를 밀어내는것만으로 가능하였겠지만, 무연납에 그런 묘기를 부릴 자신이 없었기 때문에 desolder pump가 있는 학교로 이동하여 작업을 계속하였다. 하지만 desolder pump도 기본적으로 유연납을 제거하기 위한 장치기 때문에, 결국 2시간에 걸친 중노동을 해야만 했고,  LED가 납땜 되어 있는 곳은 열을 충분히 가할 수 없어 결국 포기하고 말았다.
이번 컨셉은 조용한 차등키보드였기 때문에 흑축과 적축의 조합을 리얼포스 차등의 조합을 참고하여 키를 조합하였다. 기본적으로는 리얼포스의 키 배치를 배꼈지만, 포커에서 방향…

Tesla smart HDMI KVM Switch

KVM 스위치라는 것은 하나의 Keyboard/Video/Mouse를 여러 개의 컴퓨터에서 사용할 수 있게 해주는 장치를 말합니다.집에서 사용하고 있는 컴퓨터가 많은데, 책상에 그 수만큼 모니터를 올릴 수 없어서 언제나 키보드 마우스의 USB나 모니터 케이블을 뽑았다 끼기를 반복했는데, 이게 생각보다 귀찮아서 게임을 하면서 중간중간 개발을 한다거나 하는 건 할 수 없었다. 게다가 언제나 컴퓨터의 뒷면에 쉽게 접근할 수 있도록 컴퓨터를 두어야 했기 때문에 컴퓨터 배치도 한정적일 수밖에 없습니다. KVM 스위치는 이런 문제를 한 번에 해결해줍니다. 위 사진은 작년에 구매한 Tesla smart라는 HDMI 2.0이 지원되는 4 port 제품입니다. Elon Musk테슬라와는 관계없는 평범한 중국의 제조업체이지만, 제가 원하는 사양을 가장 저렴한 가격에 판매하고 있어 구매했습니다.사실 원래는 Dual-link DVI만 지원되는 모니터를 썼는데, Dual-link DVI 지원되는 KVM 스위치는 너무 비싸 HDMI 지원되는 스위치를 사면서 모니터까지 새로 사게 됐는데 그럼에도 작년에 구매한 물건 중 가장 만족도가 높은 물건을 꼽으라면 아마 이것을 꼽지 않을까 합니다.