사용자 삽입 이미지


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

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

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

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


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

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

,