자세히 보기

Martin Heller
Contributing Writer

자칫하면 배보다 배꼽··· ‘로우코드’ 개발 플랫폼 잘 고르는 법

‘로우코드(Low-code)’ 및 ‘노코드(No-code)’ 개발 플랫폼을 사용하면 개발자는(심지어 비개발자도) 기존 프로그래밍보다 더 빠르게 그리고 더 저렴하게 애플리케이션을 구축할 수 있다. 여기서는 적절한 로우코드 또는 노코드 도구 선택 방법을 살펴본다.

로우코드 및 노코드 개발 플랫폼을 통해 소프트웨어 개발자는 물론이고 심지어 비개발자도 다양한 애플리케이션을 제공, 지원, 확장할 수 있게 됐다. 이를 사용해 모바일 애플리케이션을 개발하고, 고객 경험을 제공하며, 워크플로우를 간소화하는 것이다. 또한 레거시 애플리케이션을 현대화하고, 데이터 통합을 자동화하며, 데이터 시각화를 지원하기도 한다. 

이러한 로우코드 및 노코드 개발 도구의 장점은 ▲숙련되지 않은 ‘시민 개발자’도 잘 사용할 수 있고, ▲네이티브 SDK를 사용하는 것보다 더 빠르게 애플리케이션을 구축할 수 있으며, ▲더 저렴한 비용으로 그렇게 할 수 있다는 것이다. 

하지만 이렇게 인건비와 시간을 줄여 절감한 비용을 상쇄시켜버리는 로우코드 및 노코드 시스템도 많다(물론 전부는 아니다). 바로 라이선스 또는 구독 비용 때문이다. 

노코드 및 로우코드 비용 및 절감
소비자 또는 고객용 앱을 개발한다면 사용자당(per-user) 비용을 청구하는 개발 시스템 그리고 기본적인 성능을 제공하지 않는 개발 시스템은 피해야 한다. 성능이 느리거나 최적화돼 있지 않은 듯한 룩앤필의 앱을 개발한다면 소비자가 외면할 수 있기 때문이다. 

대략 추정해 보자면 미국에서 학사 학위 이상의 소프트웨어 개발자는 연간 5~12만 달러(평균 7만 2,000달러)를 번다. 그리고 처음부터 네이티브 코드로 작성된 ‘간단한’ 소비자용 애플리케이션을 개발한다고 하면 최소 6개월에서 최대 25개월(평균적으로는 12개월)이 걸린다. 따라서 ‘간단한’ 애플리케이션을 개발하는 데 약 7만 2,000달러의 비용이 드는 셈이다. ‘복잡한’ 네이티브 앱은 100만 달러 이상의 비용이 들 수 있다.

여기서 앱 개발 시간을 1개월(비용은 ~ 6,000달러)로 줄여주지만 사용자당 10달러의 라이선스 비용을 청구하는 로우코드 개발 시스템을 쓴다고 해보자. 이때 사용자가 6,600명이라면 총비용은 네이티브 개발 비용을 초과하게 된다. 물론 대략적인 추정치라는 점에 유의하라. 

이 경우에는 앱(per app), 서버(per server), 개발자당(per developer) 비용을 청구하는 개발 도구가 더 나을 수 있다. 반면에 수백 명의 직원이 내부에서 사용할 앱을 많이 개발하는 경우라면 사용자당 비용 청구 방식이 유리할 수 있다. 직원의 앱 기대치는 소비자의 기대치보다 낮은 경향이 있으며, 직원은 업무에 필요한 앱 사용에 관해 선택권이 없다. 불평할 순 있지만 그래도 사용할 것이다. 

노코드 vs. 로우코드 개발
노코드 개발 도구를 사용한다면 보통 구성요소를 드래그 앤 드롭 방식으로 디자인 팔레트 위에 놓으면서 작업을 할 것이다. 하지만 도구에 필요한 기능이 없다면 난관에 부딪히게 된다. 이 시점에서 나가떨어질 수도 있고, 아니면 도구 개발자 또는 서드파티 벤더에서 필요한 구성요소를 구매하거나 얻을 수 있다. 

로우코드 개발자 도구는 코드 중 일부를 작성해야 하기 때문에 학습 곡선이 노코드 도구보다 다소 가파를 순 있다. 하지만 도구를 확장하는 데 있어서의 장벽은 일반적으로 더 낮다. 다른 구성요소를 구매해야 하는 대신 몇 줄의 코드를 작성해 시스템, 오픈소스, 제공업체 API 등을 호출할 수 있다.

일부 로우코드 환경에서는 코드가 선택사항이다. 즉 어느 정도까진 노코드 개발 환경을 사용할 수 있다. 이를테면 현업 부문 사용자가 개발 작업의 95%를 수행하고, 개발자가 나머지 5%에 필요한 코드를 채워 넣을 수 있다. 물론 이 비율은 애플리케이션과 도구에 따라 달라질 수 있다. 

로우코드 도구에서 작성해야 하는 코드가 이미 알고 있는 언어와 유사한 경우가 많다. 예를 들면 ‘마이크로소프트 파워 Fx(Microsoft Power Fx)는 마이크로소프트 엑셀(Excel)을 기반으로 하며, 알파 소프트웨어(Alpha Software)의 엑스베이직(Xbasic)은 마이크로소프트 베이직(Microsoft Basic)에서 파생됐다. 많은 로우코드 도구가 자바스크립트(JavaScript)와 밀접한 관계가 있거나 자바스크립트 엔진(예: V8)을 내장한 언어를 사용한다.

한편 노코드 개발이 현업 부문 사용자를 대상으로 한 로우코드 개발에 불과하다는 주장이 있다. 모든 노코드 및 로우코드 개발팀에는 현업 부문 사용자가 스스로 구축할 수 없는 부분(예: 데이터베이스 스키마, 구성요소 개발, 아키텍처, 사용자 경험 디자인, 품질 검토 등)을 지원할 수 있는 전문 개발자가 필요하다는 현실적인 주장도 있다. 

노코드 및 로우코드 도구 종류
로우코드 또는 노코드 개발 도구를 구매하기 전에 개발하고자 하는 앱에 관한 질문을 던져 로우코드가 적합할지 아니면 노코드가 적합할지 살펴봐야 한다. 

• 데스크톱 앱을 개발하는가? 그렇다면 윈도우용인가? 맥용인가? 리눅스용인가? 아니면 이를 모두 포함하는가?

• 웹 앱을 개발하는가? 그렇다면 데스크톱 브라우저용인가? 태블릿용인가? 스마트폰용인가? 아니면 이를 모두 포함하는가?

• 모바일 앱을 개발하는가? 그렇다면 아이폰용인가? 아이패드용인가? 안드로이드용인가? 아니면 이를 모두 포함하는가?

• 모바일 기기용 네이티브 코드를 작성할 계획인가? 하이브리드 웹 기술을 사용하기 위해? 네이티브 쉘과 웹 콘텐츠를 사용하기 위해? 아니면 이를 모두 사용하기 위해?

• 예산이 있는가? 예산은 얼마나 되는가? 기한이 있는가? 기한은 얼마나 남았는가? 개발자는 몇 명인가? 개발자들은 어떤 기술 역량을 갖추고 있는가? 예산, 기한, 리소스가 앱의 목표와 일치하는가? 어떻게 견적을 매겼는가?

• 앱을 지원하는 데이터베이스가 필요한가? 그렇다면 기존 데이터베이스가 필요한가? 아니면 새로운 것이 필요한가? 클라이언트가 데이터베이스를 업데이트하는가?

• 애플리케이션이 클라이언트 통신을 지원해야 하는가? 필요한 다른 기능이 있는가?

• 내부용 앱을 개발하고 있는가? 고객용인가? 소비자용인가? 비즈니스 파트너용인가? 아니면 이를 모두 포함하는가?

• 기존 비즈니스 프로세스를 대체 또는 현대화하는가? 기존 종이 서식을 디지털화하려고 하는가?

이 수많은 질문에서 알 수 있듯이 앱에는 다양한 종류의 타깃 환경이 있다. 또 노코드 및 로우코드 개발 도구에는 여러 종류의 디자인 패러다임이 있다.

런타임 타깃에는 윈도우, 맥OS, 리눅스 그리고 (가끔) DOS용 데스크톱 앱이 포함된다. 모바일 타깃에는 안드로이드, iOS, 태블릿 및 워치용 변형이 포함된다. 웹 앱 타깃에는 위에 있는 거의 모든 것이 포함되며, 브라우저 지원(크롬(Chrome), 엣지(Edge), 사파리(Safari), 파이어폭스(Firefox), 오페라(Opera))과 다양한 화면 크기를 즉각 처리할 수 있는 기능 등의 추가 사항이 있다. 하이브리드 웹 앱은 네이티브 쉘 앱과 웹 콘텐츠를 결합한다.

디자인 패러다임에는 ▲프로토타입 앱 사용자 정의, 속성 시트, 작은 코드 조각이 있는 드래그 앤 드롭 디자인 환경, ▲선언적인 필드 설명, ▲스캔한 서식 변환, ▲와이어프레임 또는 그래픽 디자인 변환, ▲데이터베이스 스키마에서 서식 생성 등이 포함된다. 컨트롤에는 절대적 또는 상대적 레이아웃이 있을 수 있으며, 컨트롤 그룹에 관한 플로우 레이아웃 또는 컨테이너가 있을 수 있다. 컨트롤 자체는 플랫폼에 기본 내장돼 있거나 도구의 런타임 일부로 구현할 수 있다.

백엔드 기능에는 인증 및 데이터베이스, 클라우드 서비스, 엔터프라이즈 애플리케이션 연결이 포함될 수 있다. 모바일 앱은 문자 메시지, 푸시 알림, 지리적 위치, 사진 및 비디오 서비스, 소셜 ID 제공자, 소셜 네트워크와의 통합을 지원할 수 있다. 백엔드 서비스를 사용하는 앱은 연결이 간헐적일 때도 작동하도록 설계될 수 있으며, 1명 이상의 사용자가 오프라인으로 데이터베이스를 업데이트하려고 할 때 발생하는 데이터 충돌을 해결할 수 있다. 

로우코드 및 노코드 개발 플랫폼 업체
마지막으로 확인했을 당시 노코드 및 로우코드 개발 분야에 400개 이상의 제공업체가 있었다. 가트너는 이 중에서 약 250곳을 다루면서 새로운 카테고리로 분류하고자 하는 것 같다. 많은 업체와 일부 제품은 여러 개의 카테고리 정의가 적용될 수 있다.

기술적으로 중복되는 부분이 있지만 BPM(Business Process Management)과 RPA(Robotic Process Automation) 도구를 다른 노코드 및 로우코드 도구와 함께 묶어서는 안 된다고 본다. BPM과 RPA 도구가 다른 시스템을 자동화하고 조율하는 반면, 일반적인 로우코드 개발 도구는 기업 시스템을 다른 목적을 위한 수단으로만 사용할 수 있기 때문이다. 

예를 들면 대출 심사라는 지루하고 반복적인 멀티 시스템 프로세스를 자동화하는 도구는 RPA다. 반면에 현장 서비스직이 엘리베이터 점검 결과를 기록하기 위해 사용하는 태블릿 앱은 종이 서식을 대체하고, 프로세스 속도를 높이며, 일부 문서 작업을 없앨 순 있지만 RPA라고 할 만큼 프로세스를 충분히 자동화하진 않는다.  

다음은 7곳의 로우코드 및 노코드 개발 업체를 선정하여 알파벳 순으로 나열했다.

1. 알파 소프트웨어(Alpha Software): 알파 소프트웨어는 데이터베이스 지향적이며, 일련의 기술 역량을 갖춘 개발자가 사용할 수 있는 데스크톱, 웹, 하이브리드 모바일 앱 개발을 위한 로우코드 애플리케이션 개발 도구다. ‘알파 트랜스폼(Alpha TransForm)’은 모바일 서식 개발을 위한 노코드, 로우코드 도구다. 이는 자동 동기화를 포함하는 오프라인 기능도 제공한다. 

2. 애피언(Appian): 애피언은 노코드 엔터프라이즈 데이터 통합과 함께 웹 및 모바일 앱 개발을 위한 비주얼 노코드 디자이너와 로우코드 도구를 제공한다. 애피언은 BPM과 RPA를 위한 자동화 플랫폼을 별도로 제공한다.

3. 클라리스(Claris): ‘클라리스 파일메이커(Claris FileMaker)’는 자체 데이터베이스를 포함한 데스크톱, 웹, 모바일 앱 개발용 로우코드 시스템이다. 내장 템플릿, 드래그 앤 드롭 디자인, 직관적인 그래픽 UI가 특징이다. ‘클라리스 커넥트(Claris Connect)’는 파일메이커와 동일한 코어에 구축된 자동화 플랫폼이다.

4. 멘딕스(Mendix): ‘멘딕스 스튜디오(Mendix Studio)’는 시민 개발자를 위한 위지위그(WYSIWYG) 방식의 브라우저 기반 개발 환경이다. ‘멘딕스 스튜디오 프로’는 커스텀 코드 추가 기능을 포함하여 소프트웨어 개발에 필요한 모든 기능을 제공하는 데스크톱 기반 개발 환경이다. 또 멘딕스는 자동화 플랫폼과 데이터 허브를 제공한다.

5. 마이크로소프트(Microsoft): ‘마이크로소프트 파워 앱스(Microsoft Power Apps)’는 템플릿, 드래그 앤 드롭 디자인, 엑셀과 유사한 프로그래밍 언어 ‘파워 Fx(Power Fx)’를 사용하는 윈도우 10용 로우코드 앱 빌더다. 파워 앱스에는 자연어 설명으로 파워 Fx 코드를 생성할 수 있는 언어 모델이 포함돼 있다. 전문 개발자는 ‘애저 펑션(Azure Functions)’과 맞춤형 커넥터를 통해 파워 앱스를 확장할 수 있다. ‘파워 오토메이트(Power Automate)’는 워크플로우 엔진을 탑재한 별도의 RPA 플랫폼이다.

6. 아웃시스템즈(OutSystems): 아웃시스템즈를 사용하면 시각적 요소를 드래그 앤 드롭하여 웹 및 모바일 앱용 UI, 비즈니스 프로세스, 비즈니스 로직, 데이터 모델을 생성하고 필요할 땐 코드를 활용해 커스텀할 수 있다. 약 70개의 사전 구축된 템플릿과 패턴을 제공한다. ‘아웃시스템즈 포지(OutSystems Forge)’에는 앱에 넣을 수 있고, 원한다면 IDE에서 확장할 수 있는 수천 개의 사전 빌드된 코드 모듈이 포함돼 있다.

7. 세일즈포스(Salesforce): ‘세일즈포스 라이트닝(Salesforce Lightning)’은 세일즈포스 플랫폼을 위한 로우코드 드래그 앤 드롭 앱 개발 플랫폼이다. 라이트닝은 다른 애플리케이션 및 데이터에도 연결할 수 있다. 또한 ‘라이트닝 앱 빌더(Lightning App Builder)’를 통해 마우스를 사용하여 앱을 개발할 수 있다. ‘라이트닝 웹 컴포넌트(Lightning Web Components)’는 개발자가 재사용 가능한 요소를 생성할 수 있도록 지원한다.

노코드 또는 로우코드 개발 플랫폼 선택 시 유의사항
위에서 했던 수많은 질문을 기억하는가? 이번에는 그 질문의 답을 심사숙고할 차례다. 기업 전반에 걸쳐 하나의 시스템으로 표준화해야 한다는 압박이 느껴지더라도 모든 상황에 적용할 수 있는 노코드 또는 로우코드 개발 시스템은 존재하지 않는다. 부서마다 다른 목적으로 다양한 개발 제품을 필요로 할 수 있다.

• 비용 모델이 적합한가? 소비자용 앱의 경우 사용자당 비용을 청구하는 로우코드 시스템이 적합한지 파악하지 못할 가능성이 크다. 많은 로우코드 제공업체가 웹 사이트에 가격을 게시한다. 그렇지 않다면 영업 부서에 전화로 문의해야 한다. 부끄러워할 필요가 없다. 가격을 묻고 비교해야 한다.

• 로우코드/노코드 플랫폼이 원하는 모든 배포 타깃을 지원하는가? 그렇지 않다면 계속 찾아봐야 한다. 원하는 배포 타깃을 지원하는 옵션이 없다면 가장 중요한 기기나 브라우저에 맞춰 타깃 목록을 정리한다.  

• 로우코드/노코드 플랫폼이 개발자 역량과 적합한가? 앱을 개발할 때 필요한 모든 기술 역량을 갖춘 한 사람(aka. ‘유니콘’)에게 의존하기 보다는 팀과 함께 하는 게 좋다. 어떤 도구에 필요한 모든 역량을 갖추지 못했다면 팀에 더 적합할 수 있는 다른 도구를 계속 찾아본다. 팀의 역량에 맞는 도구 옵션이 없다면 교육이나 고용, 또는 둘 다를 고려한다.

• 로우코드/노코드 플랫폼이 개발 기간을 단축하는가? 로우코드 개발의 장점 중 하나는 타임투마켓(Time To Market)을 줄여준다는 것이다. 이것이 중요한 고려사항이라면 실제로 프로젝트를 완료하는 데 얼마나 시간이 걸릴지 파악해야 한다. 제공업체에 요구사항 및 기존 경험을 바탕으로 기간을 문의한다. 예상 기간에는 문서화 및 테스트 단계뿐만 아니라 초기 개발 및 최종 배포까지 포함돼야 한다는 점에 유의하라.

• 로우코드/노코드 플랫폼이 확장되는가? 일부 로우코드 솔루션은 앱을 실행할 수 있는 동시 사용자 수를 제한하는 병목 현상을 유발하기도 한다. 경우에 따라 로드 밸런서를 통해 여러 서버를 운용하여 서버 측 병목 현상을 해결할 수 있다. 제공업체가 일반적인 배포 시에 처리할 수 있는 사용자 수를 알려줄 순 있지만 최종 배포를 할 때는 직접 부하 테스트를 수행해야 한다.

• 로우코드/노코드 플랫폼이 사용자의 기대치를 충족시킬까? 소비자는 1초 미만의 앱 응답 시간, 최적화된 룩앤필을 기대한다. 스마트폰에서 테스트할 동작 중 하나는 긴 목록을 스크롤하는 것이다. 빠르게 넘길 때는 빠르게 움직여야 하지만, 스크롤에 ‘탄성’이 있는 것처럼 느껴져 멈추기 전에 속도가 느려져야 한다. 

• 개념 증명(PoC)을 수행한다. 무료 평가 기간에 로우코드 제품을 학습하는 것만으로는 부족하다. 실제로 개발하고자 하는 것의 간단한 부분 집합을 선택하고 개념 증명 앱을 만들어 본다. 사내에서 가능한 한 PoC 개발을 많이 해보는 것이 좋다. 

로우코드 개발은 큰 보상으로 이어질 수 있는 여정이다. 하지만 너무나 많은 기업이 모바일 앱을 네이티브 코드로 작성해야 한다고 하다가 (이를테면) iOS 앱에 1년 동안 100만 달러를 쓰고 거의 동일한 안드로이드 앱에도 6개월 동안 50만 달러를 지출하고 나서야 충격을 받는다. 

또 너무나 많은 기업이 전문 개발자 또는 데이터베이스 관리자의 지원 없이 현업 부문 사용자가 로우코드 개발을 할 수 있다고 하다가 프로젝트가 실패하고 나서야 충격을 받는다. 

이러한 극단적인 상황을 피하고 명확한 목표를 세운다면 로우코드 앱을 신속하게 그리고 제대로 개발할 수 있는 방법을 아는(또는 배울 수 있는) 팀을 구성할 수 있을 것이다.

dl-ciokorea@foundryco.com

Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

이 저자의 추가 콘텐츠