최근 지인의 회사에 미팅차 방문한 적이 있다. 이 회사는 우리나라에서 꽤 큰 규모로 데이터센터를 운영하는데, 웹 서버에 대해서는 가상화 기술과 이를 관리하기 위한 관리 프레임워크를 구성, 효율성을 꾀하고 있다.
엔지니어가 하는 작업을 유심히 지켜보던 중, 재미있는 사항을 발견했다. 대략 2천여대의 가상 머신(VM)에 대한 반복적 업데이트 일괄 적용 작업을 스크립트를 통해 능수능란하게 하는 것이었다.
이를 자동화해 관리하는 도구가 있는 것이 가장 이상적이지만, 모든 인프라에 적정 투자를해 필요한 인프라를 운영한다는 것은 여러 이유, 특히 금전적 투자 요인으로 인해 쉽지 않은 일이다.
만약 아무런 관리 방향이 세워져 있지 않아 업데이트 작업을 하나하나씩 진행했을 경우를 상상하니, 아찔한 생각이 든다.
요즘 서버 제품군 대부분은 그래픽 유저 인터페이스(GUI) 기반을 통해 쉬운 관리와 용이한 접근성을 제공한다. 이같은 환경은 엔지니어들에게는 매력적인 요소로 꼽힌다. 특정 작업이나 비즈니스 요구 사항에 대해 마법사 기반 마우스 클릭 몇번만으로 대응할 수 있기 때문이다.
그러나 GUI 기반 환경은 동전의 양면과 같다. 뒷면을 살펴보면, 바로 대량 작업시 어려움을 유발한다. 10년전인가, 역시나 지인가 다녔던 회사 얘기다.
당시 인천에 본사가 있던 그 회사는 대전으로 이전을 했다. 이 회사는 디렉터리 서비스 기반 사용자 인증을 사용하고 있었고, 단순한 인증뿐만 아니라, 여러 사용자 정보, 예를 들어 업무용 전화번호나 개인 정보 일부까지도 디렉터리 서비스를 통해 제공되고 있었다. 대전으로 이전을 완료했다는 이야기를 전해 듣고, 안부차 들렸더니 매우 분주한 모습으로 IT팀이 작업을 하고 있었다.
뒤에서 조용히 작업을 살펴봤는데, 앞선 데이터센터 사례와 유사했던 것과 정반대의 장면이 펼쳐지고 있었다. 바로 인천 지역 번호를 대전 지역 번호로 바꾸는 작업을 하나하나 마우스를 이용해 진행하고 있었던 것이다. 당시 그 회사 직원이 대략 3천여명이었던 것으로 기억되는데, 마우스 클릭에 꽤 많은 시간이 소요되었을 것이다.
엔지니어들은 새로운 기술을 통해 인프라 가치를 올리고, 이를 사용자에게 업무 편의성 및 효율성으로 되돌려준다. 뿐만 아니라, 속칭 벌크(Bulk) 작업이라 부르는 대량 작업을 종종 진행해야 할 경우가 있다. 이 경우 스크립트(Script)는 엄청난 위력을 발휘한다. 요즘 시장에 출시되는 대부분의 제품은 관리 도구가 대부분 스크립트 쉘(Shell) 기반에서 동작하는 경우가 많다.
다시 말해, 스크립트를 통해 명령어를 내리는 영역 위에, 그래픽 기반 관리 도구를 만들어놨다는 것이다.
이는 실제 사용자가 그래픽 기반 관리 도구에서 특정 옵션을 변경한다거나, 새로운 기능을 구현하면, 스크립트 쉘 영역에서 스크립트로 변경해 실제 제품에 반영한다는 의미한다. 그래픽 기반 도구를 사용하지 않고 직접 스크립트를 적용해 작업을 진행할 수도 있다. 모든 그래픽 기반 작업은 스크립트로 대체가 가능한 것이다.
필자가 주로 활동하는 마이크로소프트 기술 영역에서만 살펴봐도, 우리나라는 다른 나라 엔지니어와 약간 다른 것 같다. 해외 컨퍼런스나 교육 행사에 가보면, 다른 나라 엔지니어의 경우에는 약간의 개발자 지식을 가지고 있는 경우가 많다. 이러한 개발자 지식은 자연스럽게 스크립트 언어 습득을 용이해 스크립트를 통한 빠른 작업이 가능하게 한다.
그렇지만, 우리나라 엔지니어는 개발자와의 교집합이 생각보다 높지 않아 보인다. 물론 이 이야기는 엔지니어가 주 업무인 경우에 해당된다. 개발자가 주 업무이고, 엔지니어를 같이 하는 경우에는 얘기가 달라질 수 있다. 물론 엔지니어 수준이 높아질수록 필드 경험이 올라가고, 대량 작업 빈도수가 많아지게 된다. 이 경우, 스크립트에 대한 활용도가 올라가는 형태로 발전되어 한다는 것이다.
엔지니어적인 시각에서 필드에서 일을 할 때의 스크립트를 생각해보면, 참 어려웠던 것으로 기억된다. 물론 폴더를 일괄적으로 생성한다거나, 사용자 속성값을 하나 바꾼다거나 하는 간단한 작업은 검색 엔진을 통해 검색한 스크립트를 통해 적용했지만, 여러 시스템이 유기적으로 연동되어 있는 작업에 대해서는 수십줄, 많게는 수백줄의 스크립트를 작성해야 하거나, 다른 사람이 만든 스크립트를 세밀하게 분석해 적용해야 했다.
2007년 소개된 마이크로소프트 파워쉘(PowerShell)과 같은 최근 스크립트 엔진들을 살펴보면, 예전 스크립트들보다 훨씬 쉽다. 시스템 프로세스를 가져와서 특정 조건에 맞는 프로세스만을 대상으로 작업하는 스크립트가 불과 한줄로 가능할 뿐만 아니라, 사용자 계정 생성과 이에 따른 메일 사서함 생성도 한, 두줄만의 명령어로 완료할 수 있다.
앞서 언급한 전화번호 변경 사례도 한줄로 가능하다. 엔지니어가 아닌 개발자의 경우에는 기존 개발 프레임워크 지식을 그대로 적용하여, 필요한 메소드(Method)나 펑션(Function)과 같은 개발 방법론을 그대로 활용할 수도 있다.
오늘 다룬 이야기는 모든 엔지니어에게 다 해당되는 이야기는 아니라고 생각한다. 이미 이러한 스크립트 작업에 능수능란한 무림의 고수는 많다. 이들의 의견에 귀 기울여 보면 이야기는 한결같다. 엔지니어가 조금 더 편한 직업, 그리고 더 많은 시간 확보, 이를 통한 인프라 가치 상승을 위해서는 효율적인 작업 진행이 필수적이다.
기존에 10시간 걸렸던 일을 10분만에, 아니면 일괄 작업을 시스템에 예약하고 진행 상황 또는 결과를 통해 확인할 수 있다면, 조금은 앞선 목표를 다가가는데 도움이 될 것이다. 2011년 새해가 밝아, 벌써 2주가 흘러가고 있다. 2011년의 작은 목표로 스크립트 공부를 한번 해보는 것은 어떨까? 더 빠르게 작업을 완료하거나, 실행해놓고 퇴근, 혹은 자기 계발을 할 수 있는 모습을 꿈꾸면서…
*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.