[기고] 노코딩 체제를 실현하려면, 무엇부터 고쳐야 하나?

전문가 칼럼입력 :2021/11/22 10:08

김수랑 소프트파워 대표
김수랑 소프트파워 대표

프로그램을 개발할 때, 인류가 지난 60여 년간 사용해왔고, 발전시켜온 기술이 코딩이라고 할 수 있다.

그러나 이 기술은 다음과 같이 2가지의 구조적 문제를 앉고 있었다. 그래서 배우기도 어렵고, 충분히 숙련된 사람들의 생산성도 낮은 수준에 머무를 유지할 수 밖에 없었던 것이다.

따라서 진정한 의미에서 실용적인 노코드플랫폼 체제와 노코딩 기술을 실현하기 위해서는, 지금까지 코딩 체제의 문제를 근본적으로 해결한 기술구조(Architecture)를 개발해내야 가능하게 된다.


■ [첫번째 과제]


지금까지 만들어진 앱 프로그램의 내부 구성을 살펴보면, 완전히 이질적인 성격을 갖고 있는 '로직(Logic)'과 '기능'을 혼합해서 함께 구현해온 것을 발견할 수 있다.

'로직'은 어떤 일의 처리 방법 및 절차나, 특정 사실(지식 및 노하우)을 담고 있는 데이터 혹은 프로세스를 담고 있는 문서(Form)로서, 그 성격 자체가 정적이다.

오늘날 앱 프로그램은 세상 모든 것과 관련해서 만들어지고 또 사용되고 있기 때문에, 로직은 담아내야 할 대상이 너무 넓고 많으며 다양하다는 특성을 갖고 있다. 마치 세상 모든 것에 각기 다른 그림자와 같이 헤아리기 어려울 만큼 다양하다.

반면에 '기능(Function)'은 사용자의 어떤 조작과 연관해서 컴퓨팅 장치가 실제 구동되는 동작으로써, 태생적으로 동적 특성을 갖고 있다. 그러나 로직과 비교해보면, 기능 종류는 상대적으로 많지 않고, 몇 가지 유형으로 정형화도 가능하다고 할 수도 있다.

프로그래밍의 구조적 문제(이미지=소프트파워)

일반적으로 기능은 어떤 동작과 관련된 것임으로 코딩작업을 통해서 구현하는 것이 타당하나, 로직은 대부분 정적 데이터 형태이기 때문에 굳이 코딩 방식을 통하지 않더라도 쉽게 표현하고 구현하는 것도 가능하다.

지금까지 프로그래밍 작업은, 이질적인 2가지 요소를 혼합해서, 모두 코딩으로 구현해온 것이 문제라고 할 수 있다. 구현할 로직이 조금만 다르거나 바뀌는 경우에도, 그에 상응한 코딩작업을 무수히 반복해서 할 수밖에 없었던 것이다.

지금까지 만들어진 앱 프로그램 모듈에서, 로직 부분을 제외한 기능 부분에 해당한 코드를 살펴보면, 몇 가지 유형으로 나눌 수 있다. 그리고 각 유형별로 코드들이 매우 유사하다는 것도 발견할 수 있다.

분리된 지식과 기능(이미지=소프트파워)

그럼에도 세상에는 프로그램으로 구현할 대상(로직)은 너무나 많고 다양해서, 그만큼 많은 로직에 상응하는 기능들을, 매번 새롭게 코딩하는 방식으로 구현해왔다고 할 수 있다.

따라서 지금까지 SW공학이 안고 있는 가장 심각한 구조적인 문제를, 어떻게 체계적이고 과학적으로 해결하느냐 여부가, 노코딩 기술의 성패와 실용성을 좌우하게 되는 것이다.


■[두번째 과제]


지금까지 SW공학 체계에서는, 앱 프로그램을 만들어 내기 위해서 사람들을 기계장치처럼 생각하고 행동하도록 가르치고 훈련시키는 기술, 즉 코딩작업에 의존해야 한다는 점이다.

C, 자바, 베이직, 파이썬 등 프로그램 언어는 전자기기를 제어하는 일에 적합하도록 고안되어, 일반 사람의 이성으로는 이해도 쉽지 않고 숙달되기는 더욱 어렵다.

비록 특정 언어에 익숙해져도, 프로그램으로 구현할 최종 목표가, 전자기기에서 동작될 디지털체계 내의 어떤 기능이 아니고, 인간세상에서 아날로그 방식으로 처리되는 일과 관련된 기능이나 동작이다.

코딩은 인간을 기계처럼 생각하고 행동하도록 교육·훈련시키는 과정(이미지=소프트파워)

이런 일 처리기능은 그 구성이나 작동원리가 완전히 다르고, 매우 복잡하며, 애매한 경우도 많은데, 아주 단편적인 전자기기의 기능과 작동 처리절차를 따르고 있는 기계적인 알고리즘에 맞추어서 구현해내야 한다는 점이, 더욱 어려움을 가중시키고 있다.

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

그것이 곧 프로그램 코딩작업이라 할 수 있다. 그래서 코딩작업은 아무나 할 수 없었다. 통계에 의하면, 보통사람 100명 중에, 불과 1~2명만 이 기술을 배우거나 구사할 수 있다고 한다.

그리고 이 일에 종사하는 전문기술자들의 생산성도 매우 낮아서, 전산업평균에도 휠씬 못 미치는 낮은 급여를 감수하면서도, 야근과 특근을 반복할 수밖에 없는 한계 상황에 직면해 있던 이유도 이런 기술적 구조에서 비롯된 문제라고 할 수 있다.

관련기사

기계와 사람을 연결하는 프로그래머(이미지=소프트파워)

따라서 지금까지 SW기술계에서 금과옥조로 여겨온 ‘코드’라는 개념과 ‘코딩’이라는 작업을 완전히 배제하지 않고서는, 누구나 쉽게 배우고, 빠르게 숙련되며, 실무 적용할 경우 높은 생산성을 내는, 진정한 의미에서 노코딩 기술을 실현하는 것은 쉽지 않을 것이다.

결국 프로그래밍 작업으로 구현해낼 목적에 해당하는 인간세상에서 처리할 일의 내용과, 그것을 구현하는 수단에 해당하는 도구(프로그램 언어 등)가 완전히 이질적인 개념 및 체계와 구조를 갖고 있는데, 이상의 2가지 요소를 어떤 방식으로 동일한 개념과 체계로 만들어 낼 수 있느냐 여부가, 노코딩 기술의 성패를 좌우할 또다른 핵심요소가 되고 있다.

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.