안녕 퇴물이다.


그냥 일하는 와중인데 썰이나 풀어보자.


요즘 이것저것 택배물건이 많이온다. 그 이유는 조만간 장기출장을 갈 예정이라

완전한 "포터블 퇴물" 을 구축해야 하기 때문이다. 구축되면 한번 썰 풀어보겠다.


오늘 거래처에서 전화를 받았다.


"퇴사장님. 저희가 다음주 월요일날 출시해야 되는게 있는데 문제해결을 못해서요.

저희 외주업체가 해결을 못하고 있는게 있는데 도움 좀 주시겠습니까~?"


오프라인 거래처인데, 사업에서 소프트웨어 담당을 맡고 있는 외주업체가 있다.

그런데 특정 문제가 한달이 지나도록 해결이 안되고 있는데 하다하다 이제 곧 출시일이 너무 가까워져 버린거다.

보통은 개발업체가 다른 업체의 기술적 도움을 받는게 약간은 자존심 문제지만

이제 출시일에 대한 책임을 져야하는 상황이 되니, 어쩔 수가 없나보다.


평소라면 그 문제 내알빠노? 하고 아 잘 모르겠다~ 하고 넘기겠지만, (C#은 잘 모르는 환경이라서 뭐..)

하필 그 거래처가 나한테 PC와 서버, 기타장비를 자주 잘 사가는 업체란 것이다.

이 업체가 잘되야 계속해서 팔아먹을 수 있다.


뭐가 문젠지 들어나 보자며 수락했고

단톡방에 거래처, 퇴물이, 외주업체 개발자 이렇게 셋이 모였다.


C# 윈폼으로 개발을 했고, 웹캠으로 비디오와 음성을 녹화해서 MP4로 만드는 기능이다.

그런데 비디오와 음성이 싱크가 안 맞는 단다.


그러면 좀 둘러볼 수 있게 프로젝트 새로 파시고, 그 문제되는 부분만 남겨서 소스를 보여 달라고 했다.

그렇게 메일이 왔는데.


윈폼으로 카메라영역을 보여주는데 그 영역을 비트맵으로 카피해서 png 파일로 일일이 저장한뒤 ffmpeg로 합치고 있었다.


퇴물인 당황하지 않았다.

창의성이 뛰어난 코드를 본 것 뿐이다.

상대를 이해하려 해본다.

다른 분야를 잘 하는 사람인데 하필 평소 안 해본 이런 쪽을 하게 된거겠지. 하고 말이다.

나도 내가 안해본 모르는 분야의 코딩을 할 땐 개병신처럼 짜기도 하니깐 말이다.


전화를 했다.

"개발자님 그렇게 파일 IO로 처리를 하시면, 루프 한사이클이 끝나는 시간이 재각각일 뿐더러, 파일IO라 실시간 속도가 안나올텐데요..."

"그래서 FPS가 균일하지 않으니, 오디오와 병합 했을 때 싱크가 안맞는 문제가 발생한듯 싶습니다."


답신이 온다.

"네 그렇게 생긴 FPS 문제가 맞습니다."


퇴물: "그럼 우선은 램디스크를 이용해서 급한데로 해결 보시고요. ffmpeg의 파이프로 바로 데이터를 던져봄이 어떠신지 제안을 했다"

개발자: "램 디스크는 예전에 써봤는데 문제가 너무 많아서 제품에 쓸 수가 없습니다"


램 디스크 같은거 보다는 뭔가 다른 심각한 문제가 내제 되어 있는 것 같은데 그냥 기분 탓이니까 좀 더 서치를 해본다.


문서를 잘 뒤져보니 Accord.Video.FFMPEG에 VideoFileWriter라는 클래스가 보인다.

위에서 언급한 파이프로 바로 집어넣는 방식으로 추정된다.

관련 예제의 오픈소스 레포를 찾고, 문서링크와 함께, 소스부분을 캡쳐해서 보냈다.


대략 이걸로 FPS가 10밖에 안나오던 상황과 싱크문제는 깔끔히 해결이 되었을 것이다.

아는 놈들은 알겠지만 저거 사실 아주 전문적인 지식이 필요했던게 아닌 그냥 단순한 이슈다.

검색 조금하면 알 수 있는 정도의..


카톡에 1이 모두 사라졌다.

그런데..

그런데...

고맙다는 말이 없다.


롤을 한판 정도는 거뜬히 할 수 있는 소중한 30분의 시간을 태워 넣는데 말이다.


뭐 괜찮다.


거래처에 나란 존재가 소개된 것도 사실,

판교 박사장이 "아 퇴물이 존나잘함 ㅇㅇ ㄹㅇ 해결사임.." 라고, 거래처 사장한테 지속적으로 입을 털어왓기 때문임.

이번 계기를 통해서 거래처 사장도 "아 퇴물이라고 진짜 잘하는 개발자 내가 아는데" 라고 소개하고 다닐꺼기 때문이다.


개발 영업은 생각보다 상대적이다.


찐프로의 세계에서는 퇴물이는 디나이 당해서 CS 하나도 못 줏어먹는 개찌발리는 수준이지만,

프로들을 만날 일이 없는 일반인의 세계에서는 플레티넘 상위레벨 정도는 존나 잘하는거다.

왜냐면 외주의 세계에서 만나는 대부분의 개발자들이 실버정도라서 그렇거든.


이제 거래처는 그 외주업체 보다 나를 더 신뢰하게 될 것이고,

내년에 캐파가 되고 탐욕이 좀 더 생긴다면 (지금도 일이 너무 많아서)...

그 쪽 업체 일감은 자연스럽게 가져올 수도 있을 듯 하다.

하지만 창의적인 레거시와 싸워야겠지, 돈이 되느냐도 문제고.


아무튼 퇴물이는 생각보다 매너도 좋음...ㅇㅇ (상대 개발자를 비난하지 않는다. <- 이거 중요함 )

위와 같은 황당하고 내 입장에선 고마운 일들로 인해

입소문도 이상하게 좋아져서 좋은 딜이 계속 들어오기 때문에

일감을 놓치는 리스크 없이 가격을 계속 높일 수 있게 되었던 부분도 있다.


그리고 퇴물이는 친절하다.


예전 회사에 다닐적, 해당 시스템 담당자가 따로 있는데 유독 나만 찾는 부서가 있었다.

왜 그러냐고 물었더니, 담당 개발자는 버그 있거나 뭐가 잘 안된다고 하면 인상을 찌푸리면서 오고

말투도 조금 그래서 무서워서 부르기 불편하다는 거다.


퇴물이는 부르면 직원이 잘못 알아서 생긴 문제엔 "그럴 수 있다." "실수할 수 있다.", "실수하게끔 UI를 잘못 짜놧네" 라고 해준다.

버그로 인한 문제에는 "아이고 번거롭게 해드렸네요"라고 사과부터 박는다.

그리고 어떻게 조치해서 앞으로는 어떻게 나아질건지에 대한 이야기를 해줘서

버그나서 짜증나서 불렀는데 도리어 신경써줘서 고맙다고 말하게 된단다.


내가 하는 말버릇 중에서도 "이참에 뭐 더 불편했거나 필요한 기능 같은거 없어요?"라고 묻는다.

물론 듣고는 안 해준다. ㅎㅎㅎ

다만, 당신을 신경쓰고 있다는 느낌을 주는 말이기에 기분은 좋게 만들어주고 떠난다.


퇴물이가 비루한 개발 실력에도 먹고 살 수 있는 진짜 기술은 사실 친절함이다.


쓰고보니 그냥 내 자랑인데,

퇴물이의 가장 중요한 노하우를 알려준 글이기도 하다.