vol.39
vol.39
컴퓨터 프로그램이란 뭘까요? 여러 가지 정의를 내릴 수 있겠지만, 저는 우리에게 필요한 어떤 일을 대신해 주는 것이라고 얘기합니다. 프로그램(Program)이란 말이 그렇잖아요? 축제 프로그램이 그 행사에서 짜인 일정을 말하는 것처럼, 원래는 차근차근 순서대로 뭔가를 하는 걸 말합니다. 그래서 프로그램을 짜는 일, 즉 프로그래밍은 컴퓨터에게 이렇게 순서대로 처리하라고 명령하는 일입니다. 왜 할까요? 초기 컴퓨터 에니악이 대포의 탄도 계산을 위해 만들어진 것처럼, 우리는 어떤 이유가 있어서 프로그래밍합니다. 그러니까 컴퓨터 프로그램은, 컴퓨터를 이용해 어떤 일을 하기 위한 도구라는 말이죠.
그런데 이렇게 명령하기가 쉽지 않습니다. 컴퓨터는 원래 계산기라서, 자기가 아는 말만 알아듣기 때문입니다. 많은 사람이 컴퓨터 프로그래밍을 ‘몹시 어려운 일’, ‘특별한 교육을 받아야만 할 수 있는 일’로 여기는 이유입니다. 음, 틀린 말은 아닙니다. 외국어를 배우는 것과 비슷해서, 쉽지 않죠. 그런데 만약, 통역해주는 사람이 있다면 어떨까요? 해외 단체 여행할 때 안내자가 함께하는 것처럼, 사람 말을 컴퓨터 말로 바꿔주는 가이드가 있다면? 아마 컴퓨터 프로그래밍이 좀 쉬워질 겁니다.
이렇게 컴퓨터 언어를 잘 몰라도 프로그래밍을 할 수 있도록 도와주는 기술을, 직접 프로그램 코드를 작성할 게 적다는 의미에서 로우코드(Low Code)라 부릅니다. 때론 아예 몰라도 짤 수 있다는 의미에서 노코드(No code)라고 부르기도 하고요.
정말 컴퓨터 언어를 몰라도 프로그램을 짤 수 있을까요? 그렇기도 하고, 아니기도 합니다. 예를 들어 에어 테이블이란 서비스가 있습니다. 인터넷으로 스프레드시트와 데이터베이스를 통합한 형태의 도구를 제공합니다. 이걸 이용하면 회사 업무에 필요한 프로그램을, 간단히 만들어 쓸 수 있습니다. 얼핏 보면 웹으로 쓰는 스프레드시트 같은 형식이라 쓰기도 어렵지 않습니다. 다시 말해, MS 오피스에 딸린 엑셀을 쓸 수 있다면 업무용 프로그램을 만들어 쓸 수 있다는 말입니다. 실제로 위워크에서도 에어 테이블을 이용해 집기를 관리했고, 우리나라 여러 스타트업도 자산이나 프로젝트 관리에 이 서비스를 이용하고 있습니다.
조금 더 복잡한 프로그램을 만들거나, 스마트폰 앱을 만드는 일도 가능합니다. 예를 들어 MS가 제공하는 파워앱스 플랫폼이 있습니다. 이 플랫폼을 이용하면 다양한 시나리오에 맞는 앱을 빨리 개발해서, PC나 스마트폰 등 여러 기기에서 사용 가능한 앱을 만들 수가 있습니다. 하나의 템플릿을 선택해 수정해서 사용할 수도 있고, 다른 여러 가지 기능을 클릭&드래그해서 넣을 수도 있습니다. 디자인 역시 그냥 끌어다 놓으면 완성됩니다. 엑셀에서 함수 기능을 쓰거나, 파워포인트에서 문서를 만드는 느낌입니다. 참, 쉽죠?
실제로 로우코드 플랫폼 회사는 이런 기술을 이용하면 누구나 프로그래밍을 할 수 있고, 필요한 앱을 빠르게 개발해서 활용할 수 있다고 주장합니다. 레고 블록처럼 조립하면 쉽게 앱을 만들 수 있다고 합니다. 시간과 노력을 줄일 수 있다면, 싫어할 사람이 드물 겁니다. 문제는 ... 해보시면 압니다. 밥 로스 아저씨가 그리는 그림과 똑같아요. 참 쉽죠? 라고 말하는 일치고 쉬운 일이 없습니다. 내가 쓴 연애편지를 다른 사람이 번역할 수는 있지만, 편지 내용을 대필할 수는 없으니까요.
좋은 질문이 없으면 해결책을 찾을 수 없고, 해결책을 모르면 컴퓨터에 뭐 하라고 명령도 하지 못합니다. 많은 경우 실무 직원이 IT 부서에 뭔가를 요청할 때, 서로 말이 잘 안 통하는 이유입니다. ‘이렇게 됐으면 좋겠다’라고 결과만 제시하지, 이렇게 해서 바꾸면 좋겠다고는 말 안 하거든요. 결국 로우코드 기술도 어떤 문제를 해결할 방법을 생각할 수 있는 사람, 다시 말해 프로그래밍에 대해 어느 정도 아는 사람이 쓰기 쉽지, 전혀 모르는 사람이 뚝딱 프로그램을 만들어 내는 마법의 도구는 아닙니다. ...그럴 수 있다면 진작 IT업계에 혁명이 일어났죠..
자, 그런데 요즘 로우코드에 관한 관심이 꽤 큽니다. MS 파워앱스를 비롯해 고객 관리 솔루션 업체 세일즈포스에서 내놓은 라이트닝 플랫폼은 이미 유명하고, 올해 들어 아마존과 구글에선 각각 허니 코드와 비즈니스 애플리케이션 플랫폼을 발표하며 시장에 들어왔습니다. 에어 테이블은 25억 달러가 넘는 가치를 가진 기업이라고 인정받아, 1억 8,500만 달러를 추가 투자받았습니다. 생각보다 쉽게 애플리케이션을 만들지도 못하는데, 왜 이런 테크 대기업들이 움직이고 있을까요? 로우코드 자체가 새로운 개념도 아니고, 몇 년 전부터 유행하던 흐름인데, 왜 이제 와 불이 붙는 걸까요?
간단합니다. 이 시대에 필요하기 때문입니다. 누구나 앱을 만들 수는 없지만, 앞서 말했듯 조금만 공부하면 앱을 만드는 시간과 노력을 많이 줄여주긴 합니다. 복잡한 과정을 단순하게 만들어주니까요. 원하면 직접 프로그램을 만들어 쓰면 되기에, 실제 업무에 적합한 앱을 만들 수도 있습니다. 인재를 찾기 쉽지 않은 상황에서, 남이 프로그램을 만들어줄 때까지 기다릴 필요도 없죠. 요즘처럼 업무의 디지털 전환이 디지털 트랜스포메이션과 같은 말입니다. 빠르게 요구되는 상황에서, 이런 장점은 매우 중요합니다. 예, 이게 다 코로나19 때문입니다. 살고 싶으면 빨리 변하라고 등 떠밀고 있는 거죠.
다만 보안 문제도 있고 기능상 한계가 있기에, 주로 모바일 앱이나 웹 사이트 제작, 업무 자동화를 위해 많이 쓰이는 편입니다. 실사용자가 직접 쓰는 규모가 작은 웹 앱에 알맞습니다. 별도의 프로그램 형태보다는 클라우드 서비스를 이용하는 웹 앱이 많은 편이고요. 정식 개발 이전에 프로토타입이나, 제안서 등을 내기 위해 아이디어를 구현하는 용도로도 쓰입니다. 아, 깜빡 잊을 뻔했네요. 하나 더 알려드리면, 2020년은 로우코드에겐 아주 특별한 해입니다. 편리한 기술이 세상을 도울 수 있다는 걸 보여줬거든요.
시민 개발, 시티즌 디벨롭먼트(Citizen Development)라는 개념이 있습니다. 프로그래머가 아닌 사람이 필요한 프로그램을 직접 만드는 걸 가리킵니다. 코로나19가 들이닥친 미국에서, 이들 시민 개발자들은 로우코드 플랫폼을 활용해 적극적인 대응에 나섰습니다. 예를 들어 밀키트 배달 플랫폼 선 바스켓 같은 회사는, 개발자를 구할 수도 없는 상황에서 고객 주문이 밀려드는 상황을 맞이했습니다. 이들은 로우코드 플랫폼을 이용해 자연어처리 챗봇을 만들어, 고객 주문을 처리할 수 있었습니다.
UC 버클리 대학은 어땠을까요? 유전자 가위(CRISPR)를 연구하던 실험실을 로우코드 툴을 이용해 3주 만에 임시 코로나19 테스트 시설로 변경했습니다. 선생님은 원격 교육을 위한 앱을 만들고, 의료 단체는 코로나19에 대한 답변을 할 수 있는 챗봇을 만들어 배포하기도 했습니다. 긴급 대출 신청을 빠르게 하기 위한 도구가 만들어지기도 했고, 뉴욕에선 로우코드 플랫폼을 이용해 코로나19 포털 사이트를 빠르게 만들었습니다. 이런 세상에서, 로우코드는 살기 위한 기술이 됩니다.
앞으론 어떻게 될까요? 시빅 해킹(civic hacking)이란 개념이 있습니다. 시민 개발자가 나서서 공공 문제를 해결하는 걸 말합니다. 마스크 판매 장소를 알려주는 마스크맵이나 코로나19 확진자 동선을 보여주는 코로나맵 서비스가 그런 사례입니다. 디지털 원주민인 Z세대는 이런 소프트웨어 활용에 능숙한 세대입니다. 최근 MIT에선 AI를 이용해 스스로 프로그램을 짤 수 있는 알고리즘을 개발하기도 했습니다.
기계프로그래밍 3요소
© 인텔(Intel)
앞으로, 시민 개발자와 로우코드를 중심으로 인공지능과 시빅해킹, Z세대는 한 자리에서 만날 가능성이 큽니다. 이 모든 흐름이 만날 미래는, 과연 어떤 모습이 될까요? 아이디어를 쉽게 프로그램으로 구현할 수 있는 세상, 파워포인트 문서가 아니라 실제 작동하는(것처럼 보이는) 앱을 보여주며 제안하는 세상, 어쩌면 네이버 지식인에 질문하듯 이런 프로그램 하나만 짜주세요!하고 부탁하는 세상이 올지도 모릅니다. 예측하긴 어렵지만, 하나는 꼭 기억하면 좋겠습니다. 도서 대여점 사장 아저씨의 한글 문서처럼, 어쨌든 프로그램은, 우리가 뭔가를 하기 위한 도구일 뿐이라는 걸요.