본문 바로가기

카테고리 없음

소프트웨어 공학의 구조적 문제 해결할 혁신적인 방법

전통적인 소프트웨어 공학의 기술적구조와 아키텍쳐 문제

소프트웨어와 관련해서 지금까지 발생하고 있는 수많은 문제들은 소프트웨어 공학이 안고있는 2가지 구조적 문제에서 비롯되고 있습니다.

 

첫 번째 문제는, 하나의 프로그램 내부를 구성하는 필수적 핵심 요소지만 완전히 이질적 성격을 갖고 있는 '로직'과 '기능'을 혼합해서 함께 구현해왔다는 점 입니다.

'로직(Logic)은 어떤 일처리 방법이나 절차 혹은 특정한 사실을 담고 있는 데이터나 문서형태의 정보 또는 지식으로써 성격자체가 정적입니다.

오늘날 프로그램이란 것은 마치 그림자처럼 세상 모든 것에 대응해서 만들어야 한다는 관점에서 보면 '로직'은 그 대상이 너무 넓고 많으며 다양하다는 특성을 갖고 있습니다.

반면 '기능'은 사용자의 어떤 조작과 연관해서 컴퓨팅장치가 실제 구동되는 동작으로 태생적으로 동적특성을 갖고 있습니다. 그러나 로직과 비교해보면 기능 종류는 그다지 많지 않고 정형화된 몇가지 유형으로 한정시킬 수도 있습니다.

일반적으로 '기능'은 어떤 동작과 관련된 것임으로 코딩작업을 통해 구현하는 것이 타당하나, '로직'은 대부분 정적 형태의 데이터나 정보이기 때문에 굳이 코딩이 아니더라도 쉽게 표현하고 구현할 수 있습니다.

지금까지 프로그램은 이런 이질적 요소를 혼합해서 모두 코딩작업으로 구현해온 것이 문제라고 할 수 있습니다.

 

 

그래서 구현할 로직이 조금만 다르거나 바뀌는 경우에도 그에 상응한 코딩작업 결과물에서 로직 부분을 제외한 코드를 살펴보면, 몇가지 유형으로 나눌 수 있지만 각 유형별 코드들은 매우 유사하다는 것을 발견할 수 있습니다.

그럼에도 세상에는 프로그램으로 구현할 대상은 너무나 많고 다양해서 그만큼 많은 로직을 모두 코딩으로 구현해왔고 앞으로도 할 수 밖에 없다는 것이 지금까지 소프트웨어 공학이 안고 있는 가장 심각한 구조적 문제라고 할 수 있습니다.

 

두 번째 문제는 프로그램을 만들어 내기 위해서 사람들을 기계장치처럼 생각하고 행동하도록 가르치고 훈련시키는 기술 즉, 코딩작업에 의존해야 한다는 점입니다.

 

 

C,Java,Basic,Python 등 프로그램 언어는 전자기기를 제어하는 일에 적합하도록 고안되어 사람이 이해하기도 쉽지 않고 숙달되기는 더욱 어렵습니다.

언어에 익숙해지더라도 프로그램으로 구현할 최종 목표가 전자기기 내부에서 필요한 디지털 방식의 어떤 기능이 아니고 그 구성이나 작동원리가 완전히 다르고 매우 복잡한 인간세상의 아날로그 방식 일을 처리하는 역할이라는 것입니다.

이런 일들을 처리하는 역할을 아주 단편적인 기능과 작동방식 밑 처리 절차를 갖고 있는 기계적 알고리즘에 맞추어 구현해내야 한다는 점이 더욱 어려움을 가중시키고 있습니다.

 

소프트웨어 공학, 기근현상은 지속될 것

결국 개발자들은 매우 복합적이고 뭉뚱그려져 있는 인간세상의 일들을 아주 단편적인 기계의 기능에 맞게 일일이 분해해내서 기계가 일해하는 언어로 번역해주는 통역사와 같은 역할을 하게 됩니다.그것이 바로 코딩 작업 입니다.

 

그래서 코딩은 아무나 할 수 없는 것 입니다. 통계를 보면 100명 중에 불과1~2명만 이기술을 배워 구사할 수 있습니다. 그리고 이 일에 종사하는 전문 기술자의 생산성도 매우 낮아 전산업평균에도 훨씬 못 미친 낮은 급여를 감수하면서도 야근과 특근을 밥먹듯 반복할 수 밖에 없는 기술적 한계 상황에 직면해있습니다.

 

특히 최근 10년이래 모든 영역이 모바일화되고 4차산업혁명까지 본격화되면서 국가와 사회 전반에 거쳐 SW수요가 폭발적으로 증가하고 있습니다. 프로그램으로 만들 대상과 처리할 기능은 기하급수적으로 증가하는데, 이러한 구조적 문제와 공급자측 사유로 앞으로도 상당기간동안 SW기근 현상은 지속될 것이 확실해보입니다.

소프트웨어 공학의 구조적인 문제를 해결할 '스마트메이커'

 

이처럼 태생적으로 난해한 코딩 기술과 구조적으로 유사한 코딩 작업을 무수히 반복할 수 밖에 없는 소프트웨어 공학 아키텍쳐가 오늘날 SW산업이 직면한 모든 문제의 근원이란 것은 누구도 부정할 수 없는 사실입니다.

그럼에도 불구하고 SW산업계는 이런 사실을 외면해왔습니다.

아니 어쩌면 앞서 제기한 2가지의 문제는 고칠수 없는 운명이나 기본적 환경처럼 받아들여져 왔따.

 

하지만 스마트메이커는 이러한 코딩을 없앤 노코드 프로그램으로 치구촌 모든 곳에서 인류가 직면한 공통의 과제인 소프트웨어 공학의 이런 구조적 문제를 근본적으로 해결한 최초의 솔루션이라고 할 수 있습니다.

 

문제 해결을 위해 스마트메이커가 채택한 신기술

 

1. 프로그램의 기능과 로직을 완전히 분리한 새로운 아키텍쳐

2. 해당 경험과 지식이 풍부한 실무자가 직접 요구제기하는 도구

3. 실무자가 제기한 요구로 프로그램을 만드는 AI기반 저작엔진

4. 진정한 노코딩 기술을 실현해주는 어플리케이션 플랫폼 제공

5. 운영체제별 프로그램 실행엔진 제공으로 모든 단말기 호환가능