양심에 따른 병역거부와 대체복무제에 지지를 보냅니다.

양심(良心)
사물의 가치를 변별하고, 자기의 행위에 관하여 선을 취하고 악을 물리치는 도덕적 의식. (via. 야후 국어사전)

자기 자신의 도덕률에 의해 (그것이 종교적이든 신념-평화주의-이든 그 어떤 것이든) 법에서 규정하는 병역의무를 수행하지 못하는 사람들은 충분히 있을 수 있고, 실제로 존재하고 있다. 사회-법률 시스템은 이들을 범죄자로 규정짓고 배신자로 낙인찍어버린다.

국방의무는 헌법이 규정한 4가지 기본의무 중 한가지이고, 싫든 좋든 대한민국 국적을 갖고 있는 사람이라면, 반드시 지켜야할 의무다. 하지만, 이 의무를 수행할 수 있는 방법을 단 한가지로 규정짓고 이를 강요하는 것은 뭔가 이상하지 않은가? 그것도, 개인의 양심-도덕률, 혹은 신념-에 따른 판단을 완벽하게 무시하고, 범죄자로 규정짓는 현 제도말이다.

대부분 “양심적 병역거부”, “양심에 따른 병역거부” 등의 단어를 보는 순간 생리적인 거부반응을 보이며, “그럼 군대 안갔다온 사람은 전부 비양심적이냐?” 라는 반응을 보이기 쉬운데, 여기서 이야기하는 양심은 저 위에 써놓은 저 양심을 이야기한다. 즉, 군대를 갔다고 해서 비양심적으로 군대를 간건 아니라는 이야기이다. 국방의무를 병역으로 하는 것이 자신의 도덕적 의식/도덕률에 어긋나지 않는다면 가면 되는 것이니깐.

이런 관점에서 보면, (비록 산업기능요원이지만) 나는 참 비양심적인 인간이다. 군복무가 나 자신의 도덕적 의식에 반함에도 불구하고, 4주라는 기간동안 훈련을 받고, 국가에서 정한 방침에 따라 3년간 병역을 수행하고 있으니 말이다. 어쩌겠는가. 나에겐 현실이 더 중요했고, 비겁하게 4주라는 기간을 허용할 수 밖에 없었으니까. 뭐 이건 나의 경우이다. 내 도덕률에 따르면 4주라는 기간도 허용되지 않는 것이었으니까.

어찌되었든, 도덕률에 의해 군입대를 거부하는 사람들을 감옥에 가두고 범죄자를 만들며 썩히는 것 보다는, 그냥 좀 더 나은 사회적 자원으로 활용하는 것이 좋지 않겠는가? 사회보장제도나 기타 인적자원이 필요한 부분은 엄청나게 많다. 물론, 이것이 병역회피의 기제로 작용할 수는 있겠지만, 그건 대체복무제의 기회비용이 현역복무보다 크면 해결될 일이다. 대체복무제가 현역보다 힘들거나 잇점이 없다면, 누가 대체복무제를 선택하겠는가?

현재, 대체복무제와 유사하다고 생각되는 제도는 산업기능요원/전문연구요원 이란 제도가 있다. 이 제도는 군대에서 군사적 역할을 수행하는 것 보다, 산업체에서 일하는 것이 국익에 더 도움이 된다고 생각한 정부의 계산에 따라 존재하는 것이므로 대체복무라고 보기는 어렵다. (실제로 군사훈련을 받는다. 4주긴 하지만..) 이 제도는 현역복무보다 1년이 더 길다. (3년 복무) 주변의 친구들을 보면, 보통 3년 회사에서 일하느니 2년 빡세게 구르는게 낫겠다며 군대에 간 (정확히는 갔다온) 친구들이 많다. 1년이라는 기간이 현역복무와 산업기능요원/전문연구요원 사이의 기회비용 차이를 만들어 낸 것이다. 대체복무제가 만들어진다면 당연히 이 차이보다 더 큰 기회비용의 차이가 존재해야 할 것이다.

대체복무제가 생기면 누가 군대를 가겠냐는둥의 이야기는 그만하자. 대체복무제와 현역복무의 기회비용의 차이를 크게 만들면 될일이다. 누군 군대를 가고 싶어서 갔느냐? 라는 이야기도 그만하자. 그럼 대체복무제는 누가 하고 싶어서 하겠는가? 대체복무제는 병역기피의 수단이 아니라, 병역대체의 수단이다. 국방의무를 “어떻게” 수행하느냐의 차이이다. 현역복무를 못하겠다면, 다른 길을 열어주는 것이다. 더 힘든 길을.

Skype를 믿으십니까?

Skype의 위험성에 관해.

네트워크 프로토콜 분석을 업으로 삼아 살아가고 있는 터라, 보통 1년에 10~15개정도의 프로토콜을 분석하는 편입니다. (물론 이거 말고도, 제품 엔진 작업이나 기타 여러 작업이 있는터라 프로토콜 분석쪽에 전념하고 있는 것은 아니지요.)

다양하고도 많은 프로토콜을 접하게 되는지라, 여러 프로토콜을 보고 있노라면 참 많은 생각이 듭니다. 정말 무식하게 짠 프로토콜도 있고, 감동을 먹을정도로 멋진 프로토콜도 있지요. 물론, 감사할 정도로 쉬운 녀석도 있는가하면, 진절머리가 날 정도로 복잡하고 어려운 프로토콜도 있답니다. (빌어먹을 오라클, MSN)

네트워크 프로토콜은 의외로 과도한 보안이 보안을 해치는 경우가 있습니다. 네트워크 솔루션은 그 통신내역에 의해 어느정도 투명성을 보장받지요. 솔루션 자체가 비밀정보나 프라이버시를 외부로 빼돌릴수 있으며, 이 가능성은 해당 네트워크 솔루션이 어떤 내용의 통신을 하고 있는지를 보면 어느정도 판단이 가능합니다. 리버스 엔지니어링에 의한 솔루션의 Clearness 보장이지요. 물론, 통신내역을 볼 수 있다는 것 자체가 개인정보의 유출 가능성을 항상 내재하고 있는 것이긴 합니다만, 솔루션 자체에 의한 정보유출 역시 무시할 수 없습니다. (Sony에서 발매된 CD에 들어있는 백도어를 생각해보면…)
더 보기 “Skype를 믿으십니까?”

development as a war

프로로서 프로그래밍을 한다는 것 -즉, 돈을 받고 프로그래밍을 한다는 것-은 돈을 매개로 싸우는 전쟁터에 나간다는 의미이다.

결국은, 비용과의 전쟁이다. 하드웨어 비용과의 전쟁. 소스코드 유지비용과의 전쟁. 프로그래머의 임금과의 전쟁. 고객사 지출비용과의 전쟁. 고장난 하드웨어 기판 수리비용과의 전쟁.

이런 전쟁에서 프로그래머가 싸우는 필드는 자신의 컴퓨터와 마우스, 키보드가 아니라 팀원들과 공유하는 작업실 공간이다. 이런 전장에서 필요한 타입의 병력(?)이 존재한다.

지금 일하고 있는 팀을 이야기할때 종종 사용되는 비유가 있다. 기마병, 보병, 병참 및 작전.

기마병은 적진의 한가운데를 돌파하여 적진을 혼란에 빠지게 하면서, 돌파구를 찾는 역할이다. 프로그래머라면 전에 언급되었던 람보개발자일 것이다. 난제를 풀어 나가며, 길을 뚫어놓는 역할. 기마병이 없다면 팀은 앞으로 나아갈 수 없다.

보병은 기마병이 혼란에 휩싸이게한 적진을 압박해나가며, 점령지를 늘리는 역할이다. 람보개발자가 뚫어놓은 돌파구를 다져가며, 안정성을 확보하고 제품을 제품답게 만드는 건축가개발자라고 볼 수 있다. 팀을 뒤로 가지 않게 하는 것, 지속적으로 돌파구를 뚫어낼 수 있는 기반을 확보하는 것, 이 일이 없다면, 제품은 제품이 아니라 아이디어일 뿐이다.

그런가 하면, 병참과 작전도 매우 중요하다. 다른 부서와의 인터페이스, 스케쥴의 조정, 방향성의 설정등의 전체를 조망하며 팀의 결속을 강화하고 팀을 유지시키는 것. 이것이 없다면, 람보개발자도, 건축가개발자도 일을 할 수 없을 것이다.

팀의 역량과 상황에 맞추어 저 역할들은 유동적으로 agile하게 변해야한다. 기마대가 너무 난리를 피우고 다니면, 보병이 뒷수습하기가 너무 힘들어진다. 역으로 보병이 뒷수습을 못해주면, 기마대는 전멸하게 되어있다. 이런 상황을 제어하지 못할 경우는 말할 나위도 없다. 때로는 기마대가 말에서 내려 보병이 되어야하고, 돌파가 힘들면 보병이 말에 타고 돌격을 해야한다.

프로그래머가 공부를 해야하는 이유는 바로 저 유동성에 있다. 언제라도 상황에 맞추어 작업할 수 있는 능력. 때로는 기마대가 되어 돌파를 하고, 때로는 보병이 되어 뒷수습을 하고, 병참과 작전을 도맡아 상황을 제어하기도 해야하니 말이다.

만약, 저 세 가지를 한번에 요구하는 경우가 생긴다면, 조직을 바꾸도록 노력을 해봐야한다. 해도 안된다면 이직을 고려하라. 🙂

요즘 작업/고민중인 funcode #1

1. DistCL
MSVC의 cl.exe 대체품. 분산 컴파일을 위해 작업중인 코드. with Python.

2. downcast_overloader
결과타입 처리하는 것 때문에 고민중. with C++

3. XML Template Library
element+는 libxml2기반으로 작업했더니 너무 libxml2에 의존적이 되어버렸당.
expat기반으로 xml pull parser를 만들어 작업하는 방안 고민. 이름도 고민.