한국래쇼날소프트웨어 함창만
인터넷 시대는 「소프트웨어(SW)=비즈니스」라는 등식을 성립시켰다. 인터넷 인프라를 제공하는 컴퓨터·미들웨어·통신장비 등이나 갈수록 다양해지는 인터넷 접속장비들 그리고 B2C·B2B 등의 e비즈니스 분야 어디서나 할 것 없이 SW가 핵심적인 역할을 수행하고 있기 때문이다. 따라서 양질의 SW를 개발하고 운영할 수 있는 능력의 보유 여부가 기업 경쟁력을 결정짓는 중요한 척도가 되었다.
보잉·야후·노키아·에릭슨 등 세계 유수의 기업들이 기술적인 우위를 선점하기 위해 SW 개발에 막대한 예산을 투자하고 있다. 세계적인 시장조사기관인 IDC는 올 한해 전세계 SW 개발투자 비용이 총 1조달러를 넘을 것이며 이 비용 또한 매년 기하급수적으로 증가할 것으로 예측하고 있다.
그렇다면 SW 개발의 현실은 어떤가. 이렇게 많은 예산이 투입될 SW 개발 프로젝트들은 모두 성공할 것인가. 그 대답은 스탠디시그룹에서 발행한 카오스(CHAOS) 보고서(1999)를 토대로 추정해볼 수 있다. 이 보고서에 따르면 전체 SW 개발 프로젝트의 26% 정도만이 주어진 예산과 시간 안에 품질이 보장된 제품을 개발하는 데 성공했다. 국내 사정 역시 미뤄 짐작할 만하다. 공식적으로는 성공한 것처럼 보이는 대다수 프로젝트들이 하자보수에 더 많은 비용과 시간을 잡아먹는 것이 우리의 현실이다. 전통적인 개발 방법에만 집착하면서 SW의 품질과 재사용 문제를 간과한다면 아무리 많은 투자가 이뤄진다 해도 SW 개발업계의 발전은 요원할 것이다.
그렇다면 해법은 무엇인가라는 의문에서 우리는 재사용이라는 단어를 떠올린다. 이미 개발된 시스템 중에서 우수한 부분을 다른 시스템에 재활용하고 새로 개발해야 할 부분에 가용개발 자원을 집중투입하게 되면 개발기간 단축과 품질향상이라는 두 마리 토끼를 동시에 잡을 수 있으리라는 것이다.
재사용성의 필요성을 절감했다면 그 다음은 재사용의 단위에 대해 고민하게 된다. 이런 고민에서 나오게 된 것이 최근 각광받고 있는 객체기술 기반의 컴포넌트 기술이다. 프로그램을 하나의 커다란 덩어리로 짜는 것이 아니라 언제든 새로운 제품이나 기술이 발표될 때 바꿔 끼우더라도 비즈니스에는 영향을 주지 않도록 하자는 것이 컴포넌트 기반 SW 개발의 핵심 개념이다.
표준규격에 따라 개발된 컴포넌트를 이용해서 레고 블록을 쌓듯이 프로그램을 짜게 되면 어느 한 부분의 오류가 발견되거나 특정한 블록을 다른 블록으로 교체하는 일이 발생하더라도 해당 블록 외에 다른 블록은 영향을 받지 않는다. SW 유지보수 측면의 이점은 당연한 것이겠거니와 새로운 시스템 개발에서도 특정 요소기술에 대해서는 나보다 앞선 조직에서 이미 작성해 검증된 컴포넌트를 가져와 적용함으로써 검증도 되지 않은 기술수준을 갖고 몇 달 동안의 개발을 통해 얻게 되는 결과물보다 품질 면에서 더 견고한 시스템을 빠른 시간 내에 구축할 수 있게 되는 이점이 있다.
컴포넌트 기반 개발의 제반 장점들은 앞선 우리의 고민 대부분을 해결할 수 있다. 그러나 한가지 주의할 점은 이런 레고 블록 조립식의 SW 개발에서는 확실한 설계도가 필요하다는 것이다. SW의 설계도는 건축에서처럼 SW 아키텍처로 불린다. 즉 어느 부분의 어떤 블록이 시스템 내에서 어떤 특정한 기능을 담당하는지에 대한 큰 그림에서부터 세세한 오퍼레이션에 이르기까지 한눈에 볼 수 있는 그림이 존재해야만 새로운 블록, 즉 컴포넌트를 적용할 경우에도 최단 시간에 정확히 적용할 수 있다. 이미 많은 프로젝트에서 객체나 컴포넌트 개념이 적용되고 있음에도 아직 이렇다 할 성공사례가 발표되지 않고 있는 것은 적잖은 부분이 이런 아키텍처를 고려하지 않고 나무만 보고 설계됐기 때문이다. 숲 전체를 한눈에 보여주는 그림은 어느 날 하루 아침에 그려지지 않는다. 부단한 시행착오를 거친 후에야 비로소 손에 쥘 수 있는 것이다.
만약 지금 여러분의 손에 잘 짜여진 컴포넌트들과 그 컴포넌트들이 이루는 시스템을 개괄적으로 바라볼 수 있는 한 장의 설계도가 쥐어져 있다면 여러분이 시작하는 프로젝트는 인터넷 시대에 요구되는 SW의 품질향상과 개발기간 단축, 비용절감이라는 세 마리 토끼를 잡을 준비가 된 것이다.
브랜드 뉴스룸
×


















