2020.08.27

‘혹하는 약속, 그러나 반대급부도 있다’··· 로우 코드의 장단점 각 7가지

Peter Wayner | CIO
기한과 일정에 대한 스트레스, 유지관리에 대한 압박이 심하다. 그러니 로우코드 개발 도구에 대한 ‘잠재력’이 아주 근사하게 들린다. 개발자가 아닌 사람도 클릭 몇 번으로 쉽게 간단한 앱을 구현할 수 있다는 ‘약속’을 이야기하는 것이다.

수많은 벤더들이 ‘로우 코드’라는 유행어를 내세우며 자사의 개발 도구 구입을 권유하고 있다. 실제로 최소한의 노력으로 마법 같이 모든 일들을 처리할 수 있는 도구들이 꽤 많다. 다루기 까다로운 개발자들 없이 괜찮은 품질의 소프트웨어를 쉽게 만드는 것이 가능해지기는 했다.  

그러나 하기는 쉽지만, 지키기는 어려운 것이 약속이다. 많은 경험 많은 CIO들이 과거 이런 약속을 들었고, 이런 약속이 때때로 지켜지지 않는 것을 봤다. 컴퓨터의 역사는 앞선 프로그래머가 만든 계층의 거친 부분을 고치기 위해, 새로운 코드 계층을 추가해 나간 역사나 다름없다. 

첫 번째 소프트웨어 컴파일러는 머신 코드를 쓰는 것에 대한 로우 코드적 대안으로 간주됐었다. 그런데 머신 코드 역시 ‘튜브’ 간 연결을 바꾸는 것에 대한 로우 코드적 대안이었다. 이런 식으로 새로운 도구들이 과거 구현된 것의 ‘손쉬운’ 버전으로 홍보됐었다.

좋은 소식은 멀찌감치에서 보면 도구들의 발전이 꽤 긍정적이었다는 것이다. 실제로 더 적은 노력으로 더 많은 것을 할 수 있게 되었다. 그러나 가까이에서 보면 조금 혼동스럽다. 큰 개선 및 향상과 함께 이를 관리하는 책임이 수반되는 경우가 많다. 최상의 구성 방법과 도구를 ‘마스터’하는 데 무언가를 처음부터 구현하는 것과 거의 비슷한 노력을 들여야 하는 때가 많다.

이 둘 사이의 ‘마찰’에 대해 이해하고 관리하는 것이 로우 코드를 고려하는 기업들이 풀어야 할 도전과제다. 로우 코드가 제공하는 혜택이 비용에 상응하는 가치를 제공할까? 현재 제시된 약속과 잠재력을 어느 정도 수용할지 결정하기 위해, 지금부터 소개할 로우 코드 도구를 수용해야 하는 7가지 이유, 피해야 할 7가지 이유를 균형 있게 고려해야 한다.
 
Image Credit : Getty Images Bank


◆ 장점 : 속도
로우 코드 벤더들은 한 가지 목적을 추구한다. 모든 사람이 빠르게 새 소프트웨어를 창조할 수 있도록 돕는다는 것이다. 사용자는 클릭 몇 번으로 하나의 형태를 가진 하나의 페이지를 만들 수 있다. 몇 개의 형태와 보기(인터페이스)를 연결하면 앱이 구현된다. 

일부 민첩한 사용자는 앱에 대해 논의를 하는 회의 동안 실시간으로 앱을 개발할 수 있을 정도다. 그 정도로 클릭, 컴파일링, 테스트 순환 주기가 빠르다. 좋은 소식은 이런 도구들이 ‘약속’처럼 기능할 때가 제법 있다는 것이다. 전달할 수 있는 것들의 ‘스위트 스폿’을 맞출 수 있다면, 진짜 개발자들로 구성된 팀을 참여시킬 때보다 더 적은 시간에 완료할 수 있다.

◇ 단점 : 속도
도구가 빨라서 나쁠 일은 드물다. 그러나 서둘러 소프트웨어를 개발하는 것이 실수가 될 수 있다. 코딩이 쉬워지면서, 고객 입장에서 기능을 계획하고 애플리케이션을 정의하는 것이 진짜 도전과제가 됐다.

지나치게 속도를 중시하면 작업을 마치고 몇 분 만에 실망할 수 있다. 팀이 이 시간에 3개 프로토타입을 끝낼 수도 있지만, 이 과정에 반드시 해결해야 할 수십 가지의 철학적 문제점이나 개념적 장애물을 무시할 수 있다. 속도가 전략적인 사고에 방해가 될 수도 있다는 이야기이다. 진짜 도전과제는 원하는 것을 만드는 것이 아니라 처음부터 원하는 것을 파악하는 것이다.

◆ 장점 : 안정성
맞춤형 소프트웨어는 기업이 유지관리하기 힘들다. 소프트웨어를 만드는 것은 사실 전체 소프트웨어 생애 주기에 있어 시작에 불과하다. 최초 버전을 만드는 것보다 유지관리에 더 많은 노력이 요구되는 경우가 많다.

로우 코드 도구들은 솔루션 전반에 걸쳐 지원 비용 문제를 줄여줄 수 있다. 새 OS 버전이 출시되거나, 의회에서 새 데이터 보관 규정이 통과되면, 로우 코드 도구 벤더들은 조치를 취할 것이다. 로우 코드 플랫폼 도입은 단순한 결합이 아닌 모두 하나가 되는 통합이다. 작은 통합일 수 있지만, 이는 내부 직원으로만 관리를 하려 시도할 때보다 더 큰 안정성을 선물한다.

◇ 단점 : 공동 운명체
로우 코드 플랫폼을 만든 회사에 지원을 떠넘기면 많은 돈과 시간을 절약할 수 있지만, 안정성은 보장되지 않는다. 물론 잘 관리되는 프레임워크라면 미래를 순항할 수 있지만, 모든 비즈니스가 잘 관리되는 것은 아니다. 기업에서 일어날 수 있는 사건, 사고가 당신이 사용하는 플랫폼을 망가뜨릴 수 있다. 

예를 들어, 중년의 위기를 맞은 CEO가 도박에 빠져들 수 있다. CFO가 IRS 세금 문제에 있어 제멋대로 행동할 수도 있다. 플랫폼을 만든 천재가 깨달음을 찾아 방황할 수도 있다. 이렇게 로우 코드 도구의 안정성을 해치는 사건, 사고, 문제가 발생할 수 있다. 다른 조직을 믿어야 한다. 유일한 지렛대는 매년 계약 갱신 프로세스 밖에 없을 수 있다.

◆ 장점 : 역량을 부여
좋은 로우 코드 플랫폼은 IT 부서를 돕는 것은 물론, 비즈니스 부서 직원들의 창의력을 발산시키는 역할을 한다. 이들은 끝없이 스펙 문서만 되풀이해 만들면서 예산을 요청하는 대신, 자신의 아이디어를 실험할 시간을 투자할 수 있다.

◇ 단점 : 한계
현대 로우 코드는 놀랄만한 기능을 갖고 있지만, 개발자가 아닌 사람을 경력이 많은 개발자로 바꿔 놓지는 못한다. 사용자는 컴퓨터 작동 방식에 대한 기본적인 느낌, 개념을 갖고 있어야 한다. 예를 들어, 스프레드에 정통한 사람들은 이런 도구 사용에 큰 문제가 없겠지만, 워드 프로세서 여백 조정에도 겁을 내는 사람들이 갑자기 3개의 앱을 마법같이 만들어 낼 수 없는 법이다. 이런 도구들은 많은 귀찮은 작업들을 처리해주지만, 컴퓨터 연산과 현재 컴퓨팅 환경의 기본적인 한계들을 벗어날 수는 없다.




2020.08.27

‘혹하는 약속, 그러나 반대급부도 있다’··· 로우 코드의 장단점 각 7가지

Peter Wayner | CIO
기한과 일정에 대한 스트레스, 유지관리에 대한 압박이 심하다. 그러니 로우코드 개발 도구에 대한 ‘잠재력’이 아주 근사하게 들린다. 개발자가 아닌 사람도 클릭 몇 번으로 쉽게 간단한 앱을 구현할 수 있다는 ‘약속’을 이야기하는 것이다.

수많은 벤더들이 ‘로우 코드’라는 유행어를 내세우며 자사의 개발 도구 구입을 권유하고 있다. 실제로 최소한의 노력으로 마법 같이 모든 일들을 처리할 수 있는 도구들이 꽤 많다. 다루기 까다로운 개발자들 없이 괜찮은 품질의 소프트웨어를 쉽게 만드는 것이 가능해지기는 했다.  

그러나 하기는 쉽지만, 지키기는 어려운 것이 약속이다. 많은 경험 많은 CIO들이 과거 이런 약속을 들었고, 이런 약속이 때때로 지켜지지 않는 것을 봤다. 컴퓨터의 역사는 앞선 프로그래머가 만든 계층의 거친 부분을 고치기 위해, 새로운 코드 계층을 추가해 나간 역사나 다름없다. 

첫 번째 소프트웨어 컴파일러는 머신 코드를 쓰는 것에 대한 로우 코드적 대안으로 간주됐었다. 그런데 머신 코드 역시 ‘튜브’ 간 연결을 바꾸는 것에 대한 로우 코드적 대안이었다. 이런 식으로 새로운 도구들이 과거 구현된 것의 ‘손쉬운’ 버전으로 홍보됐었다.

좋은 소식은 멀찌감치에서 보면 도구들의 발전이 꽤 긍정적이었다는 것이다. 실제로 더 적은 노력으로 더 많은 것을 할 수 있게 되었다. 그러나 가까이에서 보면 조금 혼동스럽다. 큰 개선 및 향상과 함께 이를 관리하는 책임이 수반되는 경우가 많다. 최상의 구성 방법과 도구를 ‘마스터’하는 데 무언가를 처음부터 구현하는 것과 거의 비슷한 노력을 들여야 하는 때가 많다.

이 둘 사이의 ‘마찰’에 대해 이해하고 관리하는 것이 로우 코드를 고려하는 기업들이 풀어야 할 도전과제다. 로우 코드가 제공하는 혜택이 비용에 상응하는 가치를 제공할까? 현재 제시된 약속과 잠재력을 어느 정도 수용할지 결정하기 위해, 지금부터 소개할 로우 코드 도구를 수용해야 하는 7가지 이유, 피해야 할 7가지 이유를 균형 있게 고려해야 한다.
 
Image Credit : Getty Images Bank


◆ 장점 : 속도
로우 코드 벤더들은 한 가지 목적을 추구한다. 모든 사람이 빠르게 새 소프트웨어를 창조할 수 있도록 돕는다는 것이다. 사용자는 클릭 몇 번으로 하나의 형태를 가진 하나의 페이지를 만들 수 있다. 몇 개의 형태와 보기(인터페이스)를 연결하면 앱이 구현된다. 

일부 민첩한 사용자는 앱에 대해 논의를 하는 회의 동안 실시간으로 앱을 개발할 수 있을 정도다. 그 정도로 클릭, 컴파일링, 테스트 순환 주기가 빠르다. 좋은 소식은 이런 도구들이 ‘약속’처럼 기능할 때가 제법 있다는 것이다. 전달할 수 있는 것들의 ‘스위트 스폿’을 맞출 수 있다면, 진짜 개발자들로 구성된 팀을 참여시킬 때보다 더 적은 시간에 완료할 수 있다.

◇ 단점 : 속도
도구가 빨라서 나쁠 일은 드물다. 그러나 서둘러 소프트웨어를 개발하는 것이 실수가 될 수 있다. 코딩이 쉬워지면서, 고객 입장에서 기능을 계획하고 애플리케이션을 정의하는 것이 진짜 도전과제가 됐다.

지나치게 속도를 중시하면 작업을 마치고 몇 분 만에 실망할 수 있다. 팀이 이 시간에 3개 프로토타입을 끝낼 수도 있지만, 이 과정에 반드시 해결해야 할 수십 가지의 철학적 문제점이나 개념적 장애물을 무시할 수 있다. 속도가 전략적인 사고에 방해가 될 수도 있다는 이야기이다. 진짜 도전과제는 원하는 것을 만드는 것이 아니라 처음부터 원하는 것을 파악하는 것이다.

◆ 장점 : 안정성
맞춤형 소프트웨어는 기업이 유지관리하기 힘들다. 소프트웨어를 만드는 것은 사실 전체 소프트웨어 생애 주기에 있어 시작에 불과하다. 최초 버전을 만드는 것보다 유지관리에 더 많은 노력이 요구되는 경우가 많다.

로우 코드 도구들은 솔루션 전반에 걸쳐 지원 비용 문제를 줄여줄 수 있다. 새 OS 버전이 출시되거나, 의회에서 새 데이터 보관 규정이 통과되면, 로우 코드 도구 벤더들은 조치를 취할 것이다. 로우 코드 플랫폼 도입은 단순한 결합이 아닌 모두 하나가 되는 통합이다. 작은 통합일 수 있지만, 이는 내부 직원으로만 관리를 하려 시도할 때보다 더 큰 안정성을 선물한다.

◇ 단점 : 공동 운명체
로우 코드 플랫폼을 만든 회사에 지원을 떠넘기면 많은 돈과 시간을 절약할 수 있지만, 안정성은 보장되지 않는다. 물론 잘 관리되는 프레임워크라면 미래를 순항할 수 있지만, 모든 비즈니스가 잘 관리되는 것은 아니다. 기업에서 일어날 수 있는 사건, 사고가 당신이 사용하는 플랫폼을 망가뜨릴 수 있다. 

예를 들어, 중년의 위기를 맞은 CEO가 도박에 빠져들 수 있다. CFO가 IRS 세금 문제에 있어 제멋대로 행동할 수도 있다. 플랫폼을 만든 천재가 깨달음을 찾아 방황할 수도 있다. 이렇게 로우 코드 도구의 안정성을 해치는 사건, 사고, 문제가 발생할 수 있다. 다른 조직을 믿어야 한다. 유일한 지렛대는 매년 계약 갱신 프로세스 밖에 없을 수 있다.

◆ 장점 : 역량을 부여
좋은 로우 코드 플랫폼은 IT 부서를 돕는 것은 물론, 비즈니스 부서 직원들의 창의력을 발산시키는 역할을 한다. 이들은 끝없이 스펙 문서만 되풀이해 만들면서 예산을 요청하는 대신, 자신의 아이디어를 실험할 시간을 투자할 수 있다.

◇ 단점 : 한계
현대 로우 코드는 놀랄만한 기능을 갖고 있지만, 개발자가 아닌 사람을 경력이 많은 개발자로 바꿔 놓지는 못한다. 사용자는 컴퓨터 작동 방식에 대한 기본적인 느낌, 개념을 갖고 있어야 한다. 예를 들어, 스프레드에 정통한 사람들은 이런 도구 사용에 큰 문제가 없겠지만, 워드 프로세서 여백 조정에도 겁을 내는 사람들이 갑자기 3개의 앱을 마법같이 만들어 낼 수 없는 법이다. 이런 도구들은 많은 귀찮은 작업들을 처리해주지만, 컴퓨터 연산과 현재 컴퓨팅 환경의 기본적인 한계들을 벗어날 수는 없다.


X