AI가 소프트웨어 개발에 미치는 영향에 대한 진실
AI가 더 빠른 소프트웨어 출시를 촉진할 수 있습니까? 수동으로 코드를 작성하는 사람이 줄어들까요? 그리고 이것이 우리가 알고 있는 소프트웨어 개발의 끝입니까? AI가 개발 작업에 미치는 영향과 로우 코드의 역할은 무엇인지 살펴보겠습니다.
올해 초 두바이에서 열린 세계정부정상회의(World Government Summit)에서 엔비디아 CEO 젠슨 황(Jensen Huang)은 흥미로운 말을 했습니다. "지난 10-15년 동안 이런 무대에 앉은 거의 모든 사람들은 아이들이 컴퓨터 과학을 배우는 것이 매우 중요하다고 말하곤 했습니다. 그리고 실제로는 거의 정반대입니다." 그것이 소동을 일으켰습니까? 어느 정도는 그렇습니다.
하지만 그의 말이 옳은 것일까? 현실이 더 복잡하고 AI가 소프트웨어 개발 작업에 미치는 영향이 여전히 관찰되고 논의되고 있기 때문만은 아닙니다.
생성형 AI, 로우 코드, 그리고 새로운 개발 시대
이제 Qodo(이전의 CodiumAI)와 같은 자율 생성형 AI 시스템이 코드 생성, 단위 테스트 작성 및 문서 작성을 위한 AI 비서를 제공합니다. 그런 다음 AI 기능(App Builder AI), UI 구성 요소, 코드 생성 등을 제공하여 개발 주기를 간소화하는 App Builder와 같은 로우 코드 도구가 있습니다.
App Builder AI: 앱 개발을 간소화하는 방법에서 자세히 알아보기
AI 기반 코드 생성 도구는 이미 개발자가 코드를 작성하는 방식을 수정했지만 소프트웨어 개발 작업이 완전히 대체되기까지는 갈 길이 멉니다. 소프트웨어 개발 역학이 크게 변화했지만 현재로서는 AI 혁명이라고 보기 어렵습니다.
진실은 AI가 개발자의 역할을 없애는 것이 아니라 다음과 같은 방식으로 개발자의 역할을 강화하는 역할을 한다는 것입니다.
- 전문 개발자보다 경험이 부족한 프로그래머에게 더 많은 영향을 미칩니다.
- 팀이 아키텍처 방향 및 품질 검사를 수행해야 합니다.
- 신입 개발자가 일상적이고 반복적인 작업을 처리할 수 있도록 지원
- 프로그래밍 속도 향상 – 더 많은 코드를 더 빠르게 작성
- 차세대 생산성 붐을 일으키지만 기술 향상과 적응을 요구합니다.
- 비즈니스 가치, 민첩성 및 성장 창출
따라서 컴퓨터 프로그래밍은 여전히 대부분의 경우 인간 중심의 추구로 남을 것으로 예상됩니다. Jensen Huang이 말한 것에 제가 동의하는 한 가지가 있다면, 그것은 이것입니다: "세상 모든 사람들은 이제 프로그래머입니다. 이것이 바로 인공지능의 기적입니다. 이제 당신은 컴퓨터가 시키는 일을 할 수 있게 되었습니다." 그러나 인간의 역량과 능력은 여전히 소프트웨어 개발의 핵심입니다.
맥킨지(McKinsey)는 '생성형 AI의 경제적 잠재력(The Economic Potential of Generative AI)' 보고서에서 "생성형 AI의 시대는 이제 막 시작되고 있다. 이 기술에 대한 흥분은 뚜렷하며 초기 조종사는 매력적입니다. 그러나 기술의 이점을 완전히 실현하려면 시간이 걸릴 것이며 비즈니스 및 사회의 리더는 여전히 해결해야 할 상당한 과제를 안고 있습니다. 여기에는 생성형 AI에 내재된 위험을 관리하고, 인력에게 필요한 새로운 기술과 역량을 결정하고, 새로운 기술을 재교육하고 개발하는 것과 같은 핵심 비즈니스 프로세스를 재고하는 것이 포함됩니다."
소프트웨어 개발자의 역할 변화
처음에는 생성형 AI와 로우코드 플랫폼이 기존 프로그래머를 대체하고 코딩 기술을 쓸모없게 만들 수 있다고 우려했는데, 이는 오해입니다. 반대로 로우코드 개발 및 AI는 반복적인 작업을 자동화하여 프로세스를 간소화하여 개발자가 핵심 비즈니스 로직 및 기능 개발에 더 집중할 수 있도록 하여 반복적인 기술 작업과 협업 과제에 소요되는 시간을 줄이는 것을 목표로 합니다.
맥킨지(McKinsey)는 이를 지적합니다. "생성형 AI는 일부 활동을 자동화하여 개별 작업자의 능력을 강화하여 업무의 해부학적 구조를 바꿀 수 있는 잠재력을 가지고 있습니다. 생성형 AI 및 기타 기술은 오늘날 직원의 시간 중 60%에서 70%를 차지하는 작업 활동을 자동화할 수 있는 잠재력을 가지고 있습니다."
결과적으로 AI가 소프트웨어 개발에 미치는 영향으로 기술 및 비기술 기술의 혼합을 촉진하는 변화가 있습니다. 개발자는 이해 관계자 간의 격차를 해소하고, 요구 사항을 모듈식 구성 요소로 변환하고, 자동화를 가장 효율적으로 적용할 수 있는 위치와 방법을 식별하는 방법을 배웁니다.
또한 로우코드 플랫폼과 AI를 사용하면 이러한 도구로 인해 수동 코딩의 필요성이 제거됨에 따라 비기술자를 포함한 더 광범위한 전문가 풀에게 더 많은 기회가 제공됩니다. 앱 개발에 점점 더 많이 참여하는 시민 개발자의 부상이 눈에 띕니다. 고위 경영진과 이해 관계자는 로우코드 도구를 융합 팀을 하나로 모으고 개발 생산성을 높이는 도구로 사용하는 방법을 배웁니다.
반면에 개발자의 역할에는 이제 로우 코드 프로젝트의 감독, 코드 검사(App Builder와 같은 로우 코드 도구가 Angular, Blazor, Web Components, React 등과 같은 인기 있는 프레임워크에 대한 코드를 생성함), 모범 사례 안내 등이 포함됩니다.
그렇다면 프로그래머의 직업 안정성이 위험에 처해 있는 것일까?
특정 AI 제한 사항이 있기 때문에 아직은 아닙니다. AI의 발전과 로우코드 개발은 고용 안정을 직접적으로 위협하는 것이 아니라 개발자의 업무 유형을 변화시킵니다. 이러한 플랫폼은 반복적인 코딩 작업을 자동화하지만, 로우코드 솔루션이 독립적으로 처리할 수 없는 복잡한 시스템 설계, 사용자 지정 및 높은 수준의 통합에는 여전히 개발자가 필수적입니다.
수동 코딩의 필요성이 줄어들면 개발자는 아키텍처, 문제 해결 및 프로젝트 수명 주기 내에서 보다 전략적인 역할과 같은 더 높은 가치의 작업에 집중할 수 있습니다. 기업이 제공을 가속화하기 위해 AI와 로우 코드를 점점 더 많이 채택함에 따라 이러한 플랫폼을 최적화하고 확장하는 방법을 이해하는 개발자는 여전히 중요합니다. 그들의 전문 지식은 AI 기반 워크플로우를 안내하고 관리하는 역할로 발전하여 직무 안정성을 향상시킵니다.
AI 및 로우 코드는 개발 워크플로우에 어떤 영향을 미칩니까?
로우 코드와 AI가 소프트웨어 개발 작업에 미치는 영향은 이와 같이 작동하며, 더 빠른 프로토타이핑을 가능하게 하고, 초기 코딩 워크로드를 줄이며, 이해 관계자가 초기에 검토할 수 있는 시각적이고 종종 WYSIWYG 인터페이스를 통해 피드백 주기를 단순화하여 워크플로를 간소화합니다. 보다 협력적이고 반복적인 개발을 허용하여 작업 흐름을 변경합니다. 개발자가 아닌 사용자도 참여할 수 있으므로 요구 사항 수집 및 초기 단계 수정 속도가 빨라집니다.
그러나 이러한 자동화 플랫폼에는 생성된 구성 요소가 더 광범위한 아키텍처 및 성능 표준에 부합하는지 확인하기 위한 감독도 필요합니다. 전반적으로 프로젝트 일정을 가속화하지만 개발자가 때때로 사용자 정의 및 최적화를 위해 개입해야 하기 때문에 균형이 필요합니다.
소프트웨어 개발에서 AI가 할 수 있는 것과 할 수 없는 것
현재 AI를 통한 코딩은 아직 최적이 아닙니다. AI와 로우코드가 작동하는 컨텍스트 제한은 여전히 존재합니다. 이러한 도구는 재사용 가능하고 간단한 모듈식 코드 작성과 같은 프로그래밍 모범 사례에 부합하는 작고 단순하며 독립적인 코드 조각을 생성하는 데 가장 적합합니다.
양상 | 생성형 AI | 로우 코드 |
---|---|---|
코딩 접근법 | 확률론적 모델(Probabilistic Model) NLP 모델을 사용하는 경우 | 결정론적 모델(Deterministic Model) |
코드 생성 일관성 | 결과는 각 프롬프트에 따라 다르며, 동일한 질문을 여러 번 묻는 경우에도 마찬가지입니다 | 동일한 작업에 대해 동일한 출력을 생성하여 일관성을 보장합니다. |
사용 범위 | 작고 간단하며 독립적인 코드 조각을 생성하는 데 가장 적합합니다. | 자동화되고 일관된 엔드 투 엔드 솔루션을 구축하는 데 적합 |
상황 인식 | 코드 조각이 더 큰 시스템에 통합되는 방법에 대한 이해가 부족합니다. | 전체 시스템에 대한 포괄적인 이해를 바탕으로 운영되므로 응집력 있는 코드 솔루션을 생성할 수 있습니다. |
Best Practices와의 연계 | 모듈식 및 재사용 가능한 코드 작성을 지원하지만 전체적인 프로젝트 인식이 부족합니다. | 시스템 개발에 대한 일관된 접근 방식을 보장하고 자동화된 프로그래밍 관행을 준수합니다. |
제한 | 상황에 따라 제한되며, 복잡한 통합 및 사용자 지정을 위해 사람의 개입이 필요합니다. | 완전히 사용자 정의 가능한 솔루션을 제공할 수는 없지만 체계적이고 구조화된 개발에 탁월합니다. |
Infragistics의 제품 개발 관리자인 Zdravko Kolev는 다음과 같이 지적합니다. "시니어 개발자는 AI를 더 효과적으로 사용하여 더 나은 질문을 하고 그 대가로 더 우수하고 더 구체적인 답변을 받습니다. 컨텍스트를 덜 제공하는 주니어 개발자는 더 일반적인 응답을 받는 경향이 있습니다. Gen AI 또는 로우코드 솔루션을 사용하면 개발자의 생산성을 높이는 일반적인 기존 기능을 얻을 수 있으므로 반복적인 작업에 매우 유용합니다. 이를 통해 더 짧은 시간에 더 빠르고 더 높은 품질의 출력을 얻을 수 있습니다."
AI가 소프트웨어 개발에 미치는 영향은 덜 심각하지만, 로우 코드(매우 강력함에도 불구하고)는 완전히 사용자 정의 가능한 솔루션을 제공할 때 여전히 특정 제한 사항이 있습니다. 따라서 개발자는 더 이상 사용되지 않을 위험이 없습니다.
프로그래밍에서 품질과 보안은 어떻게 됩니까?
AI가 일자리에 미치는 영향은 더 빠른 소프트웨어 출시를 촉진한다는 것입니다. 이는 AI가 작성된 소프트웨어의 양을 증가시키지만 반드시 품질을 높이는 것은 아니라는 것을 의미합니다. 그 결과 고성능 미션 크리티컬 앱에 필요한 품질과 구조 없이는 스파게티 코드를 유지 관리하기 어려운 경우가 많습니다.
시간이 지남에 따라 수동으로 코드를 작성하는 사람이 줄어들게 됩니다. 특히 프론트엔드 솔루션의 경우 로우 코드는 짧은 시간에 상당한 가치를 제공합니다. 개발자는 더 높은 품질의 코드를 생성하기 위해 올바른 질문을 하는 방법을 아는 데 점점 더 집중하게 될 것입니다. 결국 AI가 소프트웨어 개발에 미치는 영향은 개발자들이 원하는 결과를 얻기 위해 AI 또는 로우코드 도구를 안내하는 방법을 정확히 알고 있는 숙련되고 신속한 엔지니어로 진화하도록 촉구할 것입니다.
그럼에도 불구하고 회사에는 코드와 프로그래밍 개념을 이해하고, 검토하고, 유지 관리하고, 앱이 모범 사례, 아키텍처 원칙 및 코딩 표준을 충족하는지 확인할 수 있는 사람이 여전히 필요합니다.