나는 지금 웹을 기반으로 하는 서비스를 개발하고 있다. 프로젝트의 모든 부분이 웹 어플리케이션은 아니지만 프로젝트를 실행하고 사용 하는데 있어 웹은 필수적이고 실제로 프로젝트의 많은 부분을 차지하는 하고 있다. 몇 일 전에 이런 프로젝트의 버전 업그레이드가 있었다. 웹을 기반으로 하는 서비스의 업그레이드 버전을 출시한 것이다. 웹 기반 서비스의 업그레이드 버전의 출시가 생소한 일일지도 모르지만 우리는 고객에게 변화하는 모습을 보여주고 그 효과를 극대화 하고자 빌드 버전(Build Version)을 사용하고 있고 버전을 업그레이드 하면서 지금까지 계속 제품을 출시했고 이런 대대적인 업그레이드 작업 2번에 걸쳐 현재 버전 2.5에 이르렀다. 하지만 이번 업그레이드 작업을 하는 동안 몇 가지 의문이 생겼다.
‘왜 장시간 서비스 중지를 하면서 업그레이드를 진행해야만 하는가?’ 대대적인 업그레이드 라는 것은 그만큼 바뀌는 부분이 많다는 것이다. 따라서 해야할 일도 많이 때문에 다른 점검 시간(정기 점검 등 간단한 점검 시간)과 달리 상대적으로 오랜 시간 동안 서비스를 중지해야만 한다. 하지만 고객은 서비스가 항상 온라인 상태이기를 원할 것이다. 이른 새벽부터 중요한 업무를 보기 위해 서비스에 접속했을 때 정검 페이지가 나온다면 얼마나 절망적일까? 이게 만약 웹 메일 서비스라면 상사가 보낸 메일을 제시간에 확인하지 못해 곤욕을 치를 것이고 항공권 발매 서비스라면 제시간에 비행기 티켓 발권을 못하는 일도 있을 수 있을 것이다. 마치 사막에서 힘들게 오아시스를 찾았는데 썩은 물만 고여있는 것을 본 것과 같고 뒷모습이 예쁜 분을 쫓아가 말을 걸었는데 알고보니 남자인 걸 알았을 때의 그런 심정과 같을 것이다. 사실 웹 기반 서비스는 사실 이런 고민을 할 필요가 없다. 웹은 실시간으로 업데이트가 가능하기 때문이다.
‘대대적 업그레이드를 하면 안정성이 떨어진다.’ 내가 다니는 회사에서는 제품 출시 이전에 QA(Quality Assurance) 팀의 테스트를 거치고 나서 출시하도록 되어있다. 보통 QA팀의 테스트를 마치고 나면 제품의 퀄리티(Quality)가 테스트 이전보다 훨씬 높아져 안정성을 확보할 수 있었다. 하지만 이번처럼 대대적인 개편의 경우 여러 번의 테스트를 거쳤지만 업데이트 이후 이전에 발견하지 못한 혹은 예상치 못한 작은 문제들을 발견할 수 있었다. 마치 싸인(Sign)곡선처럼 업데이트 후 겨우 안정화된 서비스를 다시 업데이트하여 안정성을 떨어뜨리는 현상이 일어나게 되는데 이건 서비스로써 매우 바람직한 현상이 아닐 것이다. 대대적인 업그레이드가 필요한 이유가 고객 홍보화 그 효과의 극대화라 한다면 잦은 업데이트 여러 번으로 기능을 이미 적용해 놓은 상태에서 혹은 기능만 가려놓은 상태에서 마케팅 전략에 따라 언제든지 필요할 때 기능 오픈과 홍보가 가능할 것이다. 이는 웹 기반 서비스 이기 때문에 가능한 장점이다.
웹 기반 서비스는 실제로 사용자에게나 개발자에게 많은 장점이 있다. 사용자는 별도의 소프트웨어 설치 없이 언제 어디서나 같은 소프트웨어를 사용할 수 있다는 장점이 있다. 개발자에게는 소프트웨어의 버그가 있을 때 또는 기능 추가가 있을 때 사용자들에게 새 버전이 나왔으니 새로 설치해달라고 애원하지 않아도 된다. 이것은 서비스의 안정성과도 연관 되어 있는데 이렇게 잦은 업데이트 및 버그 패치를 통해 어떤 종류의 데스크 탑 소프트웨어보다 퀄리티 높은 제품을 만들어 낼 수 있는 것이 바로 웹 기반 서비스라고 생각한다. 구글(Google)의 성장이 말해 주듯이 전 세계적으로 웹 기반 소프트웨어는 현재 소프트웨어 산업의 흐름을 주도하고 있다고 생각한다. 하지만 상대적으로 부족한 우리 나라의 웹 기반 서비스에 대한 안타까운 마음과 함께 우리나라에서 더 많은 웹 기반 Killer Software 서비스들이 나와줄 것을 기대하는 바이다.