새로운 개발 패러다임과 그에따른 개발자의 역할 변화
‘소프트웨어 개발의 민주화‘라는 말이 있다. 코드가 전혀 필요 없거나 거의 필요없는 No-code / low-code 개발 플랫폼이 등장함에 따라 특정 그룹만이 수행할 수 있었던 소프트웨어 개발을 이제 많은 사람들이 만들고 누릴 수 있게 되었다는 말이다. No-code Platform들의 소개 페이지를 가볍게 읽어보면 쉽게 내가 원하는 웹사이트나 앱 같은것들을 나도 만들 수 있다는 것을 알게된다. 이제 정말로 누구나 앱 개발자가 될 수 있는 세상이 되었다.
개발 진입장벽의 변화.
컴퓨터공학을 전공하지 않은 개발자분들이 간혹 계시지만 여전히 프로그래머 분야는 컴퓨터를 전공한 사람이 다수를 차지한다. 우리나라 컴퓨터공학과 커리큘럼을 살펴보면 기초에 해당하는 프로그래밍 기초수업은 1학년때 배우지만 본격적인 개발 관련 과목은 2학년 전공 필수 과정부터 배치되어 있다. 프로그래밍 언어 습득은 개발자가 되는데 필수적인 역량이다. 많은 비개발자들이 개발자를 이해해보겠다는 결심을 가지고 파이썬이나 자바 기초 코스를 듣지만 이것만으로는 턱없이 부족하다. 수많은 실전 프로그래밍 경력이 뒷받침 되어야만 기대하는 수준의 동작하는 소프트웨어를 만들 수 있다.
하지만 세상이 달라졌다. 쓸만한 웹사이트를 만들고싶다면 개발자를 찾아가는 것 보다, 어떤 플랫폼이 이를 더 잘 만들어주는지 찾는것이 효율적이다. Webflow, Wix, Bubble같은 플랫폼은 내가 원하는대로 웹사이트를 만들어주는데 코드를 이해하고 작성할 필요가 전혀 없다. 모바일 어플리케이션을 만들고 싶다면 Adalo, Glide, Thunkable같은 플랫폼을 찾아가면 된다. 손쉽게 마우스로 요소들을 배치하다보면 완벽하지 않더라도 충분히 내가 원하는 바를 달성할 수 있다. 그럼 미래에는 어떻게 개발이 변할까? 아마도 AI를 이용해 자연어를 코드로 변환해 소프트웨어 개발을 하는 세상이 오지 않을까 예측한다. 이미 많은 AI 101클래스에서 이런것들을 소개하고 실습해볼 수 있게 해준다. 개발 진입장벽은 예전과 다르게 많이 문턱이 낮아졌다.
새로운 개발자 계층의 등장.
‘시민 개발자‘라는 단어가 있다. 전문 코딩 지식이 없어도 노코드/로우코드 플랫폼을 활용해 개발하는 사람들을 말한다. 개발을 해 줄 사람은 없고 디지털 전환은 코앞에 도래한 환경에서 노코드 플랫폼이 기술적인 지원을 해주니 직접 개발을 수행하는 사람들이 발생하는 흐름으로 자연스럽게 이어졌다. 이들중에는 당연하게도 비전공자들이 많다. 이들은 레거시 개발자들의 도움 없이도 본인들이 원하는 것들을 만들어낸다. 다만 보안적 측면이나 성능까지 담보하지는 못한다. 여러가지 플랫폼이 안고있는 한계를 인정한다고 해도 이런 개발자 계층의 등장은 의미가 있다.
앱 개발을 하는 상황에서 시민개발자인 UX디자이너의 사례를 예로 들어보자. 당장 개발자의 지원받아 실제 앱을 만들기 어려운 상황이다. 이때 Adobe XD나 Protopie 같은 UX Prototyping 툴을 이용해 직접 본인의 생각을 앱으로 제작할 수 있다. 실제 회사제품으로 만들기 전 단계에서 생각을 구현해내고 실제로 어떤 느낌인지 확인해 볼 수 있다. 개발자 입장에서는 기획 문서만 보고 이해하는 것 보다 구현된 결과물을 보고 이해하는것이 수월하며 프로토타이핑 단계에서 사용되지 않을 코드를 생산하는 비효율을 줄일 수 있다는 점도 좋다.
전문 개발자의 새로운 역할.
레거시 개발자들을 부르는 호칭이 이제 ‘전문 개발자‘로 격상되었다. 시민 개발자들과 구분을 위한 용어이지만 그들이 해야하는 역할을 나타내기도 한다. 이들은 이제 전문가로서 시민개발자들이 할 수 없는 영역을 수행하게 된다.
사내 시스템이나 고객을 위한 서비스를 하나의 플랫폼이라고 봤을 때 플랫폼 전체를 설계하는 아키텍트로서의 역할이 있다. 복잡한 비즈니스 로직을 구현하고, 보안과 확장성을 관리하며, 전체 시스템의 안정성을 책임지는 것이 전문 개발자의 몫이다. 시민 개발자들이 만든 애플리케이션들이 안전하게 동작할 수 있는 기반을 제공하고, 필요한 API와 개발 가이드라인을 제시하는 것도 중요한 역할이다. 또한 전문 개발자들은 시민 개발자들이 만든 솔루션들을 검토하고 필요한 경우 최적화하거나 보완하는 역할도 수행한다. 특히 성능, 보안, 확장성 측면에서 전문적인 지식이 필요한 부분들을 책임지게 된다. 이는 마치 건축에서 인테리어는 다양한 사람들이 할 수 있지만, 건물의 구조와 안전성은 전문 건축가가 책임지는 것과 비슷하다.
결론.
고급 개발자로 성장해나감에 따라 컴퓨터공학의 기초가되는 ‘자료구조론’ 이나 ‘운영체제‘같은 과목을 얼마나 깊이 이해하고있는지가 중요해 진다. 요구사항을 구현하는것을 넘어서 효율적이고 안정적으로 동작하며 수행속도도 뛰어난 코드를 구현하는것이 중요하기 때문이다. 노코드/로우코드 플랫폼이 촉발한 소프트웨어 개발 민주화는 결과적으로 개발 파이를 키우는 좋은 영향을 줄 것이라고 생각한다. 마치 ’이케아’ 매장이 한국에 들어온다고 모든 가구/인테리어 업체가 도산하지 않는 것과 같다. 실력있는 업체는 더 커진 시장에서 더욱더 성과를 내고 더 높은 입지를 차지할 것이라고 생각한다.