우리가 알고 있는 프로그래밍의 종말입니다 -- 다시 말입니다
AI가 더 많은 소프트웨어 개발 작업을 맡게 됨에 따라 개발자는 결국 코딩 도구보다 학습 모델로 더 많이 작업하게 될 수 있습니다. 그리고 그것은 힘을 실어줍니다.
지난 수십 년 동안 다양한 움직임, 패러다임 또는 기술의 급증(뭐라고 부르든 간에)은 소프트웨어 세계를 뒤흔들었고, 많은 지루한 프로그래밍 작업을 최종 사용자에게 넘겨주거나 더 많은 프로세스를 자동화할 것을 약속했습니다. CASE 도구, 4GL, 객체 지향 프로그래밍, 서비스 지향 아키텍처, 마이크로서비스, 클라우드 서비스, PaaS(Platform as a Service), 서버리스 컴퓨팅, 로우코드 및 노코드는 모두 이론적으로 소프트웨어 개발의 번거로운 부담을 덜어주었습니다. 또한 잠재적으로 개발자의 고용 안정성을 위협할 수 있습니다.
그러나 우리는 여기에 있습니다. 소프트웨어 개발자는 그 어느 때보다 바쁘고 기술에 대한 수요는 계속 증가하고 있습니다.
"클라우드가 처음 대중화되기 시작하고 기업들이 Office 365로 마이그레이션하기 시작했을 때 모든 사람들이 IT 전문가는 곧 일자리를 잃게 될 것이라고 말했던 것이 기억납니다"라고 Pluralsight의 저자인 Vlad Catrinescu는 말합니다. "우린 아직 여기 있고 그 어느 때보다 바쁘다."
문제는 개발자의 업무가 궁극적으로 어떻게 발전할 것인가 하는 것입니다. 애플리케이션 개발 및 유지 관리에 적용되는 인공 지능이 마침내 낮은 수준의 코딩을 과거의 일로 만들 가능성이 있습니다.
예를 들어, Fixie.ai 의 CEO이자 공동 설립자인 Matt Welsh는 향후 10년 이내에 "프로그래밍은 쓸모가 없어질 것"이라고 예측합니다. "나는 '프로그램을 작성한다'는 전통적인 생각이 멸종을 향해 가고 있다고 믿는다"고 그는 컴퓨팅 기계 협회(Association for Computing Machinery)가 최근 발표한 기사에서 예측했다. "실제로, 매우 전문화된 응용 프로그램을 제외한 모든 응용 프로그램의 경우, 우리가 알고 있는 대부분의 소프트웨어는 프로그래밍이 아닌 훈련된 AI 시스템으로 대체될 것입니다."
웰시는 "모든 것이 GPU 클러스터에서 실행되는 수천억 개의 매개변수 모델을 필요로 하는 것은 아니기 때문에 간단한 프로그램이 필요한 상황에서는 이러한 프로그램 자체가 직접 코딩하는 것이 아니라 AI에 의해 생성될 것"이라고 덧붙입니다.
그렇다면 IT 전문가와 개발자의 역할은 정확히 무엇일까요? Catrinescu는 새로운 세대의 자동화 또는 로우 코드 개발 솔루션이 실제로 "IT 전문가와 개발자가 더 까다로운 애플리케이션에서 작업할 수 있도록 힘을 실어줍니다. IT 부서는 엔터프라이즈 애플리케이션과 복잡한 애플리케이션 및 자동화를 구축하는 데 집중하여 기업에 많은 가치를 더할 수 있습니다."
아주 최근까지만 해도 "개발의 초점은 엔지니어링을 더 잘 활용하거나 더 광범위한 코드 작성자 풀에서 더 많이 재사용하는 것이었습니다"라고 최고 크리에이티브 기술자이자 argodesign의 공동 설립자인 Jared Ficklin은 말합니다. "이로 인해 오케스트레이션을 용이하게 하는 도구가 개발되었으며, 이를 통해 일반 애플리케이션 개발자는 그래픽 인터페이스를 사용하여 머신 러닝 전문가가 작성한 스킬이라는 코드 모듈을 사용하여 AI 솔루션을 오케스트레이션할 수 있습니다. 마찬가지로, 이를 통해 비즈니스의 주제 전문가는 인터페이스를 사용하여 전체 캠페인을 조정할 수 있습니다."
이러한 머신 러닝 지원 도구는 "요구 사항을 수집하고 엔지니어링을 활용하는 데 도움이 된다"고 Ficklin은 덧붙입니다. "빈틈이 있는 곳에서는 코드 작성자가 뛰어들어 그 빈틈을 메워야 합니다. 이 모든 경우에서 아키텍처는 유지 관리해야 할 상호 운용성 및 보안 지점이 많기 때문에 IT 부서에서 계속 처리합니다."
AI와 머신 러닝의 출현과 급속한 발전으로 훈련 모델은 매우 근본적인 수준에서 코딩을 대체할 수 있다고 Welsh는 예측합니다.
CoPilot과 같은 AI 코딩 비서는 내가 설명하는 것의 표면을 긁고 있을 뿐입니다. 물론 미래의 모든 프로그램은 궁극적으로 AI에 의해 작성될 것이고 인간은 기껏해야 감독 역할로 격하될 것이라는 것은 완전히 명백해 보입니다. 지난 몇 년 동안 AI 분야에서 일하면서 배운 것이 있다면 점점 더 커지는 AI 모델의 힘을 과소평가하기가 매우 쉽다는 것입니다. 나는 Github의 CoPilot이 프로그래머를 대체하는 것과 같은 것에 대해 이야기하는 것이 아닙니다. 나는 프로그램 작성의 전체 개념을 훈련 모델로 대체하는 것에 대해 이야기하고 있습니다.
코딩에서 완전히 벗어나면 애플리케이션 개발을 바라보는 새로운 방법이 열리며 보다 개념적이고 높은 수준의 비즈니스 역할이 주어집니다. "놀라운 방향에서 흥미로운 변화가 일어나고 있습니다"라고 Ficklin은 말합니다. "더 넓은 세상은 로우코드/노코드를 노드를 움직여 코드를 연결하는 시각적 인터페이스로 상상해 왔습니다. 이것이 바로 오케스트레이션이며, 여전히 코드가 어떻게 연결되는지에 대한 지식이 필요합니다."
Fricklin은 작동 중인 애플리케이션을 개발하고 업데이트하는 이 새로운 방법을 설명합니다. "현재 고객 중 하나인 Builder AI는 음성 대화에 대한 AI 분석을 사용하여 요구 사항을 수집한 다음 이러한 경험을 추가로 설계하고 이행하는 고유한 접근 방식을 취했습니다. "줌 통화에 추가할 수 있는 음성 비서도 있어 프로젝트 관리자에게 모바일 애플리케이션을 설명하는 사람의 말을 듣고 자동으로 기능을 캡처하고 나열합니다. 그런 다음 인간이 이를 편집하면 AI가 이를 앱의 아키텍처 패턴으로 페어링합니다. 코드 모듈이 있는 곳에서는 패치가 적용되고, 그렇지 않은 곳에서는 코드 작성자가 들어와서 모듈을 추가합니다. 시간이 지남에 따라 이 프로세스는 점점 더 자동화될 것입니다."
이는 더 많은 실시간 컴퓨팅을 의미한다고 Ficklin은 덧붙입니다. "소프트웨어의 대기 시간, 렌더링 및 어셈블리가 실시간으로 호출되는 곳입니다. Alexa에게 부엌을 정리하는 데 도움이 되는 앱을 만들어 달라고 요청하는 것을 상상할 수 있습니다. AI는 기능을 인식하고 올바른 패턴을 선택한 다음 실시간으로 무선으로 애플리케이션을 휴대폰이나 웨어러블 모바일 컴퓨터에 제공할 것입니다."
