앱 프로그램을 개발해야 하는 사람의 입장에서, 노코드 체제를 제대로 실현할 수 있다면, 너무나 좋을 것이다.
코딩 기술을 학습하지 않은 일반인도 직접 앱을 만들고, 전문기술자라면 더욱 쉽고 빠르고 경제적으로 앱 만드는 것이 가능해지고, 이렇게 발생한 시간과 비용을 기능과 품질에 투자해서, 아주 좋은 애플리케이션 제품을 만들 수 있게 될 것이기 때문이다.
그러나 실제 프로그램 코딩 업무에 조금만 경력이 있는 사람이라면, 노코딩으로 C, 자바와 같이 적용 대상에도 제한이 없고, 구현할 UI/UX에 자유도가 높은 노코드 플랫폼이나 노코드 기술은, 사실상 불가능하다고 생각하는 사람도 적지 않을 것이다.
그리고 정작 노코드 기술을 표방하는 솔루션도 아직 극소수다. MS, 오라클, 아마존, 구글, 등 글로벌 벤더들이 최근 집중하고 있는 솔루션도, 자세히 살펴보면 노코드보다는 로우코드(Low-Code) 솔루션이 대부분이다.
이는 코딩기술 연장의 제품으로, 노코드 기술과는 목적이나 효과 등의 측면에서 전혀 차원이 다른 것이라고 할 수 있다.
뿐만 아니라 노코드를 표방하는 솔루션 제품도, 엑셀과 유사한 그리드 형태 도구나, 출력물에 특화된 도구, 특정 처리기능을 자동화하는 RPA형 도구 형태를 띄고 있는 경우가 대부분이다.
이들 도구나 기술은, 그 나름대로 사용효과와 장점이 적지 많지만, 실제로 적용 가능한 대상이나 용도, 그리고 구현한 가능한 기능이 매우 제한되어 있어, 전통적인 프로그램 랭귀지나 개발도구의 역할을 대신하는 것은 역부족이라고 할 수 있다.
■ 구현대상과 구현도구 개념 일치시키는 것이 핵심 전략
C, 자바 등 전통 프로그램 개발도구의 내부는 비트, 바이트, 테이블, 함수, 클래스 등과 같은 개념들이나 구성 요소들로 채워져 있다.
이런 개념과 요소 모두는 태생적으로, 우리가 구현해낼 프로그램의 최종 기능이나 구성과도 완전히 동떨어져 있고, 그 앱이 실제로 사용되는 현장의 업무나 절차 와도 완전하게 다른 체계를 갖고 있다.
그래서 배우기도 어렵고, 숙련되는 것은 더욱 어려웠던, 가장 치명적인 문제라고 할 수 있다.
따라서 진정한 의미에서 실용적인 노코드플랫폼과 노코딩 기술을 실현하려고 하면, 우선 감당해내지 않으면 안될 과제가, 최종으로 ‘구현할 대상’과 그것을 ‘구현해낼 도구’의 구성요소와 개념 및 용어, 그리고 동작하는 방식을 일치시키는, 기획 및 설계 능력이 필요하다고 할 수 있다.
노코딩 기술의 이러한 본질적 특성을 제대로 파악하지못한 상태에서, 그동안 개발해 놓은 지적자산(소스코드, 아키텍처 등)을 재사용하는 것에 중점을 두고, 예전부터 익숙한 구조와 방식으로 만들어진 노코드플랫폼은 많은 한계점을 드러낼 수 밖에 없게 된다.
이런 접근 방식을 채택한 솔루션 제품은 아무리 노력을 해도 프로그램 언어처럼 구현기능이나 구현대상 그리고 UI/UX표현 방식 등에서 자유도가 높을 수가 없고, 사용하는 고객들을 만족시킬 수도 없게 되는 것이다.
■ C, 자바처럼 자유도 높은, 노코드 기술의 구현 전략
C, 자바, 파이썬 등 프로그래밍 언어는 CPU, RAM 등 하드웨어 장치나, 통신장치, 운영체제 등과 같은 IT 인프라를 연구하고, 이들이 제공하는 기능 및 서비스를 호출해서 활용하는 방법을 집중적으로 연구해왔다고 할 수 있다.
이런 방식의 연구는 기존 코딩기반 개발자의 작업능률을 개선해주는 로우코드 솔루션을 만들어 내는 데는 어느 정도 도움이 될 것이다.
그러나 일반인도 사용 가능한 자유도 높은 노코드 기술을 개발하는 것은 사실상 불가능하다고 할 수 있다.
그렇다면, 전통 프로그래밍 언어처럼, 그 구현 대상과 구현 기능에 제약 없는 노코딩 기술을, 어떻게 해야 실현할 수 있을까?
노코드 기술은, 지금까지 SW개발도구를 연구하던 방식과는 정반대로, 최종으로 만들어질 앱 프로그램의 구성과 특성 등을 전문적으로 연구하고, 체계화하는 전략으로 방향을 바꾸어야 비로소 가능하게 된다.
앱 프로그램 자체를 체계적 연구해야 할 필요성은, 예전에는 미처 착안해내지 못했거나, 실제로 연구를 해보기도 전에, 앱 프로그램은 그 용도나 기능이 너무 다양해서 개발할 때마다 UI/UX나 기능이 달라질 수 밖에 없으며, 구성도 매우 복잡해서 체계화하는 것 자체가 불가능하다고 여겨왔다.
그래서 하드웨어, 운영체제 등 IT인프라가 제공하는 기능이나 서비스를 호출 및 활용하는 방식을 체계화하는 전통프로그램 랭귀지를 만들어 왔다고 할 수 있다.
물론 앱 프로그램의 최종 제품들의 구성이나 용도를 살펴보면, 너무 다양하고 경우의 수가 많은
것도 사실이다. 그러나 접근방식을 조금 바꾸어, 각 프로그램 모듈 내부를 구성하는 단위 기능들을 살펴보면, 모듈마다 사용되고 있는 기능들이 유사하고, 종류도 그다지 많지 않으며, 일정한 체계를 갖고 있다는 것을, 어렵지 않게 발견할 수 있다.
실제로 이런 시각으로 주문배달, 쇼핑몰, SNS게시판, 고객관리, 구매관리, 생산관리, 영업관리 등 단위시스템은 물론, 대기업 및 공공기관에서 운영하는 ERP, CRM, SCM, 그룹웨어 등 전사적 통합시스템까지, 최종 완제품 앱 프로그램 모듈들을 분석해보면, 불과 50~60가지 정도의 단위기능으로 구성되어 있는 것을, 관찰할 수 있다.
■ C, 자바 대신할 노코드플랫폼과 노코딩 기술 실현
사람들이 실제로 사용하고 있는 앱 프로그램 완제품 모듈을 분석하는, 이와 같은 방법을 통해, 앱을 만드는데 필요한 공용 부품을 모두 추출해낼 수 있을 것이다.
그리고 이들 부품 하나 하나가 사용되는 상황과 작동하는 방식도 조사 및 연구하면, 어떤 경우에도 사용 가능한 범용 부품 모델로 설계해낼 수도 있게 될 것이다.
이런 과정과 절차를 거쳐 만든 범용 부품들을 통합하면, 하나의 플랫폼을 만들기 위한 기본 틀을 마련했다고 할 수 있다. 그리고 이 범용 부품들을 활용해서, 어떤 하나의 업무(일)를 처리내기 위해서, 이들을 작동시키는 순서와 동작 방식을 담고 있는 시나리오가 있다고 가정해보자.
만일 이런 시나리오를 해석해서, 그 내용대로 각 부품을 동작시키는 실행엔진을 만들어서, 앞서 만든 기본틀 속에 넣을 수 있다면, 그 자체가 어플리케이션 프로그램을 운영할 수 있는 노코드플랫폼이라고 할 수 있을 것이다.
관련기사
- "머신러닝도 노코드" AWS, AI 개발 대중화 노린다2021.12.03
- "메타버스, 내년 공공·민간에서 대활약"2021.12.01
- [기고] 노코딩 체제를 실현하려면, 무엇부터 고쳐야 하나?2021.11.22
- "IT인력 부족, 전 세계적 현상...누구나 개발자 돼야"2021.11.17
앞서 언급한 것처럼 어떤 업무(일)을 처리하는 시나리오를 작성하는 도구가, 앱프로그램 제작도구가 될 것이다.
이미 프로그램을 구동하는데 필요한 모든 기능들은 범용 부품 형태로 사전에 제공하고 있다. 때문에, 각 공용부품의 역할을 직관적으로 인식할 수 있는 아이콘 형태로 표현하고, 제작도구를 마치 파워포인트와 유사한 수준의 GUI방식으로 구성할 수 있다면, 코딩기술이나 컴퓨팅 알고리즘 분야에 문외한인 일반인들 누구라도 사용할 수 있는 노코드플랫폼과 함께 노코딩 기술을 실현할 수 있지 않을까?
*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.