로우코드‧노코드 기술, 만성적 개발자 부족의 해결사

[아이티데일리] 오늘날 개발자 부족은 더 이상 IT 산업계만의 문제가 아니다. 대다수 기업들은 최신 IT 기술을 활용해 디지털 트랜스포메이션을 추진하고 싶어 하지만, 이를 지원할 수 있는 개발자들이 태부족해 어려움을 겪고 있다. 이러한 상황에 최소한의 개발자로도 방대한 IT 개발 수요를 감당할 수 있는 로우코드‧노코드 기술이 주목을 받고 있다. 최근 국내에서도 로우코드‧노코드 기술에 대한 요구가 속속 등장하고 있어, 산업계의 성장이 조속히 요구되는 상황이다.


SW 개발 자동화의 역사

물론 IT 업계의 긴 역사에서 SW 개발을 쉽고 편하게 하려는 시도가 없었던 것은 아니다. 이미 1980년대에 컴퓨터의 도움으로 SW 개발을 자동화해보자는 CASE(Computer Aided Software Engineering)라는 개념이 등장했다. CASE는 사용자가 개발 요구사항을 입력하면 사전에 작성해놓은 코드 뭉치들로 변환되도록 하는 개발방법론이자, 이를 구체적으로 구현하는 도구(CASE Tool)들을 통칭한다. 사전에 효과적인 코드 뭉치들을 많이 준비해놓고, 전체 과정을 제대로 설계하고 요구사항을 정확하게 입력하면 손쉽게 원하는 SW를 얻을 수 있다.

또한 컴포넌트 기반 개발(Component Based Development, 이하 CBD) 방법론도 있다. CBD는 특정 기능들을 수행하는 컴포넌트들을 다수 만들어놓고, 이것들을 블록처럼 잘 조립해 원하는 SW를 개발하는 방법이다. 각 컴포넌트들은 각자의 기능들을 독립적으로 실행할 수 있기 때문에, 사용자가 조립만 잘 하면 복잡한 SW도 문제없이 개발할 수 있다. 실제로 SW 개발 과정에서 컴포넌트를 활용해 일부 개발 과정을 간소화하려는 시도는 지금도 쉽게 찾아볼 수 있다.

CASE나 CBD와 같은 개발방법론들은 요구사항만 제대로 입력하면 복잡한 코드 작성은 컴퓨터가 대신해준다는 점에서 오늘날의 LCNC와 큰 차이는 없어 보인다. 하지만 산업계에서 바라보는 시선은 사뭇 다르다. 그동안 제시됐던 SW 개발 자동화 방법론이나 도구들은 필요에 따라 제한적으로만 사용됐을 뿐, SW 개발 과정에 혁신적인 변화를 가져올 정도는 아니었다. 그에 반해 오늘날 많은 글로벌 기업들과 전문가들은 LCNC에 막대한 기대를 걸고 있다.


개발 생산성 극대화하는 LCNC

여기에는 크게 두 가지 이유가 있다. 첫 번째 이유는 그동안의 SW 개발 자동화 방법론들이 아직 충분한 기술 수준을 갖추지 못했다는 점이다. 간단한 SW에는 유용한 방법일 수 있지만, 기업의 핵심 시스템들을 설계하고 개발할 때 통용되는 수준에는 미치지 못했다는 얘기다.

가령 CASE 개발도구들은 사용자의 업무 프로세스를 잘 분석해 원하는 요구사항들을 구체적으로 입력하면 컴퓨터가 그에 맞는 코드를 생성해주는 방식이다. 하지만 개발도구가 불러온 코드 뭉치들이 해당 시스템에 100% 알맞게 만들어져있으리라는 보장이 없다. 결국 컴퓨터가 코드를 생성해줘도 개발자가 직접 수정하고 최적화하는 과정이 필요하다. 하지만 직접 짠 코드가 아니다보니 이를 이해하고 분석해 역설계(reverse engineering)하는 것이 쉽지 않다. 코드를 수정하게 되면 본래 공통된 CASE 도구를 공유하는 개발자들끼리 얻을 수 있었을 개발 표준화 수준도 떨어진다. 이러한 문제는 해당 코드에 대해 대규모 수정이 필요할 경우에 더 심각해지는데, 이러면 차라리 처음부터 직접 코딩을 하는 게 더 낫다는 생각에 이르게 된다.

CBD 방법론의 근간을 이루는 컴포넌트 기술 역시 과거에는 충분한 완성도를 갖추고 있지 않았다. 과거의 컴포넌트들은 하나하나가 가지고 있는 기능이 너무 간단하고 단편적이어서 개발 생산성을 획기적으로 향상시켜주지 못했다. 예를 들어 과거의 그리드 컴포넌트는 DB에서 데이터를 가지고 와서 그리드 상에 배열해주는 단편적인 기능만을 수행했고, 그 외의 기능을 원한다면 개발자가 직접 코딩을 해야 했다. 하지만 최근에는 그리드 컴포넌트가 데이터를 배열하는 과정에서 종류를 구분하고 일정한 서식을 부여하거나 필터를 입히는 등 다양한 기능들을 수행할 수 있게 됐다. 당연히 개발자가 개입해야 하는 부분이 크게 줄어들었기 때문에, 얻을 수 있는 효과 역시 이전에 비할 바가 아니다.

두 번째 이유는 SW 개발을 간소화하고 자동화하려는 요구가 늘어났다는 점이다. SW 개발을 자동화하면 당연히 개발 생산성이 크게 증가한다. 생산성 향상은 과거에도 충분히 메리트가 있었다. 하지만 심각한 IT 인력난에 직면해 있는 현재만큼은 아니었다. 개발 생산성 향상이라는 장점이 과거에는 ‘있으면 좋은 것’이었지만, 지금은 ‘반드시 있어야 하는 것’으로 바뀌었기 때문이다.

우리는 간단하게 즐길 수 있는 레토르트 식품에서 수십만 원 상당의 고급 레스토랑 음식과 같은 맛을 기대하지는 않는다. 일선에서 LCNC 기술을 적극적으로 도입하려는 기업들 역시 현재의 LCNC 기술이 IT 업계에서 2~30년 경력을 가진 베테랑 개발자들보다 더 나은 SW를 만들어낼 거라고 기대하지는 않을 것이다. 하지만 고급 레스토랑에서 한 접시의 음식을 만들 동안 공장에서는 수백 개의 레토르트 식품을 생산할 수 있는 것처럼, LCNC는 개발 생산성 측면에서 비할 수 없는 향상을 가지고 온다. 이는 만성적인 개발자 부족을 겪고 있는 기업들에게 무척 매력적인 장점이다.

특히 직접 코딩할 필요가 없는 노코드 기반의 개발 플랫폼들은 IT에 대한 지식이 없는 비개발자도 SW 개발에 참여할 수 있어 더욱 효과적이다. IT 인력을 보유하기 어려운 스타트업이나 중소기업에서도 외부의 조력 없이 원하는 SW를 개발해 활용할 수 있고, 비즈니스 조직은 더 이상 원하는 SW를 개발하고 수정하기 위해 IT 조직과 마찰을 일으키지 않아도 된다. 노코드 플랫폼을 통해 간단한 개발 작업들은 비전문가가 직접 수행하는 대신, IT 조직은 전문가의 역량이 필요한 복잡한 개발에 집중해 SW 품질과 생산성을 더욱 향상시킬 수 있다.

[구축사례] 투비소프트, 넥사크로N ‘퀵코드’로 기술지원 페이지 성공적 구축
이노다임 조경탁 이사


Q. 이번 프로젝트의 목표는?

기술지원 홈페이지는 투비소프트 관련 사이트 중 가장 많은 사용자들이 방문하는 곳이다. 고객이나 수행사, 현장의 개발자, 디자이너 등 하루 1,000명 내외의 사용자들이 문제 해결이나 질의응답 등을 위해 방문한다. 해당 페이지는 과거에 투비소프트의 X플랫폼(XPLATFORM)으로 구축됐다가, 이후 넥사크로플랫폼14(NexacroPlatform 14) 제품으로 업그레이드됐다. 하지만 구축한 후 오랜 시간이 지나다보니 사이트 자체가 무겁고 사용자 경험 측면에서 아쉬운 부분들이 있어 대대적인 개선 사업을 수행하게 됐다. 프로젝트 기간은 약 6개월 정도로, 프로젝트 종료 후에는 사용자 경험 측면에서 많은 개선이 이뤄졌다.


Q. 이번 프로젝트에 어떻게 로우코드 기술을 활용했는가?

이번 프로젝트에는 투비소프트의 신제품인 넥사크로N(Nexacro N)을 사용하고, 특히 해당 제품의 로우코드 기능인 퀵코드(Quickcode)를 적용했다. 사실 투비소프트의 과거 제품들에도 이지UI(easyUI)라는 명칭으로 로우코드 기능이 있었는데 중요하게 다뤄지지는 않았다. 넥사크로N부터 기능을 강화하면서 퀵코드로 이름을 바꾸고 핵심 기능으로 자리잡았다.

일반적인 프로젝트에서는 웹 화면을 그리기 위해 디자이너가 화면을 구성하고, 퍼블리셔가 표준에 맞춰서 템플릿을 만들면, 개발자들이 그걸 가져다가 상세한 스크립트를 붙이기 시작한다. 여기에는 많은 반복 작업이 필요하다. 비슷한 화면 구성이 반복되면 더더욱 그렇다. 그런데 넥사크로N의 퀵코드 기능은 MVC(Model, View, Controller) 구조의 코드 블록을 활용할 수 있다. 정형화돼있는 블록들을 마우스로 드래그 앤 드롭하면 많은 부분들이 자동으로 그려진다.

퀵코드를 통해 상당한 개발 생산성을 경험할 수 있었다. 특히 이번 프로젝트에는 이제 막 학원을 나온 신입 개발자 2명이 포함돼 있었는데, 투비소프트 제품의 특성화된 개발 코드를 모르는데도 불구하고 어렵지 않게 업무를 수행할 수 있었다. 또한 사전에 퀵코드에서 만들어놓은 코드 블록을 수정하면, 해당 블록을 적용한 모든 항목에 자동으로 소급 적용되는 부분도 만족스러웠다.

넥사크로N의 퀵코드 기능은 MVC 구조의 코드 블록을 활용해 개발 생산성을 향상시킨다.

Q. 로우코드 기술 활성화를 위해 해결해야 할 문제는?

로우코드에 대한 인식이 부족한 게 가장 큰 문제인 것 같다. 로우코드를 하기 위해서는 해당 사이트에 대해 굉장히 잘 알아야 한다. 그런데 이번 프로젝트에 참여한 개발자들 중 로우코드에 대해 잘 알고 있는 사람이 드물어서 처음에 어려움이 있었다. 이제까지 그냥 하드코딩했던 개발자들 사이에서 로우코드가 뭔지, 그걸 왜 해야하는지, 한다면 누가 해야하는지 의견이 분분했다. 퀵코드에서는 프로젝트에 들어가기 전에 공통개발자가 MVC를 모두 만들어줘야 하는데, 공통개발자들에게 로우코드라는 개념 자체가 생소했을 뿐더러 본인의 업무가 늘어난다는 것에 대해 부담감을 가지기도 했다.

개인적으로는 넥사크로플랫폼에 탑재된 이지UI 시절부터 로우코드를 통한 UI 개발에 관심을 가지고 있었다. 하지만 아직 국내에 많이 퍼져있지 않기 때문인지 정보를 구하기도 어렵다. 이것은 투비소프트 같은 로우코드 기술 공급사가 보다 적극적으로 저변을 넓히기 위해 나서야 하는 문제라고 생각한다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지