어떤 프로그램을 하나 만들었다고 했을 때 그 프로그램이 모든 상황을 다 만족시키지는 못한다. 프로그램이라는 것은 사람의 업무를 돕기 위해서 존재하기 때문에 그 사람이 어떤 업무 혹은 환경에서 일을 하느냐에 따라서 그 사람이 원하는 기능들이 다들 틀려지기 때문이다.
따라서 프로그램은 그 사용자의 특성 및 업무적 환경을 고려해서 별도의 Customization을 위한 기능들을 제공해야 한다. 우리 시스템도 이런 별도의 확장성을 고려한 인터페이스를 제공하고 있고, 이 방식을 가지고 현재까지 거의 40개 이상의 시스템에 적용하는 작업을 진행해왔다.
현재 우리가 제공하는 확장 방식은 Java나 C++ API 형식의 확장 방안을 가지고 작업을 할 수 있도록 지원하는데 무척이나 Hard한 방식이라고 할 수 있다. 그래서 어떤 특정 기능 하나를 추가적으로 지원한다고 하더라도 이걸 지원하기 위해서 많은 시간을 허비해야 한다. 시간을 허비해야 하는 이유는 크게 다음과 같은데:
1. 프로그램을 Coding하고 Build하는데 어렵다.
일반적인 사람이 할 수 있는 수준이 아니라 C++ 혹은 Java를 이해할 수 있는 사람이 있어야 하고, 우리 API 구조를 이해할 수 있는 정도의 초보적인 OOP 개념을 알고 있어야 한다.
2. 디버깅이 어렵다.
실제 데이터가 있다고 했을 때 이에 대한 데이터를 Sampling해서 작업을 하는데 예외적인 Case들에 대해서 개별적인 처리를 하기 때문에 간혹 누락이 발생되는 건들을 처음부터 고려하기 힘들다.
이런 이유말고도 다양한 이유가 있을 수 있지만, 결국에는 확장은 가능하되 그 확장이 좀 더 쉬운 형태로 가능해야 해야 한다. 쉬워야 하는 이유는 앞서 언급한 기술적인 이유 이외에 영업이나 향후 판매적인 측면에서도 더욱 더 절실하다.
현재 u-Manager를 판매하기 위해서는 항상 시스템을 알고 있는 사람이 필요하다. 왜냐하면 우리 시스템은 SMS(Service Management System)이고, 그러다보니 서비스에 관련된 정보를 수집하고 이에 대한 상태 및 통계 정보를 시스템을 관리하는 사용자들에게 제공해야하기 때문이다.
Configurable System은 이와 같이 하나의 시스템에 우리 제품이 적용되는 경우에 실제 개발자의 개입없이도 설치 담당자가 시스템에 대한 상태 및 수집 가능한 정보를 파악하여 이에 대한 설정만으로도 서비스에 대한 상태를 감시할 수 있도록 지원한다.
u-Manager의 Configuration 구조는 클라이언트, 서버, 에이전트에 대한 설정 파일을 정의하고, 이들을 감시 대상 장비에 배포함으로써 서비스 시스템에 대한 감시가 가능하도록 지원한다. 배포를 하기 위해서는 우선 이들에 대한 고객의 요청 사항을 명확하게 파악할 필요성이 있으며, 이에 대한 고객과의 Consensus를 맞추기 위해서 몇가지 문서적인 측면으로 접근하여 이를 해소할 수 있다.
이때 작성되어야 하는 문서는 아래와 같다.
1. 프로젝트 실행 계획서
서비스 감시에 관련된 사항들을 기술하고, 이때 서비스 시스템의 감시를 위해 필요한 사항들과 제품을 공급하고 추가적인 감시를 위한 사항들을 추가적으로 개발해야 하는 우리의 의무와 실제 이 시스템을 가동시키기 위해서 고객(사)가 수행해야 할 의무에 대해 기술한다.
2. 로그 파일 포맷 정의서
우리 시스템은 기본적으로 서비스 시스템으로부터 서비스에 대한 상태를 파악하기 위해서 로그 파일에 기록된 데이터를 수집한다. 따라서 이 포맷은 이미 고객의 시스템에서 기록되고 있는 로그를 파악하거나 아니면 추가적인 로그의 생성이 필요한 경우에 고객사에게 통보하여 이에 준하는 데이터를 생성하도록 요청하는 방식이다.
3. 메시지 정의서
프로젝트 실행 계획서를 참조로 해서 실제로 만들어져야 할 내부적인 메시지들에 대한 사항을 기술합니다. (이 부분은 엔지니어가 개입될 필요성이 있는 부분으로 구체적으로는 이 단계까지는 진행하지 않는게 좋다.)
별도의 메시지 정의서가 필요한 경우에는 실행 계획서과 수집할 정보에 대한 개요를 개발 팀에 요청하면 이는 별도로 개발이 이루어진다. 물론 이런 경우에는 Cost가 상당히 수반되므로 양지해야 한다.
이와 같은 정책이 수립된다면 향후 본 제품의 가격이 상당히 다운될 수 있으며, 이를 통해서 고객은 낮은 가격에 시스템적인 측면, 서비스적인 측면에 대한 효과적인 감시 체계를 구축할 수 있다.