밑바닥인생은 인정함. 차상위계층이고 전형적인 워킹푸어에 빚더미는 없어질 기미가 안 보이고 내 후배들한테는 나처럼 살지 말라고 항상 말하고 다니지. 근데 말이지 적어도 나는 코드 조립공 수준은 아니야. 나름 컴공석사까지 했어. 아두이노나 라즈베리파이 없던 시절에도 직접 AVR칩 사다가(ATMega128) 납땜해서 개발보드 직접 만들고 ISP통해서 직접 빌드한 OS포팅하고 그랬었고 I/O회로 설계도 직접 했었어. 전자공학이나 일렉트로닉스 전공이 아니고 소프트웨어 전공인데도 모터드라이버 회로도 만들 줄 알아. 방열판에 손 데어본 적도 있고 배터리 그까이거하다가 감전돼서 식겁한 적도 있지. 서버관리자라는 하층민 직업을 갖고 있지만 나는 실제로 리눅스 소스 코드를 직접 가져다 빌드해서 포팅도 할 줄 알고 최근에는 구글어스에서 사용하는 측량 알고리즘을 내가 직접 구현까지 했어. 구글이 코드를 공개 안하니까 내가 직접 했지. 코딩 가능한 언어도 20종 정도 돼. 일일이 열거는 안 하는데 얼랭(Erlang)과 리스프(LISP)가 거기 끼어있다는 정도는 얘기해줄게.
그건 맞아. 코딩은 프로그래머에게는 그저 언어 구사력에 불과하지. 문제 해결력은 수학적인 사고가 필요하니까. 내가 수학적 사고가 딸리기 때문에 이런 밑바닥인생인 것 같아. 아마 남들은 텐서플로우의 텐서 개념 따위는 기본으로 알고 가는가본데 나는 OpenCV의 아핀변환 알고리즘 이해하는데도 몇 주가 걸렸어.
기술적인 문제로 OpenCV의 포팅이 불가능해서 Affine transform 알고리즘을 내가 직접 구현해야 했었는데 그 때 아핀변환 알고리즘 이해하느라고 너무 힘들었지. 특히 내가 하려는 건 위성영상과 지적 폴리곤 매칭작업 즉 지리정보 폴리곤 사영(프로젝션)작업인데 알다시피 OpenCV는 이미지 처리 라이브러리야. 그래서 아핀변환의 기초 수식까지 내려가서 분석하고 재구현하느라 너무 힘들었다. 뭐 결국은 만들어냈고, 구글 알고리즘과 비교해서 6400만 킬로미터 지구 전체를 사영하는데 오차를 0.1mm이하로 억제하는 데 성공하긴 했다.
이거 하고 연봉 3000이다. 세전으로. 전 직장의 두 배를 받는 거라 나름 빚도 갚고 있고 만족한다. 9월에 잘리고 10월에 이직하는데 약간 더 받을 것 같다. 그리고 구글이 코드를 공개하진 않았지만 천만다행으로 해당 알고리즘에 대한 논문이 있었다. 그거 보고 직접 구현했다.