자료를 분석한 결과의 표현은 모델 또는 설계라고 할 수 있다. 설계 작업은 자료를 추상화하여 표현한 최고 상위 수준의 모델이다. 논리적으로는 특정 기능으로 분할되어야 하며, 독립적이어서 외부의 영향으로 인한 복잡도가 낮아야 한다. 또한 불필요한 반복이 없어야 한다. 모델은 상대방이 이해할 수 있도록 표현하는 것이 가장 중요하다. 아주 큰 자료일 경우에는 작은 규모의 기능이나 자료로 분해해서 이해하기 쉽도록 해야 한다. 자료를 분석하여 모델화하는 것은 구조화가 핵심이며, 구조화는 목록, 테이블, 계측형, 그래프형 등이 다양한 방법을 사용할 수 있다. 자료의 표현은 기본적으로 자료의 흐름에 대한 표현과 자료의 구조에 대한 표현으로 나누어 생각 할 수 있다.

날아 다니는 물체 즉 비행기에 대한 사례를 보자. 어떤 사람으로부터 사람이 하늘을 날아서 원하는 목적지로 빠르게 갈 수 있도록 해결을 해달라는 부탁을 받았다. 이것은 당연히 비행기를 만들어 달라는 요구사항이다. 물론 다른 해결 방법도 여러 가지가 있을 수 있지만 비행기를 만들어 달라는 것으로 가정해 보자. 비행기가 없던 시절이라면 참 난감한 요구사항이었을 것이다. 본 적도 없고 상상도 못했던 것을 만들어 달라는 요구사항이기 때문이다. 날아 다니는 물체를 만들기 위해서는 요구사항을 분해하여 이해할 수 있는 수준으로 세분화시키는 것이 중요하다.

날아 다니는 물체는 사람이 타야 하고, 하늘에 떠서 앞으로 가야 하는 요구사항이 숨어 있다. 그래서 3가지 요구사항으로 나누어 봤다. 각각의 요구사항에 해당하는 해결책을 만들기 위하여 한 번 더 나누어 봤다. 그림과 같이 ‘사람이 타야 한다’는 것은 조종사가 탈 자리와 손님이 타야 하는 자리로 구분하여 해결책을 만들었다. 마찬가지로 ‘하늘에 떠 있다’는 주날개와 꼬리날개로 구분하였고, ‘앞으로 간다’에 해당하는 요구사항은 엔진으로 해결책을 마련하였다.

날아 다니는 물체의 모형
날아 다니는 물체의 모형

이러한 방법으로 날아 다니는 물체의 모형을 완성하였다.
독립적이고 외부의 영향으로 인한 복잡도가 높지 않아야 한다는 의미는 각각을 독립적인 기능으로 만들어야 한다는 것이다. 외부 환경 변화에 전체가 같이 변화하지 않고 관련된 부분만 변경하면 되도록 분할하는 것이 주된 목적이다. 그렇지 않으면 약간의 변화에도 전체 기능을 다 수정해야 하는 일이 발생하여 시간과 비용을 크게 낭비하게 될 수도 있기 때문이다. 보통은 외부 영향을 최소화하기 위하여 표준을 통한 인터페이스를 사용한다.

인터페이스의 대표적인 사례는 전기 콘센트이다. 이로써 새로운 전기 제품을 사더라도 쉽게 사용할 수 있다. 하지만 전기코드와 전기콘센트가 없이 전기 밥통이 전선에 바로 연결되어 있는 경우에 전기밥통이 망가져서 쓰지 않을 경우 전기선을 끊어야 한다. 또 새로운 전기 제품을 샀을 경우 전선을 일일이 연결하여야 하기 때문에 힘들기도 하고 위험한 일이 될 수도 있다. 그러므로 전기코드와 전기콘센트는 복잡도를 줄이기 위한 표준과 인터페이스라고 할 수 있다. 전기밥통과 전기코드는 외부의 환경 변화에 대응할 수 있으면서 독립적으로 작동하는 최소의 기능이라고 할 수 있다.

채성수 chaesungsoo@iabacus.co.kr소프트웨어 개발 전문기업 ㈜ 애버커스 사업총괄 부사장. 엘지전자와 엘지씨엔에스(LG CNS)에서 다년간 컴퓨터 관련 사업을 추진한 전문가이다. 국가 공인 최고 자격인 정보관리기술사로 성균관대 및 서강대에서 컴퓨터 관련 연구를 수행했으며 소프트웨어 공학, 컴퓨터적 사고에 대해서 관심을 갖고 다양한 활동을 하고 있다.

(*이 칼럼은 Nextdaily의 편집방향과 다를 수 있습니다.)

관련기사

저작권자 © 넥스트데일리 무단전재 및 재배포 금지