최근 기업체들이 응용 프로그램 개발 관리전략에 유례없이 많은 힘을 기울이고 있는데 이는 기본적으로 인터넷으로 인해 심화되고 있는 시장경쟁을 극복하기 위한 것이다. 이런 경쟁에서 살아남기 위해 기업은 효율적인 전략과 플랫폼, 툴을 선택하고 기존 시스템을 전환하는 동시에 그에 필요한 기술을 확보해야 한다.
응용 프로그램 개발 전략은 프로그램의 시장 수요에 따라 적절한 시기에 개발하는 ‘기회적(opportunistic) 개발프로젝트’와 품질·수명을 향상하기 위한 ‘체계적(systematic) 개발프로젝트’로 구분된다.
기회적 개발프로젝트의 주요 목적은 응용 프로그램의 우수한 품질이나 수명의 향상에 있는 것이 아니라 시장 수요에 따라 제품을 적기에 출시하는 데 있다. 응용 프로그램을 되도록 신속하게 출시하기 위해 개발업체는 최종 사용자의 요구사항을 체계적으로 수집하고 철저하게 분석할 필요성이나 시간적 여유가 없다. 또 필요 기술이나 툴 업체 선정에 신중을 기하지 않아도 된다. 만일 마이크로소프트이나 IBM, 오라클 등과 같은 기존 주요 기업에 원하는 기술 제품이 없을 경우에는 지체없이 신생 공급업체로부터 필요한 툴을 확보해야 한다. 응용 프로그램 개발업체는 제품의 장기적 전망보다는 6∼12개월 앞을 내다보고 제품을 개발해야 한다. 급부상하는 시장의 경우 제품의 조기 출시는 기업의 생존이 달려있는 중대한 문제다.
이와 대조적으로 체계적 개발프로젝트는 제품의 조기 출시보다는 우수한 품질과 수명 향상에 주목적이 있다. 이를 위해 응용 프로그램 개발업체는 프로그램의 개발, 작성에 필요한 시간 못지 않게 사용자 요구사항을 분석하고 응용 프로그램 모델을 디자인하는 데도 투입해야 할 것이다. 응용 프로그램 개발업체는 철저한 분석과 디자인 방법을 적용해야 한다. 따라서 개발업체는 사용하고자 하는 기술과 툴을 신중하게 검토하고 그 툴 업체가 앞으로 적어도 5년 이상 존속할 것인지를 검토해야 한다. 체계적 개발프로젝트에서 개발하는 제품은 가용성, 확장성, 관리 용이성 등이 우수해야 할 뿐 아니라 장기적으로 사용할 수 있어야 한다.
기회적 개발프로젝트에서 우수한 개발업체들이 체계적 개발프로젝트에서도 모두 다 우수한 것은 아니며 그 반대의 경우도 마찬가지다. 따라서 기회적 개발프로젝트와 체계적 개발프로젝트 업체는 구분할 필요가 있으며 이를 적절치 않게 이용하면 프로젝트가 실패할 수도 있다.
장기적인 관점에서 볼 때 기업에 있어서 기회적 개발프로젝트는 체계적 개발프로젝트보다 중요성이 약하다. 특히 전자상거래 업체와 새로운 기술 도입에 선도적 역할을 하는 기업에 있어서는 더욱 그러하다. 동일 관리체제 아래에서는 실패의 위험성이 낮으면서 비용 효율적인 프로젝트와 위험성은 높지만 혁신적인 프로젝트를 모두 효과적으로 추진할 수 없다는 사실에 주목해야 한다.
오는 2005년까지 체계적 웹 응용 프로그램의 개발 주기는 클라이언트서버 개발 주기보다 더 짧아지지 않을 것으로 보인다. 응용 프로그램 개발업체들이 3∼4개월을 주기로 해 새로운 버전을 내놓을 경우 이러한 주기를 ‘인터넷 연도’라고 부른다. 하지만 이것은 업체들의 기술 수준이 이 기간 동안에 새로운 제품을 개발할 수 있을 정도가 돼야 가능하다.
기회적 개발프로젝트를 통해 응용 프로그램을 출시하려면 기업은 그 제품의 품질과 수명의 상당 부분을 희생시켜야 한다. 이 경우 제품에는 새로운 기술을 많이 채용하지 않고 신속하게 개발하고 프로젝트는 전문업체들에 아웃소싱한다. 또 자체의 직원을 교육시키는 대신 인건비 수준이 높은 ‘권위자’를 정규직으로 채용하거나 임시 고용한다. 프로젝트에는 엄청난 자금을 투입하고 사업 분석과 디자인은 신속하고 간략하게 한다. 또 새로운 제품을 월간단위나 주간단위로 출시한다. 여기에서는 응용 프로그램의 장기적인 가치가 중요한 것이 아니고 되도록 많은 고객을 확보해 사업 1차 연도에 살아 남는 것이 더 중요하다. 단기적인 투자회수는 그리 중요하지 않으며 때로는 벤처자금을 끌어들이기도 한다. 이러한 경우에는 인터넷 연도를 적용할 수 있을 것이다.
체계적 개발프로젝트에서는 조속한 출시시기보다 응용 프로그램의 품질과 수명에 더 역점을 두어야 한다. 제품의 개발을 위한 새로운 기술의 채용에는 보통 18개월이 소요되며 프로그래머가 새로운 기술을 습득하는 데는 약 9개월이 필요하다. 사업분석은 제대로, 그리고 철저하게 한다. 소요자금은 규모있게 책정하고 효율적으로 사용한다. 개발 툴 업체는 신속한 제품 개발 능력보다는 업체의 안정성 위주로 선정한다. 따라서 체계적 개발프로젝트의 경우는 인터넷 연도가 적용되지 않는다.
오는 2005년까지 응용 프로그램 개발 업체의 80%가 툴 세트를 일괄 공급하는 주요 업체의 제품을 사용할 것으로 보인다. 응용 프로그램 개발 툴에는 마이크로소프트와 자바 제품이 주로 사용된다. 자바 응용 서버 시장의 선두주자는 IBM과 BEA며 그 뒤를 오라클과 선마이크로시스템스가 따르고 있다. 또 프로그래밍 언어부문에서는 비주얼 베이식(VB), 자바, C++/C#이 앞으로 당분간 전체시장의 80% 이상을 차지할 것으로 예상되며 현재 가장 인기 있는 프로그래밍 언어인 VB는 2005년까지 그 위치를 유지할 것으로 보인다. 또 코볼(COBOL) 이 아직 널리 사용되고 있지만 사용 개발업체가 줄어들 것으로 보이며 군소 언어인 파워빌더(PowerBuilder), 파스칼(Pascal), 스몰토크(Smalltalk), 델파이(Delphi) 등도 점유율이 더욱 감소할 것으로 보인다.
2. 웹 기능
2004년까지 응용 프로그램 개발업체의 80%가 기존 프로그램을 교체하지 않고 ‘새로운 응용 프로그램’을 수용할 수 있도록 하는 기존 시스템 확장 프로그램을 공급할 것으로 예상된다. 따라서 기업체들은 기존 응용 프로그램에 대한 웹 기능의 추가, 새로운 프로그램의 개발, 그리고 기존 프로그램과 통합할 수 있는 새로운 프로그램의 개발이 서로 균형을 이루도록 해야 한다. 기존 프로그램에 웹 기능을 추가하면 사업에 별로 큰 지장을 주지 않고 새로운 기술로 이전할 수 있다. 이는 과도기의 전술적 솔루션으로서 기존 시스템을 재편하면서 웹과 연결하고 추후 새로운 응용 프로그램에 기반한 전자상거래 체제로 전환할 수 있는 새로운 기술을 채용할 수 있게 해준다.
새로운 응용 프로그램 개발의 주목적은 전자상거래 체제로 이행하기 위한 것이다. 새로운 응용 프로그램의 1세대 제품은 기존 프로그램보다 견실성, 가용성, 확장성 등의 기능이 떨어지지만 기업체가 미래의 새로운 체제로 전환할 수 있게 해준다. 새로운 응용 프로그램의 개발은 주로 신속하게 출시하기 위한 기회적 개발 형태를 띤다. 특히 새로운 기술을 도입하는 초기 단계에 이런 현상이 두드러지게 나타난다.
응용 프로그램을 통합하면 자바나 닷넷(.net)의 혁신적인 기능과 결합해 메인프레임의 최고 수준 품질과 견실성을 모두 확보할 수 있다. 또한 인터넷 시대에 부응해 응용 프로그램의 출시 주기도 단축할 수 있다. 응용 프로그램을 통합하기 위해서는 시스템을 체계적으로 구축하고 효율적인 미들웨어 및 신뢰성이 높은 거래처리 시스템이 있어야 한다.
현재 기존 시스템을 새로운 시스템으로 전환해주고 기존 코드를 신세대 언어 코드로 전환해줄 수 있는 다양한 응용 프로그램 개발 툴이 나와 있다. 그 중 IBM의 비주얼에이지 제너레이터(VisualAge Generator)와 버서타(Versata)사의 버서타(Versata)는 자바를 사용하지 않고 자바보다 배우기 쉬운 자체언어로 프로그램을 개발할 수 있게 해준다. 하지만 이런 툴은 프로젝트의 전체 프로그램 개발에 적용할 수 없다. 가령 버서타는 VB과 같은 스크립트에서 사업 로직을 생성하게 해주지만 그래픽 사용자 인터페이스(GUI:Graphical User Interface)나 미들웨어, 데이터베이스 관리시스템 접속 등 다른 기능은 자바에서 프로그램을 짜야 한다. 비록 이러한 개발 툴이 기존 시스템의 프로그래머를 자바 프로그래머로 만들어 주지는 않는다 하더라도 기존 시스템 프로그래머를 인터넷/자바 개발 팀의 일원이 될 수 있게 해 준다. 이런 접근 방식은 응용 프로그램 개발 팀에서 사업지식 전문가들을 자바 언어보다 배우기 쉬운 언어를 배울 수 있는 프로그래머와 설정된 사업목표를 바탕으로 기능적 응용 프로그램을 만드는 자바 개발자로 구분할 수 있게 해준다. 결과적으로 코볼 프로그래머와 VB, 파워빌더 및 4세대 언어(fourth-generation language) 개발자들이 자바 래퍼(wrapper)와 코드 생성 프로그램을 사용하면 자바 프로젝트에 참여할 수 있게 된다.
코드 변환기는 단순히 하나의 언어에서 다른 언어로 전환시키는 툴이 아니라 기존 프로그램을 분석하고 구문론과 의미론적으로 번역하며 새로운 프로그램을 개발하는 일련의 처리기능이다. 이것은 또 변환된 응용 프로그램의 새로운 부분과 기존 부분을 연결시켜 주며 실험과 사용자 교육을 가능하게 할 뿐 아니라 새로운 하드웨어·소프트웨어 플랫폼에 지원 및 관리 기능이 적응될 수 있게 해준다. 그러나 코드 변환기가 모든 코드를 자동적으로 변환시키는 것은 아니다.
<자료정리=온기홍기자 khohn@etnews.co.kr><자료 : 가트너리서치>