‘소프트웨어(SW)에 공학을 입힌다.’
보다 빨리, 보다 효과적으로, 보다 좋은 품질의 소프트웨어를 만들기 위해서는 SW 개발에도 공학을 적용해야 한다는 목소리가 힘을 얻고 있다.
자동차를 만들 때 여러 부품을 공학에 따라 조합하듯 SW도 프로세스를 체계화해 개발하도록 하자는 것 얘기다. 이러한 목소리는 국내 SW 수준을 한단계 높이기 위해서는 주먹구구식으로 개발하는 방식을 지양해야 한다는 반성에서부터 출발하고 있다.
국내 기업들도 국내 현실에 맞는 SW 공학을 적용해야 한다는 주장이 나옴에 따라 정부와 관련 기관은 SW 공학기술 보급에 따른 지원책을 마련 중이다.
◇SW 공학이란=SW 공학이란, SW를 어떻게 개발할 것이냐를 체계화한 방법론을 뜻한다. SW 개발에는 수십 수백명의 개발자들이 참여하기 때문에 개발 목표 설정에서부터 어떻게 커뮤니케이션을 해야 하는 지 등을 체계화해 적용한다면 보다 빨리 개발할 수 있다.
SW는 종류가 많기 때문에 일괄적으로 하나의 방법론을 적용하기는 힘들지만, 개발에 들어가기 전에 무엇부터 해야 하고 테스트는 어떻게 해야 하는지와 같은 프로세스를 나누는 것은 분류할 수 있다.
SW 공학의 개념은 미국에서 40년 전 컴퓨터가 발전과 함께 등장했으며, 여러 사람이 함께 개발하면서 나타나는 문제점을 파악하고 조기에 대응하는 데 큰 역할을 하며 발전해 왔다.
미국은 SW 공학만을 전문적으로 연구하는 국가 연구기관도 있을 만큼 SW 공학에 대한 연구도 활발히 진행중이다. 그러나 미국의 SW 공학은 미국 기업들 특성에 맞춰졌기 때문, 국내 현실에 맞는 SW 공학이 별도로 필요하다는 인식이 확산되고 있다.
◇왜 필요한가=SW를 개인이 개발할 때에는 공학을 적용할 필요가 없지만, SW가 복잡해지면서 하나의 SW를 개발하는 데 보다 많은 사람들의 협력이 필요해진 상황이다.
이들 사이에 커뮤니케이션을 어떻게 할 것이며, 관리는 어떻게 해야 하는지가 모두 공학의 영역이다. 공학 접목을 통해 개인의 능력에 지나치게 의존적인 국내 SW 개발 방식을 바꿔 보자는 것이 의도다.
그동안 국내 SW 기업들의 개발방식은 분석-설계-개발-테스트 업무가 분리되지 않기 때문에 개발을 주도하는 한 사람에 대한 의존도가 지나치게 컸으며, 이로 인해 개발을 담당했던 사람을 대체할 사람을 찾기 힘들고 개발 제품을 재활용하기도 힘들다는 문제점이 있었다.
공학을 적용하면 SW를 부품처럼 모듈화할 수 있을 것으로 보인다.
한국소프트웨어진흥원의 이상은 단장은 “SW 인력양성은 개인의 문제지만, SW 공학은 조직의 문제”라며 “국내 기업들이 SW 공학을 적용하는 수준은 상당히 낮은 것으로 파악되고 있어 SW공학기술 보급이 필요한 실정”이라고 말했다.
◇정책 지원은 어떻게=정부는 SW 기업 개발 프로세스를 한단계 향상시키기 위해 SW 공학기술 보급과 프로세스 평가 모델 보급을 주요 사업으로 삼고 있다.
이에 대한 예산도 53억원 가량을 배정했다. 이 예산은 SW 공학에 대한 인지도를 높이고 기업들이 공학에 따라 SW를 개발할 수 있도록 트레이닝하는 데 쓰일 예정이다. 우선, 선도 과제를 통해 SW 공학을 접목하는 사례들을 발굴하고 SW 개발인력이 R&D 로드맵을 공유해 SW 개발을 모듈화할 수 있도록 유도할 계획이다.
정통부 관계자는 “SW 공학 기술을 보급할 뿐 아니라 기업들이 자신에게 가장 잘 맞는 방법론은 무엇인지를 찾아 이를 체득하도록 하는 데 중점을 둘 것”이라며 “한국형 프로세스 평가모델인 K모델 보급과 함께 기업의 개발 프로세스를 한단계 올리는 역할을 할 것”이라고 말했다.
문보경기자@전자신문, okmun@
관련 통계자료 다운로드 SW공학 개념도