네트웍, 불확실성, 가설과 검증, 비전

빅파일 전송 프로그램

빅파일 전송 프로그램을 급 제작해서 작년부터 고객사에서 쓰고 있는데 신규 고객사가 생기거나 고객사의 고객이 파일 전송하다 오류가 생기면 연락이 온다. ㅠㅠ

(연락이 뜸해지면 고객사 사업이 잘안되나 걱정부터 듬 ㅠㅠ 모니터링하는 방법과 로그를 개선하였지만 업데이트를 꺼리는 고객이라 ㅋㅋ)

원인의 추정

클라이언트쪽 PC 방화벽부터 기업 방화벽, 그리고 서버쪽 타임아웃 설정 등 이슈가 엔드투엔드로 발생하는데 이게 100GB~1TB 가량 되는 파일 전송이다보니 별별 상황이 다 생긴다.
“Network is unreliable”이기 때문에 혹시 모를 경우의 수를 생각해서 신중하긴 하지만 최근에는 금요일 밤 늦게 온 전화 때문에 화를 낸 적이 있다.

한참 오류 상황을 듣고 있었는데 파일 내용이 우리가 준 툴로 자동 생성한 파일이면 전송이 실패한다는 것 ㅠㅠ
100GB 파일 전송하면서 내용을 체크해서 뭘 할수도 없고 버퍼별로 암복호화 압축 체크섬 계산(이건 필요없다고 생각하지만 테스트 용도로 넣어둔 전체 파일 체크섬의 map-reduce 버전. 고객들은 매우 중요하게 생각 ㅠㅠ) 등을 하기 때문에 파일 내용이란 건 암호화하는 순간 아무 의미도 없는 얘기.
신뢰할 수 없는 상황에서 문제를 해결할 때에는 확실한 증거 기반으로 가설을 재수립해가야 하는데 지나치게 많은 중첩된 가설로 이상한 이야기를 주말 밤에 전화로 한 거.

프로젝트 오픈하느라 바쁠텐데 이런 걸 상의 없이 테스트 하느라 하루를 통째로 날린 게 답답하고 안쓰러운 게 컸다.
이 분에게 네트웍 환경 체크를 하랬더니 집에 가서 또 해보겠다고 셀룰러에 테더링으로 전송하고 또 자신의 주장이 맞다고 연락 ㅠㅠ
다행히 http tunneling 방식으로 구현해서 앞쪽 아파치 서버에 액세스 로그가 남아있어서 408 에러코드 확인하고 고객분이 테스트하신 환경인 코워킹스페이스 FAQ 사이트 가서 대역폭 제약 관련 조항을 캡쳐해서 보내줌.
셀룰러로 100GB 보내도 대역폭 제약이 안걸릴 거라는 생각을 하면 안된다고도 첨언.

하드웨어에 얽매이지 않는 소프트웨어는 없다


이 프로젝트는 이번주까지도 계속 파일 전송이 느리다는 이슈가 계속되었는데 가능한 대역폭은 거의 다 쓰는 편이라 네트웍 담당자가 확인해야 한다고 하니까 이 분이 고객은 그냥 파일 전송이 빨라야 한다고 하신다고. (고객의 고객은 네트웍 담당자라 잘 아실 거임 제발 ㅠㅠ)
결국 네트웍 스위치에 본딩 설정이 잘못된 걸로 네트웍 담당자가 확인해서 해결 ㅋ

경우의 수, 불확실성과 가설

경우의 수가 많은 불확실한 상황에서 개연적 추론은 일반적으로 득보단 실이 많고 절대 중첩하면 안됨. 가장 빠르게 확인할 수 있는 직간접 증거를 확인한 후 다음 가설을 세워야 함.

네트웍만 경우의 수가 많고 불확실한 건 아니다. 사회적, 사업적 관점은 얼마나 더 경우의 수가 많고 불확실하며 검증안된 위태로운 가설 위로 가는 것인가.
중첩된 개연적 가설들로 허비하지 말고 빠르게 확인할 수 있는 증거들을 잘 활용해야 한다.

본질적인 가설, 비전


물론 인간의 본성과 같은 좀더 본질적인 가설은 더 긴 판단과 연결되고 이에 대한 검증은 매우 간접적일 수 있다.

개인적으로 스티브 잡스를 포함한 visionary들은 이러한 본질적 가설과 10년 이상의 방향에 대한 비전을 잘 연결했다고 생각한다.
머스크도 가설은 다르지만 그런 성향이 강하다고 생각.

댓글

이 블로그의 인기 게시물

[Java] Java G1 GC의 특성에 따른 Full GC 회피 튜닝 방법

일론 머스크의 First Principle Thinking (제1원리 기반 사고)

엄밀한 사고(Critical Thinking)란 무엇일까