banner
뉴스 센터
일관되고 높은 기준, 적시 배포 및 헌신적인 고객 중심

AI 코딩 도구의 과거, 현재, 미래

Oct 11, 2023

게티 이미지/iStockphoto

AI 지원 소프트웨어 개발 도구는 프로그래머에게 소프트웨어 소스 코드를 자동으로 제안하거나 생성합니다. 이것은 최첨단 기술처럼 느껴질 수도 있습니다. 어떤 면에서는 그렇습니다. 그러나 AI 지원 개발이 완전히 새로운 것은 아닙니다. 실제로 AI 또는 알고리즘 처리를 사용하여 코더가 작업을 수행하는 데 도움을 준 다른 도구까지 거슬러 올라가는 오랜 역사를 가지고 있습니다.

오늘날 AI 지원 개발이 중요한 이유를 이해하려면 과거를 이해하고 이러한 최신 도구가 이전 도구와 어떻게 다른지 확인하는 것이 중요합니다. AI 코딩 도구의 역사를 살펴보고 우리가 현재의 위치에 어떻게 도달했는지 살펴보겠습니다.

AI 지원 소프트웨어 개발은 ​​기계 학습, 신경망 및 기타 AI 측면을 사용하여 새 코드를 작성할 시기, 기존 코드를 어디에서 개선할지, 코드 내에 존재할 수 있는 오류를 식별하는 방법과 같은 사항에 관해 자율적인 결정을 내리는 것을 의미합니다. 코드베이스.

그러나 이러한 최신 AI 지원 개발이 등장하기 오래 전에 등장한 수많은 범주의 소프트웨어 개발 도구가 있습니다. 이러한 기존 도구와 접근 방식은 엄밀히 말하면 AI 지원 개발과 동일하지는 않지만 몇 가지 중요한 방식으로 이를 미리 구성했습니다.

지능형 코드 완성은 프로그래머가 작성하기 시작한 코드 줄을 완성하는 데 도움이 되는 일종의 개발 도구를 의미합니다. 또한 코드 내에서 발견된 비교적 간단한 구문이나 철자 오류를 수정할 수도 있습니다.

지능형 코드 완성의 간단한 예는 일반적으로 Bash와 같은 셸 스크립트와 관련된 명령줄 완성 기능입니다. Ubuntu와 같은 Linux 기반 시스템에서 터미널을 여는 경우 문자 한두 개를 입력하고 Tab 키를 누르십시오. 터미널은 초기 문자 "bas"를 사용하여 이 예에 표시된 것처럼 초기 문자를 기반으로 입력할 수 있는 유효한 명령 목록으로 응답합니다.

비슷한 방식으로, 터미널은 사용자가 명령을 잘못 입력한 경우를 감지하고 사용자가 입력하려고 했던 내용에 대한 제안을 제공합니다.

지능형 코드 완성은 프로그래머들이 애플리케이션에 문제를 일으킬 수 있는 오타를 감지할 수 있는 기본 맞춤법 검사 기능을 사용하여 코드의 정확성을 향상시킬 수 있다는 것을 깨달은 1950년대로 거슬러 올라갑니다. 물론 지능형 코드 완성은 AI 지원 개발 또는 코드 검사와 동일하지 않으며 대신 사전 구성된 유효한 입력 옵션 목록과 사용자 입력을 비교하는 것과 같은 오래된 검증 방법에 의존합니다.

로우 코드 개발 도구를 사용하면 개발자와 기술 지식이 없는 사용자가 수동 코딩을 거의 사용하지 않고 소프트웨어를 작성할 수 있습니다. 지능형 코드 완성 도구와 달리 로우 코드 개발 플랫폼은 개별 코드 줄을 완성하거나 검증하는 데 도움이 되는 것이 아니라 전체 프로그램을 작성하도록 설계되었습니다.

로우 코드 프로그래밍 도구는 AI를 사용하지 않습니다. 대신 사용자가 소프트웨어를 만들기 위해 함께 꿰매는 사전 구축된 코드 모듈에 의존합니다. 이는 로우 코드 도구가 사전 구성된 모듈이 지원하는 애플리케이션 유형을 구축하는 데만 사용되기 때문에 일반적으로 더 좁은 사용 사례 세트를 지원한다는 것을 의미합니다.

AI 지원 개발만큼 혁신적인 접근 방식은 아니지만 로우 코드 개발 개념은 FOCUS 및 SQL과 같은 4세대 프로그래밍 언어가 처음 등장한 1970년대부터 존재해 왔습니다.

수년 동안 개발자들은 코드베이스에 묻혀 있는 보안 취약성, 버그 또는 기타 문제를 찾기 위해 소스 코드를 자동으로 구문 분석하는 정적 코드 분석 도구를 사용해 왔습니다. 정적 코드 분석 도구는 일반적으로 개발 프로세스가 아닌 배포 후 소스 코드에서 실행됩니다. 이는 빌드 주기 시작부터 관련된 AI 지원 개발 도구와는 극명한 대조를 이룹니다.

그러나 소스 코드 분석기는 전통적으로 분석을 수행하기 위해 AI에 의존하지 않지만 DeepCode와 같은 도구는 정적 코드 분석과 기계 학습의 개념을 결합하여 이러한 유형의 실시간 코드 검색을 촉진하기 시작했습니다.