전문가는 무엇이 없나
의사는 진료행위를 통해 환자의 질병을 분석하고 치료한다.
회계사의 예리한 감사보고서는 주주들의 의사결정에 핵심 자료가 된다.
IT 전문가들이 개발한 업무시스템은 사용자들의 효율성과 효과성을 극대화 시킨다. 네트웍과 PC에 문제가 생기면 Infra 전문가들의 신속한 서비스가 아니면 업무를 지속할 수 없다.
만일 전문가의 진단이나, 분석이 잘못되어 엉뚱한 조치를 한다면, 그 피해는 오롯이 사용자에게 돌아간다. 전문가는 문제분석에 실패하지 않기 위해 높은 수준의 지식과 다양한 경험을 요구 받는다.
전문가의 지식과 능력에 더해 “유연한 사고”는 문제분석의 성공여부에 결정적인 역할을 한다. 전문가의 소양에 해당하는 개방적사고는 사용자의 문제를 더 신속하고 적확하게 처리할 수 있도록 한다.
복잡한 시스템을 사용하는 고객일수록 문제가 발생하면 전문가의 결정을 100% 믿고 의지할 수밖에 없다. 만일 전문가가 유연한 사고 없이, 교과서적인 지식과 표준 메뉴얼 만을 가지고 문제를 분석한다면, 궁극적인 원인을 찾기 어려울 것이다.
개발자들은 새로운 법령을 시스템에 적용하고, 사용자 편의성을 개선하기 위해 3개월 이상 기존 시스템을 Upgrade 했다. 완벽한 시스템 오픈을 위해 개발팀과 인프라팀은 다양한 테스트와 디버깅을 수행했다. IT 전문가들의 노력에도 불구하고 시스템은 서비스 오픈한지 한시간도 안 되어 무너졌다. 서비스 가 시작되자 네트웍 스위치에 부하를 일으키며 서비스불능 상태가 된 것이다. Project manager는 재빨리 원인분석을 시작했다. 개발코드, 웹서버, DB, 보안시스템, 방화벽, 네트웍 스위치를 실패 점(Failure point)으로 list-up 하고 각각의 담당자와 벤더들에게 체크 오더를 내렸다.
Before & After 비교분석은 문제의 원인 파악을 위한 가장 빠르고 효과적인 분석법이다. 변경포인트를 찾아서 변경 이전과 이후를 비교하는 것이다.
개발자들은 자신들이 개발한 코드를 분석했다. DB벤더는 즉시 원격점검을 수행하고 의심되는 쿼리를 보고했다. 네트웍 팀은 외부에서 내부로 요청되는 패킷 수가 수용가능영역을 초과했음을 확인했다.
문제를 일으킬 수 있는 가장 유력한 용의자(?)는 WAS의 환경 설정파일이다. 20년간 Web service에서 발생했던 심각한 이슈 중 60% 이상이 WAS 환경설정 실패였기 때문이다.
하지만, WAS 전문가는 혐의 없음을 보고했다. 전년도에 이어 환경설정변경이 없었으며, 로그 분석결과도 아무런 문제가 없다는 이유에서 였다.
PM으로써 분명 의심이 들었지만, WAS 전문가의 확정적 보고를 믿을 수밖에 없었다. 서비스 사용자의 불만전화가 폭주하는 급박한 상황이었다. 용의선상의 다른 Failure point를 순차적으로 점검했다. 네트웍 Bandwidth가 지속적으로 과부하 되는 증상을 찾아냈다. 하지만 과부하는 증상이지 문제발생의 원인은 아니었다. 네트웍Bandwidth 과부하를 발생시키는 진짜 원인을 찾아내서 제거해야 했지만 시간이 없었다. 고객서비스가 멈춘 지 하루가 지난 상황에서 원인분석에 더 시간을 할애할 수 없었다. 당장 문제가 되고 있는 네트웍 Bandwidth를 기존 100mg bps에서 500mg bps로 무려 다섯배나 확장했다. 서비스 부하는 즉시 정상으로 돌아오고, 고객서비스는 가동됐다. 궁극적인 원인을 찾지 못한 상태로 표면적인 조치를 취했기 때문에, 시스템이 완벽하지는 않았다. 웹서버가 약 24시간의 빈도로 셧다운이 발생했다. 지속적으로 사람이 모니터링 하면서, 매뉴얼로 웹서버를 재시작 하는 조치로 고객 서비스를 억지로 유지시켰다. 그러는 동안에도 네트웍 과부하를 일으킨 원인을 찾기 위해 동분서주했다.
다양한 레퍼런스를 뒤지다 우연히 구글에서 WAS 환경설정 중 커넥션 상속이 릴리즈 되지 않아 메모리를 잠식하는 문제에 대한 해결책을 발견했다. 개발자는 레퍼런스를 WAS 환경파일에 적용했다. 서버가 다운되는 현상이 사라졌다. 서버 다운의 원인이 유저 커넥션이 릴리즈 되지 않고 계속 누적되면서, 사용자의 Request에 서버가 느리게 반응했다. 요청된 Request는 네트웍 노드에 쌓이고 가용량을 초과하는 현상이 발생된 것이다. 원인은 WAS의 환경설정에 커넥션 릴리즈 한계 값을 정해주지 않아 메모리를 무한대로 누적 사용하도록 설정된 것이다.
그렇다면 전문가는 왜 WAS에 혐의 없음을 선고했는가? WAS에서 제공된 Log 파일에 오류사항이 없었다는 점, 전년도 환경파일과 현재 환경파일이 변경이 없이 동일하다는 점이 WAS에 문제 없음을 결정짓게 한 근거가 되었다. WAS 환경파일이 변경되지 않은 것은 사실이지만, WAS 주변의 OS 가 최신버전으로 판 올림 되었다. 변경된 OS 와 WAS의 환경 값의 적용방식이 달라진 것이다.
만일 WAS전문가가 이 사건을 좀더 개방적인 태도로 유연한 사고를 가지고 접근했다면, 우리는 범인을 더 신속하고 정확하게 잡을 수 있지 않았을까?
전문가가 겸손한 태도로 WAS에 변경사항이 없었지만 연관된 시스템 들과의 호환성 문제가 있지는 않을까 의심했더라면 힌트를 잡을 수 있었을 것이다.
전문가가 좀더 유연한 사고로 내 지식으로는 WAS가 clear 하지만, 혹시 내가 알 지 못하는 영역에서 문제를 일으키고 있지는 않을까 생각의 폭을 넓혔더라면 Network bandwidth에 쓸데없이 비용을 쏟아 붙지 않아도 되었을 것이다.
전문가는 자의 든 타의 든 고객으로부터 수만은 질문과 문제해결을 요구 받는다. 엉터리 진단을 하고, 엉뚱한 문제해결책을 내놓고도 전문가라는 지위와 입장을 이용해 고객과 사용자에게 그 책임을 미루어도 알아채는 사람은 많지 않다.
전문가의 처방만을 믿고 의지할 수밖에 없는 사용자에게 IT 전문가라 불리는 나와 같은 사람들이
얼마나 겸손한 태도를 가지고, 얼마나 유연하게 문제를 해석하고 솔루션을 제공했을까?
시간이 없고, 바쁘다는 핑계로 사용자의 불편과 궁극적인 원인을 외면하고 그저 수박 겉핥기식의 해결책만을 제시하고 서둘러 돌아서지는 않았는지 스스로 반성한다.