H. Jun Huh

회사에서 실험 정신을 발휘할 수 있을까

회사에서 실험 정신을 발휘할 수 있을까

소프트웨어 개발자는 단순 기능을 개발하는 직군이 아닙니다. 로직 하나를 개발하는 데에도 고객 관점에서 생각하고 실험해야 하며 최대한 빠르게 고객의 만족을 이끌어내야 합니다. 사업가의 입장과 엔지니어의 입장이 동시에 작용하는 직군입니다. 적어도 그동안은 기능 하나를 단순히 빠르게 만들어 내는데 집중했다면, 앞으로는 비즈니스 관점에서 장기적으로 생각해 보아야 합니다.

그래서 실험정신이 필요합니다. 고객이 원하는 바를 정확하게 찾아내고 구현해 보기 위해서 짧은 이터레이션으로 고객의 목소리를 듣고 개발하고 데이터를 수집하고 측정해서 기능 구현의 만족도를 체크해야 합니다. 실험 정신에는 역설적으로 체계가 꼭 필요합니다.

때로는 무작정 기능 구현에 매달리기 보단 해결하려는 문제가 정말 문제 일까부터 정의해야 합니다. 좋은 질문으로부터 좋은 답이 나오는 법이니까요.

저는 최근에 회사 업무에 실험 시간을 자발적으로 도입했습니다. 오전 9시 부터 12시까지 전날에 중요한 백로그를 빠르게 쳐내고 3시간 동안 실험 기간을 설정해 두었습니다. 이 시간에는 회사가 앞으로 당면할 문제를 해결하는데 초점을 맞췄습니다. 코드의 컨벤션을 바꾼다던가, 새로운 기술을 도입한다던가, 테스트 서버를 구축한다던가. 회사의 비즈니스보다는 지금 하고 있는 비즈니스를 기술적 차원에서 강화하는데 중심을 두었습니다.

/ 영감의 원천

우연찮게 최현석 셰프가 전참시에 출연한걸 봤습니다. 런치 오픈 전, 전날 실험했던 음식을 시식하고 있었습니다. 그리고 매일 새로운 음식을 테스트해보고 있다고 말했습니다. 아이스크림에 수비드 한 노른자를 넣어 먹어보거나, 여러 재료를 넣어가며 실험하는 모습이 소프트웨어의 실험 정신과 닮아있다고 생각했습니다. 파인다이닝 업계 특성이 새로운 음식인 만큼 소프트웨어 또한 새로운 가치를 창출함에 있어 유사합니다.

실제로 뭐든지 자유롭게 실험할 수 있는 환경은 창의성을 극대화합니다. 당장 무언가 해야할 일이 아닌 재미있는 것들, 그리고 회사에 기여할 수 있는 기술을 미리 적용해 보면 경쟁사가 현재에 집중할 때 미래를 내다보고 준비할 수 있습니다.

/ 실제로 한 일

제 링크드인 포스트를 꾸준히 읽어보신 분들은 아시겠지만 저희 회사 백엔드에는 인증이 없습니다. 단순 파라미터로 member id를 받아 정보를 반환합니다. 특정 API 주소로 접근하면 hash화 된 password까지 노출됩니다. 솔직히 합류하고 나서 충격 먹었습니다. 그리고 인증이 필요하다고 대표님께 계속 말했습니다… 만, 대표님은 신경도 쓰지 않았습니다.

그래서 제 개인 실험 시간을 설정해두고 인증 프록시 구축에 몰입했습니다. 구성은 jwt 로그인과, 백엔드에 인증을 씌우는 프록시가 필요했습니다. 그렇기에 서버는 당연히 빨라야 했습니다. 처음에는 node express로 구축했는데, 메모리 탓인지 백엔드 레이턴시가 20000ms가 나왔습니다. 그 이후에 aws 배포 단계에서도 막혔고요.

그래서 rust로 갈아탔습니다. 역시나 속도는 무지하게 빨랐지만 문제는 프록시 구축을 어떻게 해야 하는지 몰랐습니다. 가능은 하겠지만 계속 문법과 컴파일 에러나 나서 “아 이거 시간 내에 못 끝내겠다” 하고 Go로 넘어갔습니다.

Go는 저희 회사가 프로덕션에도 적용한 만큼 회사 차원에서 속도나 안정성 측면에서는 검증되었습니다. Go에 프록시와 JWT 로그인을 추가했습니다. 결론은..? 평균 바로 접근하면 50ms 나오던 백엔드에서 프록시를 끼워도 90ms 정도로, node 구현체에 비해 엄청나게 빨라졌습니다. (구체적인 과정은 조만간 블로그 포스트로 공개할 계획입니다.)

당장 비즈니스 가치 창출에 혹은 기능 개발에 몰입할때는 장기적인 관점에서 생각하기 어렵습니다. 그러나 그렇게 만든 기능이 얼마나 임팩트 있을지는 아무도 모릅니다. 그렇기에 실험하고 증명하고 개선해야 합니다. 일단 생각났으니, 좋을 것 같아서 만들면 아무도 쓰지 않는 기능이 될 확률이 높습니다.

저 인증을 추가하고 나서 고객사 분들이 좋아해주셨습니다. 여러 계정을 오고 가면서 매번 로그아웃, 로그인을 반복하셨던 게 엄청난 불편함이었는데, 인증 방법을 세션에서 토큰으로 전환하고 나니 몇 가지 가능성이 생겼습니다. 이제는 환경 분리도 가능해졌고요. 더 이상 PHP 기반 코드를 작성할 이유도 사라졌습니다.

/ 포드주의

20세기 포드주의는 끝났습니다. AI 도입으로 단순 반복 코드는 더 이상 신경쓸 이유가 없어졌습니다. 저만 해도 반복된 UI를 모두 AI에게 맡기고 있습니다. 근무 시간이 절반 이상 줄어들었습니다. 남는 시간에는 회사에 필요한 기능과 기술 고객 만족을 위한 디테일에 신경 쓰고 있습니다. 이제 단순 퍼블리싱은 힘을 잃었습니다.

아직도 시간을 투자하고 인력을 갈아넣으면 회사가 성장하고 고객이 만족하며 지갑을 열거라 생각하는 경영자들이 넘쳐납니다. 그러나 고부가가치 산업으로 넘어오면서 포드주의는 완전히 힘을 잃었습니다. 고객은 빠르게 변하는 세상에 대응하고 싶어 하고 제품은 그 변화에 발맞추어 진화해야 합니다. 더 이상 빠르게 생산하고 경쟁자를 압도하는 방식으로는 대응이 불가능하죠.

결국 자유롭게 실험하고 생각하는 시간이 필요합니다. 미래를 미리 준비하고 여러 가능성을 탐구해 보는 시간이 모든 스타트업에겐 필요합니다. 중요하고 시급한 일만 처리하는 게 아닌, 중요하지만 시급하지는 않은 일 또한 시간을 쪼개 처리해야 합니다.

← 목록