로우코드
IT 위키
더 많은 작업
- Low-Code; LCDP; 로우코드
- 손코딩을 최소화하고 시각적 모델링·드래그 앤 드롭·설정으로 애플리케이션을 만들고, 필요한 부분만 코드로 보완하는 개발 방식
로우코드 개발 플랫폼(LCDP, Low-Code Development Platform)은 화면·데이터 모델·업무 흐름을 그래픽 편집기로 정의하면 플랫폼이 실행 코드나 실행 환경을 만들어 준다. 표현하기 어려운 로직이나 외부 연동은 스크립트·API 호출로 직접 작성할 수 있다는 점에서 노코드와 구분된다. 개발 속도를 높이고 현업 사용자(시민 개발자, citizen developer)의 참여를 늘리려는 목적으로 쓰인다.
| 구분 | 로우코드 | 노코드 | 전통적 개발 |
|---|---|---|---|
| 주 사용자 | 개발자, 숙련된 현업 | 현업 사용자(비개발자) | 개발자 |
| 코드 작성 | 일부 필요(확장 지점) | 원칙적으로 없음 | 전부 작성 |
| 유연성·확장성 | 중간~높음 | 낮음(플랫폼 기능 범위 내) | 가장 높음 |
| 개발 속도 | 빠름 | 가장 빠름 | 느림 |
| 대상 업무 | 업무 시스템, 내부 포털, 연계 앱 | 양식·워크플로·간단한 앱 | 대규모·핵심 시스템 |
| 종속성 | 플랫폼 종속 큼 | 플랫폼 종속 매우 큼 | 낮음 |
- 장점
- 개발 기간·비용 단축, 프로토타입을 빠르게 만들 수 있다(프로토타이핑 모델과 잘 맞는다).
- 현업과 개발자가 같은 모델을 보며 협업하므로 요구사항 오해가 줄어든다.
- 인증, 데이터 연결, 배포 같은 공통 기능을 플랫폼이 제공한다.
- 단점
- 벤더 종속(lock-in): 생성된 산출물이 특정 플랫폼 런타임에 묶여 이전이 어렵다.
- 복잡한 로직·고성능 요구에는 한계가 있고, 플랫폼 밖 확장 시 오히려 비용이 늘 수 있다.
- 생성 코드의 품질·성능을 직접 통제하기 어렵고, 디버깅과 테스트 자동화가 제한될 수 있다.
- 라이선스가 사용자 수·앱 수에 따라 과금되는 경우가 많아 장기 비용 검토가 필요하다.
- 섀도 IT: 현업이 IT 부서 모르게 앱을 만들면 자산·데이터 흐름 파악이 어려워진다. 앱 등록·승인 절차와 환경(개발/운영) 분리가 필요하다.
- 접근 통제: 플랫폼 커넥터가 가진 권한이 크면 데이터 과다 노출이 생긴다. 최소 권한 원칙과 역할 기반 권한을 적용한다.
- 데이터 보호: 개인정보·중요정보가 외부 SaaS 플랫폼에 저장·처리되는지 확인한다.
- 형상·변경 관리: 시각적 모델도 버전 관리, 변경 이력, 배포 승인을 거쳐야 한다(형상 관리).
- 품질 보증: 플랫폼이 생성하는 부분과 직접 작성한 스크립트를 구분하여 검토하고, 사용자 입력 검증 등 시큐어 코딩 항목을 점검한다.
로우코드는 모델에서 실행 산출물을 얻는다는 점에서 모델 기반 개발(MDD, Model-Driven Development)의 실용적 형태로 볼 수 있다.
- MDA(Model Driven Architecture): OMG가 제시한 접근법으로, 플랫폼 독립 모델(PIM)을 플랫폼 종속 모델(PSM)로 변환하고 이를 코드로 생성한다. 업무 관점의 계산 독립 모델(CIM)을 앞 단계로 둔다.
- 코드 자동생성: UML 등 모델이나 명세에서 소스코드 골격을 생성한다. CASE 도구, 전자정부 표준프레임워크 개발환경의 코드 생성 기능, DB 스키마에서 CRUD 코드를 만드는 도구 등이 있다.
- 차이: MDA/MDD는 표준 모델 언어와 변환 규칙을 중시하고 생성된 코드를 개발자가 다루는 경우가 많다. 로우코드는 플랫폼 고유의 모델과 런타임을 쓰며, 코드를 노출하지 않거나 확장 지점만 연다.
- 로우코드와 노코드의 구분 기준(코드 확장 여부, 주 사용자, 유연성)
- 벤더 종속·섀도 IT·권한 관리 등 감리 시 점검할 위험 요소
- MDA의 CIM → PIM → PSM → 코드 변환 흐름
- 생성 코드도 형상 관리·테스트·보안 점검 대상이라는 점