공학과 수학은 다르다.

공학과 수학은 다르다. 많은 이들이 보기에는 이 두개가 같아 보일지도 모른다. 난해한 수식, 뭔가 알아들을 수 없는 소리. 물론 그 결과물은 유용하고 도움이 되는 경우가 많다는 것을 알지만 이 두 개는 보기에는 엇비슷해 보인다. 공학책을 펼쳐보면 온통 수식 뿐이니 그렇게 보일만도 하다.

공학은 분명히 수학을 수단으로 사용하고 수학을 근간으로 하고 있다. 하지만 언급하고자 하는 바는 공학과 수학의 철학이 다르다는 것이다. 수학의 철학을 논할 자신이 없으니 그건 제외하도록 하고 그렇다면 공학의 철학은 무엇인가?

공학은 오로지 쓰기 위한 학문이다.

장영실이 만든 시계인 자격루를 기억하시는가? 화려함의 극치를 보여주는 물건이다. 이 물건이 동작하는 원리는 분명히 수학이지만 수학은 이 시계를 만드는 근본 원리로써 사용되었다. 즉 물건을 만들기 위한 공학의 도구로써 수학이 사용된 것이다.

공학은 철저하게 쓰기 위한 학문이고, 대학때 교수님께서 간단한 말씀으로 이걸 표현하신적이 있다.

"공학에서는 마진이라는게 있다. 예를 들어 마진이 30%로 간주된다면 0.8까지는 1인것이다. 수학에서는 0.8은 0.8이고 1은 1이지만 공학은 그렇지 않다."

쓰기 위한 학문에서는 한치 없는 오차로 동작한다는 것은 기대하기 어렵다. 그래서 처음부터 여유를 두어서 설계하고 여유안에서는 충분히 동작할 수 있도록 해둔다. 예를 들어 휴대폰은 전파가 약해지거나 간섭하는 전파가 많아질 경우, 음질을 희생하더라도 통화를 할 수 있게 해두었다. 휴대폰의 목적은 통화이지 음질이 아니기 때문이다. 음질은 곁다리 메뉴일 뿐이다. 음질은 좋지만 두번에 한번밖에 안걸리는 전화와 100% 걸리지만 80%쯤 음질이 안 좋은 휴대폰중 어느쪽을 고르겠는가?

공학은 공돌이들만의 학문이 아니다.

공돌이가 사업을 해서는 말아먹는다는 이야기를 종종 듣는다. 물론 드물게 성공하는 경우도 있지만 보면 마인드가 제약적이거나 고만고만한 경우가 많다. 전문 경영 CEO를 영입하여 회생하는 경우를 종종 목격한다.

공학은 공돌이들만의 학문은 아니다. 하지만 이를 뒤집어 말하면 공돌이는 공학만 해서는 안된다는 이야기도 성립할 수 있다. 물론 역명제가 늘 진리인 것은 아니지만 우리나라 IT 쟁이들은 거기에 얽매여 있는 것 같아서 안타까울 때가 많다. 자신이 얼마나 많은 스킬을 가지고 있고 남들이 못하는 것을 자신이 할줄 안다고 자랑을 한다. 날밤 꼴딱꼴딱 새고 준비했으니 알아달라고 한다. 이번 마이크로소프트 발표회때도 행사 준비 하는데 밤새웠으니 알아달라고 자랑을 했다. 글쎄.. 정말 세련된 발표회였다면 그런 이야기를 했을까? 정말 중요한 바이어였다면 그런 이야기를 했을까? 그 전날에는 집에 들어가서 충분히 휴식도 취하고 일부 스텝을 제외하고는 모두 세련되게 옷도 깔끔하게 입고 최선의 옷을 다해서 나왔을 것이다. 대통령이 방문하는 날에는 IT 업계쪽이나 연구원쪽에서도 모두 양복입고 나오지 않던가? 평소에는 편하고 털털하게 다니던 사람들도 모두 정장을 입고 나온다. 쓰기 위한 학문은 본래 사업을 위한 것임을 본연중에는 다 알고 있는 것이다. 협상에 방해가 된다면 쓸데없는 언급을 해서 판을 망쳐서는 안된다.

하지만 우리나라는 그러한 점들이 잘 잊는듯하다. 우리나라에서 IT 개발자들은 단명하는 직종이고, 천민 직종이라고도 한다. 외국에서는 고액 연봉을 받으면서 매해 경력을 쌓아서 전문가가 되지만 우리나라는 그렇지 않다. 최근에 외국에서 발행된 전자 엔지니어 등의 잡지 등에 기고한 외국 전문가들의 글을 보면서 감탄하는 경우가 많다. 너무 공돌이 스럽게 쓴 글도 많지만 그보다 사업적인 견지에서 자신의 지식을 적절한 요소에서 잘 활용하면서 매끄럽게 쓴 글들을 많이 보기 때문이다. 사실 그 글 자체가 놀랍다기보다는 우리나라의 임베디드 월드 등에 기고된 글을 보면 역으로 개탄스럽기 짝이 없다. 우리나라에서 세련되게 그런 글들을 쓸줄 아는 사람들은 한정되어 있다. 일선의 개발자들은 그저 스킬을 쌓는데 주력한다지만, 그저 기술에서도 한정된 영역에서 잡다하게 쌓고 있을 뿐 정말 쓰기 위한 스킬을 세련되게 쌓지 못한다. 일시키는 데도 문제가 있어서 이일 했다가 저일 했다가 잡다하게 할뿐, 총체적으로 한 분야에서 깊이 있게 쌓아올리는 경우는 참 드물다.

이제는 공돌이가 스스로 일가를 이루어야 할 때

이젠 공돌이들이 세련되어져야 할 때가 왔다. 언제까지 비전공자들 아래에서 장기말로만 쓰일 것인가? 공학은 그 전공자가 제일 잘 안다. 제일 잘 아는 사람이 제일 잘 쓸 수 있는 것은 당연지사이지만 어디에 어떻게 써야 하는지는 배우지 못했다. 이 부분은 누가 시켜서 배우는 것이 아니라 스스로 채워나가야 하는 부분이다. 비지니스적인 마인드나 사교적인 부분 또한 마찬가지이다.



WRITTEN BY
가별이
내가 천사의 말 한다 해도

,
사용자 삽입 이미지


나는 하드웨어 개발자이다. 위의 사진에서 보이는 것과 같은 물건을 만들어 내는 사람이다. 블로그를 하면서 프로그래머들은 흔하게 봐왔으나 최근 메타를 둘러봐도 이쪽 직종에서 일하는 사람이 자신의 일을 드러낸 블로그를 아직 보지 못하였다. 하긴 그럴거라고 생각이 드는게 하드웨어는 이미 일상사를 너무나도 깊이 파고들었고 이를 기반으로 하는 소프트웨어는 중요하게 여겨지더라도 이를 기반으로 하는 하드웨어는 속으로 감춰져 잘 보이지 않기 때문이다. 예를 들면 휴대폰의 케이스를 벗겨 보면 이런 보드가 나오지만 A/S상의 문제로 벗겨본 사람도 거의 없을테고 휴대폰이 고장나거나 잘 안되면 제조사나 통신사를 탓할테니까.. 이는 하드웨어가 이미 공기처럼 당연한 수준에 가깝게 왔다는 의미인 것 같다.

하드웨어 개발자는 상당히 다양한 일을 아우를 줄 알아야 하는 듯 하다. 휴대폰 개발을 한다면 자신의 한분야만 맡아서 하는 경우도 있겠지만 대다수의 중소기업에 있는 보드 개발자들은 상황이 그렇지 않을 것이다. 자신의 보드에 들어갈 칩셋을 어느정도 꿰고 있어야 하고, 그 칩셋이 현재 단종인지 아니면 새로운 제품이 나왔는지도 알아봐야 하고 이걸 기반으로 회로도도 그리고 인터페이스 설계도 하고, PCB도 설계하고, PCB 만들고, 부품 구매하고 조립하고, 디버깅하고, 기구도 생각해야하고, 튜닝도 해야하고, 이걸 기반으로 제안서도 써야 하고, 발표도 해야 한다. 전시회 나가서 설명도 할 줄 알아야 한다. 정말 다양한 일들을 해야 하는데 이러한 일을 하다보면 정말 해도 해도 끝이 없다는 생각이 들곤한다. 임베디드 보드와 네트워크 보드, RF보드 등 (여러분들은 마더보드와 PCI타입의 보드는 흔하게 봐 왔을것이다.) 여러가지 종류에 따라 판이하게 달라질테니까..

이 쪽 분야의 일은 시간과 아웃풋이 정비례하지 않는다. 하지만 시간을 어느수준 이상 들여야만 아웃풋이 나온다. 이는 예상할 수 없는 문제가 빈번하고 이를 해결하는 것은 시간만 무조건적으로 소요해서는 안된다는 것을 의미한다. 물론 시간이 지나면서 깨닫고 해결하기는 하지만 그 때마다 느끼는 것은 내가 이런 류의 기반 지식을 갖추고 있으면 좋았을 것이라는 생각이다. 하지만 기반 지식은 대학교때의 전자회로, 회로이론의 지식만 가지고는 해결되지 않는다. 칩은 엔켑슐레이션 되어 있어서 옛날처럼 디스크리트하지 않기 때문이다. 또한 아날로그 신호와 디지털 신호의 혼재, 파워 신호와 논리 신호의 혼재, RF 신호와 베이스 밴드 신호의 혼재 등 높은 수준의 문제는 어디에서든 일어나고 있다. 메인 파워 레귤레이터의 모드 셋팅이 잘못되어 DC/DC 컨버터의 출력에 노이즈가 섞여 있는데 그로 인해 RF PHY출력의 프리 앰블 부분이 깨져서 건너쪽에서 데이터를 못 받고 모두 패킷 에러를 낸다고 하면 이걸 누가 알아 들어주겠는가? 또한 대학교때의 한 분야로는 결코 해결할 수 없는 문제이다. 결국은 시간을 들여서 단 별로 세심하게 체크하면서 자기 스스로가 공부할 수 밖에 없는 분야인 것이다.

보드를 꾸미면서 의외로 괴롭게 하는 분야는 커넥터이다. 이종의 보드와 접속하기 위한, 도터 보드와 접속하기 위한 커넥터는 편리를 위해 넣지만 선택도 어렵고 디버깅도 어렵다. 선택이 어려운 이유는 고려해야 할 대상의 의외로 많기 때문인데 이는 지나가는 신호의 속도, 커넥터의위치, 보드간 결합되었을 때의 모양, 커넥터 밴더, 구매 소요 기간, 단가 등의 많은 부분이 개발자를 괴롭힌다. 기껏 고민해서 달아놨더니 신호, 전원, 그라운드에 노이즈가 발생하거나 SMT형 커넥터의 경우 패드가 제대로 붙지 않거나 쇼트나서 동작하지 않는 경우가 허다하다. 하긴 사람도 다른 존재와의 커넥션 부분은 어렵긴 하다... ㅋㅋ


나머지는 다음에 계속...

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,
나는 임베디드 개발자이다.

처음에는 삼성 휴대폰 개발을 했고 ZigBee 개발, UWB 개발을 담당했다.

뭐 보유한 능력은 기본적인 보드 설계부터 제작, 디버깅까지와 부품 알아보고

수급하는 것, 기초적인 코딩 및 포팅 정도 되겠다.


어차피 이런 일 하는 사람은 전국에 거의 몇만명은 깔려 있을 것이고 능력의

차이와 하는 일의 차이가 좀 있긴해도 근본적으로는 대동소이할 것이다.


어느 분야나 그렇겠지만 이 분야는 정말 다양한 능력이 필요하다.

그리고 불확실한 분야이다.


대학에 들어가셨을 때 교수님께서 말씀하시길 공학이란 처음부터 마진과 오류를

깔고 들어가는 것이라서 그 마진내에만 들어가면 되는게 공학이라고 하셨다.

확실히 그러한 면이 있어서 여기서는 완벽을 요구하는게 아니라 어느정도의

선에서 되느냐 안되느냐를 요구한다.


하지만 불확실한 요인이 어디에서나 산재하고 그런 요인들은 교과서에

나와있는게 아니기에 요령과 경험은 개발자에게는 너무나 중요한 자산이다.


따라서 숙련된 개발자는 너무나도 중요하지만 우리나라의 여건이

숙련된 개발자가 오래오래 살아남아서 개발에만 몰두할 수 있는 그런 여건이

갖춰지질 못하고 있고 또한 제대로 대우받지도 못하고 있다.

하고 싶더라도 사내정치라는 분야가 있고 회사에서 그 사람의 연봉을 매년

올려주다 보면 감당할 수 있는 리미트가 있다.

전에 어떤 글에서 보기에 일반 사원으로서는 중소기업에서는 연봉 4,000만원이

리미트라고 하더군. 그 이후에는 중역으로 올라서거나 이직하거나 아니면 차리거나

전업하거나의 경우가 되는 거겠지.


사실 아직까지는 내가 어떤 케이스에 속할지 모르겠다. 매년 일을 하고 있지만

운이 좋은건지 주력에 집중하면서도 이런 저런 다양한 일을 하면서 매년 경험이

쌓이고 있고 크게 빗나가는 거 없이 경험이 쌓여서 도움이 되고 있다.


조금만 있으면 만 5년차가 된다. 이제 슬슬 방향을 결정해야 할 것 같지만

사실 생각은 많아도 선뜻 엄두가 나지 않는다. 하지만 올해가 결심해야 할 때라는 것은

잘 알고 있다.


조만간 결심이 서면 여기에 올릴지도 모르겠다. ㅋㅋ

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,

순진한 개발자가 사내정치에서 살아남는 법

류한석 (IT 컬럼니스트) ( ZDNet Korea )   2008/03/17

개발자 K씨를 재회한 것은 8년만의 일이다. 그는 나와 함께 일했던 직장에서 이직한 이후에 4번이나 더 이직을 했는데, 현재는 실직 상태에서 직장을 구하고 있었다.

솔루션을 개발하는 회사에서는 비전이 없어 그만 두었고, 대기업 계열 SI업체를 들어갔으나 개발이 아닌 관리를 시켜서 그만두었고, 포털에 들어갔는데 할 일이 별로 없고 회사 상황이 정치적이어서 그만두었다고 했다. 그리고 마지막 회사는 소위 벤처기업이었는데, 6개월이나 임금을 받지 못한 상태에서 사장이 사실상 야반도주를 해서 회사가 망했다고 했다.

K씨는 자바를 정말 잘 다루던 개발자였는데, 일반적인 기준에서 볼 때 성격이 좋다고 얘기하기는 힘든 사람이었지만 그 정도면 무난하다고 할 수 있었다. 다만 여느 개발자와 마찬가지로, 타인의 욕구에 관심을 가지거나 커뮤니케이션 스킬이 뛰어난 사람은 아니었다. 다음은 그가 한 얘기이다.

“회사 경영은 나하고 상관이 없다고 생각했어요. 제가 경영이나 관리 같은 것은 잘 모르고요. 회사에서 벌어지는 정치 게임은 질색이에요. 저는 그저 개발만 하고 싶었어요. 그런데 개발에 집중할 수 있는 조직이 참 없더라고요. 이제 저는 어떻게 해야 할까요?”

필자는 그날 K씨와 새벽까지 술을 마실 수 밖에 없었다. 개발자가 개발자답게 일하고 성장할 수 없는 것이 바로 한국의 현실이다. 성장을 하는 것이 아니라 사라져 가고 있다.

개발자는 어떤 사람인가? 문제를 발견하고 문제를 해결하고, 스펙에 따라(또는 창조적으로) 무언가를 만들어 내고, 오랜 시간 동안 한 자리에 앉아서 화면만을 째려보며 몰입할 수 있기에 개발자다. 그것이 그들의 특징이며 그렇게 때문에 개발을 할 수 있는 것이다.

개발자에 대해 IT업계의 다른 직종들은 어떻게 생각하고 있을까? 단편적이지만 그들의 생각을 살펴보자. 어떤 영업맨은 “저한테 저렇게 열 시간 동안 앉아 있으라고 하면 절대 그러지 못할 거 같네요. 어떻게 저럴 수 있나요?”라고 필자에게 반문하기도 했다.

어떤 마케터는 “그들은 쿠폰에 항상 도장을 찍더군요. 작은 것에 민감한 거 같아요. 시야가 좁고 자신들의 분야 외에는 거의 관심이 없는 거 같더군요. 게임이나 애니, 미드 같은 것을 좋아하고. 업계나 시장 돌아가는 상황에 대해서는 관심도 없고...”라고 얘기했다. 실제로 마케터들은 개발자와 함께 일하는 경우가 별로 없어서 그들을 잘 모른다. 원거리에서 그들을 바라볼 뿐이다.

반면에 개발자와 함께 협업하는 경우가 많은 요구분석가, 웹기획자들 중 상당수는 다음과 같은 얘기를 했다. “그들은 커뮤니케이션 스킬이 없어요. 중요한 대화에는 제대로 응하지 않다가 자신들과 상관이 있는 이슈가 나오면 발끈해요. 무조건 안 된다고만 하죠. 도무지 협상이라고는 할 줄 모르는 사람들이에요.”

혼자서 일하는 1인 개발자가 아닌 이상, 대부분의 개발자는 조직에서 협업을 해야 한다. 프로젝트 매니저와 대화해야 하고, 기획자/디자이너/동료 개발자와 협업을 해야 한다. 프로젝트에 따라서는 고객과 직접적인 커뮤니케이션을 해야 하는 경우도 있다. 그리고 사내정치를 피해갈 수 있는 개발자는 거의 없다. 직간접적으로 영향을 받을 수 밖에 없다.

그런데 한국에서 사내정치는 중소기업에서 대기업, 인터넷기업까지 만연되어 있다. 많은 개발자들이 정치를 싫어한다. 정확히 표현하면 정치가 미치는 부정적인 영향을 싫어한다고 할 수 있을 것이다. 하지만 조직이라는 것은 그 안에 있는 수많은 조직구성원들이 지위 고하에 따라 자신의 목표와 이익을 추구하는 곳이다. 그리고 그들간의 이해관계는 상충될 수 밖에 없다. 그래서 누군가는 희생자가 된다. 안타깝게도 그 대상은 대부분 개발자이다.

개발자는 현실적인 일정 하에서 보다 나은 기술을 이용하여 높은 품질의 소프트웨어를 만들고 싶어하지만, 어떤 사람들은 기술 자체나 품질은 전혀 상관없이 일자 또는 비용만이 그들의 관심사이다. 그렇다면 그것은 잘못된 것인가? 그럴 수도 있고 아닐 수도 있다. 상황에 따라 답이 다르다. 현실은 단순한 흑백논리로 설명되지는 않는다.

패배하지 않기 위해 이것만은 기억하자

사내정치에서 살아남기 위해서 개발자가 알고 있으면 유용할 세 가지 지침을 제시한다. 다음의 세가지 지침은 서로 연동된다.

1. 나의 목표와 주변의 이해관계를 파악하고 있어야 한다.
자신이 원하는 것이 돈인지 명예인지 지위인지, 아니면 개발을 통한 자아실현인지, 개인생활의 추구인지 명확히 알고 있어야 한다. 또한 나의 목표를 실현하는데 있어 가장 큰 장애물이 무엇인지 알고서 그것을 관리해야 한다. 자신의 목표와 상충되는 목표를 가진 이해관계자의 욕구를 파악하고 그것과의 타협점을 찾아야 한다.

하지만 사실, 대부분의 경우 목표를 실현하는데 있어서 가장 큰 장애물은 자기자신의 성격이다. 그렇지만 성격을 수양하는 개발자가 과연 몇 %나 될까? 아는 것과 실천은 완전히 별개의 단계이다.

2. “너와 나의 진실은 다르다”는 사실을 이해하고 있어야 한다.
자신이 믿는 것만이 정의이고 진실이라는 생각이 들 때, 숨을 세 번 크게 내쉬면서 상대편의 입장에서도 과연 그럴까 다시 한번 생각해 보기 바란다. 내가 알거나 느끼는 것을 쉽게 드러내서는 곤란하다. 대부분의 경우 그것은 설익은 판단이고 타이밍이 적절치 않은 경우가 많다. 하지만 자신의 감정을 주체하지 못하고 ‘욱’한 나머지, 준비도 안된 상태에서 회사를 그만 두어 버리고 경력을 망치는 개발자들이 많다. 퇴사 후 놀고 있는 당신을 사내정치인들은 비웃고 있다.

3. “군자에게는 실수를 해도 소인배에게는 실수를 하지 말라”는 격언을 기억하기 바란다.
이 말은 필자가 회사 생활에서 곤란을 겪는 후배들에게 숱하게 해주었던 말이다. 이 말을 처음 들었을 때의 임팩트는 상당히 크다. 군자(君子)는 점잖고 덕이 있는 사람이다. 그래서 군자는 누가 실수를 해도 그 이유를 스스로 파악하여 너그럽게 이해해준다. 하지만 소인배는 조금만 불이익을 당하거나 무시를 당했다고 느끼면 바로 삐지며, 심할 경우 끝까지 따라다니며 괴롭힌다.

그런데 사람이란 군자에게는 존경심을 갖고서 공손히 대하고 소인배는 무시한 나머지 함부로 대한다. 그것이 인지상정이다. 하지만 만일 그 소인배가 당신의 직장상사라면?

사내정치는 어느 나라에나 존재한다. 한국뿐만 아니라 미국에도 일본에도 있다. 하지만 한국에서 더욱 사내정치가 심할 수 밖에 없는 이유가 있다. 한국은 아직까지 IT업계뿐만 아니라 사회의 여러 분야에서 전문가의 개념이 불분명한 나라이다. 제대로 된 전문가가 출현하고 그 가치를 인정받는 지식사회가 되기까지 앞으로도 꽤 많은 시간이 걸릴 것이다.

한국은 아직은 선진 지식사회가 아니다. 그러므로 고급지식을 가진 사람들이 별로 없을 뿐만 아니라, 설사 있다고 하더라도 그것을 인정하지 못하며, 설사 인정한다고 할 지라도 필요로 하지 않는다. 실력을 인정하는 기준이 없으니, 사내정치가 판을 친다.

전문가를 필요로 하지 않는 사회, 자기계발이 살길
궤변으로 들릴 지 모르지만, 우리 업계에 전문가가 없는 것은 전문가를 필요로 하지 않기 때문이다. 조직 내에 사내정치인이 승진하고 인정받는 것은 조직의 상층부가 몰라서 그런 것이 아니라 그런 사람을 선호하기 때문이다.

성장은 커녕 생존을 이야기해야 하는 현실이 안타깝지만, 일단 생존해야 자기계발을 하고 경력관리를 하면서 기회를 노릴 것이 아닌가? 사내정치를 잘 할 필요는 없지만(그리고 개발자의 특성상 잘 하지도 못 할 것이다), 희생자가 되어서는 곤란하다. 이것이 바로 필자가 개발자 K씨에게 한 말이다.

개발자는 자신의 개발력과 장점을 해치지 않는 선에서, 이해관계자를 파악하고 그들의 욕구를 다루는 능력을 갖추어야 한다. 자신의 목표를 분명히 해야 하며, 감정에 치우쳐서 일을 그르치지 말아야 한다. 그러지 못한다면 결국 희생자가 될 뿐이다.

그러한 희생을 몇 번 당하다 보면, 개발업에 대한 애정이 식어버려 자기계발을 등한시하게 될 뿐만 아니라 성격까지 나빠져서 더욱 더 안 좋은 상태에 처하게 된다. 그렇게 사라져간 개발자들이 참 많다.

이런 조언을 하는 것에 대해 한편으로는 미안하게 생각한다. 언젠가 개발력만으로도 인정받을 수 있는 사회가 오면(너무 낭만적인 표현이다), 사내정치 대신 좀 더 아름다운 세상에 대해 이야기하겠지만 지금은 아니다. 정신을 똑바로 차리고 이 난세에서 생존하기 바란다. 환경을 바꿀 수 없으면 자신을 바꾸어야 하며, 자신을 진화시킨 개발자에게는 반드시 기회가 올 것이다. 세상은 장기적으로 볼 때 스스로 혁신하는 사람의 편이니까 말이다.


WRITTEN BY
가별이
내가 천사의 말 한다 해도

,