2021년 11월 30일 화요일

신속하고 편리한 개발, Lowcode

여러 고객사를 방문하다보면 새로운 Application 을 구상하고 개발하고 싶지만 높은 수준의 개발 지식과 더불어 빠르게 변화하는 개발 환경에 대한 이해가 요구됨에 따라 어려움을 겪는 경우를 종종 보게 된다. Forrester Consulting 이 기업 내 IT 업무 담당자들을 대상으로 조사한 바에 따르면, 많은 수가 새로운 요구사항을 반영한 Digital Workflow 를 제공하기에 시간이 부족하고 이를 제공하기 위한 기술과 지식에 대한 이해도 부족하다고 느낀다고 한다.

특정 Workflow 에 대해 Database 를 조회하고 이를 기반한 가공된 양식이나 표 등 시각적 자료를 출력하는 등 간단한 CRUD (Create, Read, Update, Delete) 가 가능한 Web Application 을 프로그래밍 언어를 잘 몰라도 최소한의 프로그래밍과 GUI 기반의 구성 요소를 Drag & Drop 하는 등 간단한 조작만으로 빠르게 구현함으로써 개발 속도를 높여주고 비용 절감의 효과를 누리게 되는데 이 때 사용 되는 것이 Lowcode Platform1 이다. 촉박한 시간 내 개발을 요구 받는 전문 개발 인력들도 Lowcode Platform 을 적극 활용하고 있는 것으로 알려져 있다.

개발 현장에서 관심 받고 있는 Lowcode Platform 으로는 Outsystems, Mendix, Powerapps 등이 있으며, 그 중 Outsystems 에 대해 간단히 살펴보면, Cloud, On-premise 그리고 둘을 모두 아우르는 Hybrid 형태까지 환경에 대한 제약없이 UX Component Library 와 Drag & Drop 등의 간단한 인터페이스를 기반으로 다양한 Data Source 와 연동하여 App 개발을 지원한다. 필요에 따라서는 Javascript 기반 Custom Component 를 만들어 사용하는 것도 가능하다.

최근 재직 중인 회사에서 Lowcode Platform 의 한 종류인 Oracle APEX 2 을 활용하여 Web Application 을 개발 및 배포 하는 Hands-on 세미나 3 를 수강하게 되었다. Exadata Database 기반 Data Warehouse Cloud Service 인 ADW (Autonomous Data Warehouse) 에 Built-in 되어 제공되는 APEX 로 ADW 에 저장된 Data 를 활용하여 간단한 직원 명부 및 비용 지출 영수증 관리 하는 Web Application 을 개발해보는 과정이었는데, 수행하면서 느낀 Lowcode Platform 이 갖는 장점은 아래와 같다.

  1. 자원 절감: 프로그래밍을 최소화하고 구성요소를 조립 하는 형태를 기본으로 이루어져 있기 때문에 작업 효율성이 증가함에 따라 개발 시간을 대폭 단축할 수 있고 또한 이는 개발 인원 또한 감소시킬 수 있어 필요 자원 절감, 즉 비용 절감의 효과가 있다.
  2. 간편한 배포: 원클릭으로 구성 확인, Staging, Go-Live 를 자동화 하여 지원함으로써 간편하게 Application 을 개발 및 배포하는 Life Cycle 을 효과적으로 운영할 수 있다.

이와 반대로 Lowcode Platform 을 사용했을 때 느낀 단점을 생각해보면 아래와 같다.

  1. 확장성 및 유연성 부족: 모든 Application 은 서로 다른 요구사항과 기능을 필요로 하며 심지어 요구사항은 시시각각 변화하는데, 사용 중인 Platform 이 제공하는 고정된 기능과 제한된 Logic 만으로 이것을 100% 대응하기는 쉽지 않다. 또한 최근의 개발 Trend 인 API 기반의 개발환경에도 적합하지 않은 부분이 존재한다.
  2. 보안 취약: 빠르고 간단하다는 점에 너무 초점을 맞추다 보면 관리 부족과 보안 취약의 문제가 드러날 수 있다.
  3. Lock-in: 특정 Vendor 의 Platform Solution 에 Lock-in 되면 추후 다른 환경으로 Migration 하는 것이 매우 어렵다.

위와 같은 장단점과 더불어 Lowcode Platform 은 현업 부문 사용자 만을 위한 기술이다 라는 주장도 있는데, 이는 이들이 해결할 수 없는 Database Schema 설계 나 전체 Architecture 설계 등은 결국 전문 개발 엔지니어가 필요하기 때문인 것으로 생각된다. 대상 업무에 대한 요구사항과 Lowcode Platform 내 제공하는 기능의 적용 가능성을 충분히 고려하여 기존의 전문 엔지니어 기반 개발 방식과 Lowcode Platform 기반의 빠른 개발 방식을 조화롭게 적용하면 효율적인 개발 업무 분산이 가능할 것으로 예상된다.

  1. Low-code Development Platform
  2. Oracle APEX 란 ?
  3. APEX 입문자 Workshop

    Related Posts

    Cloud 에서의 Network Architecture
    Cloud 에서의 Network

    Leave a Reply