생성형 AI가 소프트웨어 개발 개선에 기여하는 7가지 방법

Alan Zeichick | Senior Writer | 2024년 10월 8일

생성형 AI는 셰익스피어 스타일의 소네트를 작성할 수도 있고, 원시 데이터 및 데이터 분석 결과를 기반으로 실용적인 사업 계획의 초안을 작성할 수도 있습니다. 적절한 입력값이 주어지고 충분한 훈련을 거친 생성형 AI는 제품 컨셉, 매력적인 광고 음악, 로고, 가격 정책에 대한 조언이 포함된 마케팅 계획 등의 작성 과정에 두루 기여할 수 있습니다. 따라서 생성형 AI가 소프트웨어 개발팀의 개발 생성 주기 전반을 지원하고, 나아가 자바, C++, JavaScript, SQL 등 기업이 선호하는 언어로 직접 코드를 작성하는 것 또한 전혀 특별할 것 없는 일입니다.

생성형 AI 시스템에게 있어 코딩은 영어, 스페인어, 라틴어로 특정한 운율과 박자를 갖춘 시를 쓰는 것과 다를 바 없는 작업입니다. 생성형 AI를 소프트웨어 개발 과정에 활용하면 큰 폭의 생산성 향상을 이뤄낼 수 있습니다. PwC의 분석가들에 따르면 생성형 AI 코드 생성 도구와 협업하는 개발팀은 즉시 20~50%의 성능 향상을 경험할 수 있습니다. 본문을 통해 더 자세한 내용을 살펴보겠습니다.

생성형 AI란 무엇인가요?

생성형 AI(GenAI)는 훈련 데이터를 바탕으로 추론해 새로운 콘텐츠를 생성할 수 있는, 최근 급격히 발전 중인 기술입니다. 생성형 AI 모델은 소프트웨어에 인코딩된 인공 신경망을 생성한 뒤 활용하는 방식으로 작동합니다. 신경망 중 다수는 수십억 개에서 수조 개에 달하는 특정한 매개변수(값)로 구성되며, 방대한 양의 자료를 처리하는 과정을 통해 '훈련'됩니다. 기능적이고, 안전하고, 효율적인 코드로 구성된 방대하고 다양한 예제 세트를 사용해 더 효율적으로 훈련받은 모델은 탁월한 프로그래머로 거듭날 수 있습니다.

생성형 AI 시스템은 대규모 언어 모델(LLM)을 구축하기 위한 훈련 과정에서 코드 작성을 학습할 때 특정 명령어 뒤에 올 명령어가 무엇일지 예측합니다. 예측이 완료되면 그 예측을 테스트합니다. 예측 결과가 정확하면 신경망 매개변수를 특정 방향으로 조정합니다. 예측 결과가 잘못되었으면 매개변수를 다른 방향으로 조정합니다. 충분한 반복을 거치면 생성형 AI 시스템은 훈련 데이터를 기반으로 결과를 생성하는 데 능숙해집니다. 훈련 목적에 부합하는 정확도를 달성한 생성형 AI 시스템은 입력 매개변수(프롬프트)를 기반으로 새로운 코드를 생성하는 임무를 수행합니다. 좋은 결과를 보인 모델은 운영 환경에서 바로 사용할 수 있습니다. 그렇지 못한 모델의 경우 AI 과학자들이 무엇이 잘못되었는지 파악해야 합니다.

좋은 소식은 코드 생성에 특화된 LLM을 귀사에서 직접 훈련할 필요가 없다는 것입니다. 주요 툴 공급업체들이 이미 그러한 LLM을 제공 중에 있습니다.

핵심 요점

  • 생성형 AI는 엄격한 문법과 규칙이 적용되는 코딩 언어 학습에 매우 효과적입니다.
  • 생성형 AI 훈련은 비용과 자원이 많이 들지만, 배포 완료된 시스템은 훨씬 적은 자원을 사용합니다.
  • 생성형 AI 기반 개발 도구는 개별 소프트웨어 개발자의 보조 역할 또는 팀의 완전한 구성원 역할을 수행할 수 있습니다.

소프트웨어 개발용 생성형 AI 알아보기

본 글이 작성되는 시점에서 복잡한 프로그램 작성을 요구하면 관련 프롬프트를 기반으로 즉시 사용 가능한 애플리케이션을 만들어 주는 생성형 AI 시스템은 아직 개발되지 않았습니다. 기술적으로 아직 그러한 단계에는 이르지 못했습니다. 그러나 생성형 AI 도구는 기업 개발팀의 업무를 보완하며 코드 품질 및 개인 생산성 향상에 기여하고 있습니다. 생성형 AI를 하나 이상의 역할을 수행하는 개발팀의 일원으로 간주하면 좋을 것입니다.

  • 개발팀은 범용 생성형 AI를 활용해 문제를 정의하고 개발자들을 위한 프로젝트 계획을 수립할 수 있습니다.
  • 인간 개발자는 생성형 AI에 인간이 작성한 코드의 품질을 평가하기 위한 테스트 케이스 생성을 지시할 수 있습니다.
  • 생성형 AI 시스템은 인간 개발자가 커스터마이징하거나, 완성하거나, 다른 코드 모듈에 통합할 수 있는 보일러플레이트 코드 또는 코드 스니펫을 생성하는 데 도움을 줄 수 있습니다.
  • 생성형 AI의 대표적인 사용 사례는 코드를 소프트웨어 구성 관리 시스템에 체크인하기에 앞서 버그나 보안 취약점을 검토하는 품질 관리를 지원하는 것입니다. 시스템은 기업의 코딩 표준, 또는 OWASP Top 10 보안 취약점 목록 등의 외부 기준을 바탕으로 코드베이스를 검토하고 찾아낸 문제를 강조 표시할 수 있습니다.
  • 생성형 AI 시스템은 마이크로서비스를 사용하는 시스템과 같은 복잡한 시스템의 아키텍처 설계를 지원할 수 있습니다.
  • 생성형 AI는 기존 코드를 검토하여 성능 개선 또는 리팩토링을 위한 아이디어를 제안할 수 있습니다. 또한 레거시 '스파게티' 코드를 분석하여 그 작동 방식을 파악하는 데에도 도움을 줄 수 있습니다.
  • 배포된 코드가 제대로 작동하지 않을 경우 생성형 AI에 적절한 프롬프트를 입력하면 결함의 근본 원인을 파악하고 해결 방안을 수립하는 데 도움을 줍니다.
  • 생성형 AI는 각 개발자가 실수를 저지르는 부분을 파악하고 더 나은 기법을 제안함으로써 그들의 기술 향상을 지원할 수 있습니다.

생성형 AI가 소프트웨어 개발을 위한 중요한 도구인 이유는 무엇인가요?

생성형 AI는 소프트웨어 개발 수명 주기의 모든 단계마다 개발팀의 생산성 향상에 기여하는 중요한 도구입니다. 오늘날의 기업들이 소프트웨어로 운영된다는 점은 의심의 여지가 없으며 생성형 AI의 중요성도 그만큼 부각됩니다. 워드 프로세서, 스프레드시트, 회계 및 인사 시스템 등 많은 소프트웨어는 상용 제품으로 구입할 수 있습니다. 그러나 기업의 경쟁 우위는 백엔드 운영, 웹사이트, 데이터베이스, 모바일 앱 등을 위한 맞춤형 소프트웨어를 개발할 수 있는 능력이 좌우합니다.

문제는 고품질 코드를 작성하려면 인하우스 또는 도급업체 개발자들의 시간과 전문성이 필요하다는 점입니다. 새로운 기회를 포착하거나 도전 과제를 해결하기 위한 애플리케이션을 개발해야 하는 시점에 개발자들은 이미 대기 중인 다른 프로젝트들을 처리해야 하는 경우가 많습니다. 개발자를 추가적으로 채용하고 온보딩하기 위해서는 많은 시간이 필요합니다. 그리고 시간은 곧 돈입니다. 생성형 AI를 활용하면 새로운 아이디어를 더 빨리 운영 환경에 투입할 수 있습니다. 이는 현금 창출 또는 절감, 직원 및 고객 만족도 향상, 기업의 사명 달성 등에 기여합니다.

소프트웨어 개발용 생성형 AI의 잠재적 이점

생성형 AI는 기업의 소프트웨어 개발팀에서 가치 있는 도구로 사용될 수 있으며, 기업은 개발자를 지원하는 다른 도구들과 같이 그 개선 효과를 정의, 측정, 평가할 수 있습니다. GitHub나 소스 코드 관리 시스템과 같은 현대 기술을 사용하는 모든 개발 플랫폼은 일일 코드 작성량과 코드 품질 등 개발자 및 팀의 성과와 관련된 메트릭을 정기적으로 수집합니다.

프로젝트 기획부터 아키텍처 설계, 코드 분석 및 Q&A에 이르는 전체 개발 수명 주기에 생성형 AI를 도입한 개발팀은 작업 속도가 현저히 빨라지는 현상을 종종 경험합니다. 생성형 AI가 개발팀을 도울 수 있는 몇 가지 영역은 다음과 같습니다.

  • 생산성 향상. 코드와 테스트 케이스를 AI가 생성한 후 사람이 검토하면 사람이 해당 과정을 단독으로 수행하는 것보다 더 빠르게 처리할 수 있습니다.
  • 오류 감소. 생성형 AI 시스템은 잘못된 변수명 사용이나 포인터 초기화 누락 같은 결함이 최소화된 코드 생성을 지원합니다. 이는 숙련된 개발자도 지루해할 수 있는 반복적이고 일상적인 작업에 특히 효과적입니다.
  • 코드 품질 향상. 생성형 AI는 논리적 오류, 보안 취약점, 비즈니스 사용 사례 요구사항을 반영하지 못한 부분 등을 식별하기 위한 코드 검토를 지원합니다.
  • 신속한 프로토타이핑. 생성형 AI는 운영 환경에 바로 적용하기에는 부적합할 수 있지만 이해관계자들에게 개념 증명을 위해 제시할 수 있는 모의 코드 제작을 지원합니다.
  • 비개발자를 위한 개발 접근성 향상. 생성형 AI는 비개발자가 채팅 창에 요구사항을 자연어로 입력하는 것만으로 간단한 프로그램을 생성할 수 있는 가능성을 제공합니다.

생성형 AI는 소프트웨어 개발을 어떻게 도울 수 있나요?

생성형 AI는 개별 개발자 및 개발팀이 생산성 향상을 통해 더 나은 품질의 소프트웨어를 더 빠르게 제작할 수 있도록 지원함으로써 기업의 소프트웨어 개발에 기여합니다. 특히 유용한 분야로는 소프트웨어 아키텍처 정의, 제품 계획 수립, 코드 생성 등이 있습니다.

생성형 AI는 반복적인 작업 지원, 다양한 프로그램에 공통적으로 사용되는 소위 '보일러플레이트 코드' 생성 등에도 강점을 보입니다. 인간 개발자는 이를 커스터마이징해 완성하거나 다른 곳에 재사용할 수 있습니다. 또한 생성형 AI는 소프트웨어 소스 코드의 결함 및 잠재적 문제(보안 취약점, 사용자 요구사항이나 기업 표준과 기능이 일치하지 않는 부분 등)를 검토하는 과정에도 도움을 줄 수 있습니다.

생성형 AI가 소프트웨어 개발 개선에 기여하는 7가지 방법

생성형 AI 기반 개발 도구는 많은 영역에서 개별 기업 소프트웨어 개발자의 어시스턴트, 또는 개발팀의 완전한 구성원 역할을 수행할 수 있습니다. 소프트웨어 설계부터 배포까지, 현재 생성형 AI가 기여할 수 있는 대표적인 분야는 다음과 같습니다.

1. 버그 탐지 및 디버깅. 생성형 AI 시스템은 코드 내 오류를 효율적으로 식별하고 수정하거나 수정 방안을 제안할 수 있습니다. 물론 코드의 결함 수정에 특화된 산업은 이미 존재합니다. 오픈소스 및 상용 도구는 소스 코드를 스캔해 시스템에 과부하가 걸렸을 때만 발생할 수 있는 미묘한 오류, 메모리 누수, 멀티스레드 실행 문제, 보호된 메모리에 대한 액세스 시도 등의 보안 또는 기능적 결함을 탐지할 수 있습니다.

생성형 AI는 여러 방식으로 버그 수정 작업에 가치를 더해 줍니다. 첫째, 프롬프트를 활용해 코드가 개발자나 이해관계자의 의도대로 동작할지 분석하는 데 도움을 줄 수 있습니다. 코드가 컴파일되고 정상 실행되더라도 올바른 동작을 수행하지 않거나 원하는 결과를 반환하지 않을 수도 있기 때문입니다. 둘째, 생성형 AI는 기존 도구들의 결함 보고서를 요약하여 테스트팀과 개발자가 미묘한 오류를 이해하고, 오류 코드의 패턴을 발견하고, 수정안을 제안하는 과정에 기여할 수 있습니다.

2. 코드 생성. 생성형 AI는 프롬프트 또는 사양을 기반으로 코드 작성을 자동화할 수 있습니다. 앞서 이야기했듯이 생성형 AI가 가까운 시일 내에 복잡한 비즈니스 애플리케이션을 스스로 생성할 수 있게 될 가능성은 낮습니다. 그러나 개발자가 직접 완성할 수 있는 보일러플레이트 코드나 복잡한 알고리즘 구현, 어려운 프로시저 호출, 외부 리소스 액세스 등을 수행할 수 있는 코드 스니펫을 생성하는 방식으로 개발에 도움을 줄 수 있습니다.

예를 들어, SQL을 사용하여 데이터베이스 정보를 읽고, 쓰고, 업데이트하는 방법을 알고 있는 개발자들은 많습니다. 그러나 복잡한 데이터베이스 테이블을 처리하고 매우 큰 데이터 세트에서 효율적으로 실행될 수 있는 SQL 저장 프로시저를 작성하는 것은 또 다른 기술입니다. 생성형 AI 도구는 프롬프트를 사용하여 프로그래머가 데이터베이스 액세스 요구사항을 표현하도록 돕고, 이후 애플리케이션에 복사해 붙여넣을 수 있는 SQL 호출이나 프로시저를 제안할 수 있습니다.

3. 코드 리뷰. 생성형 AI는 코드의 품질, 보안, 모범 사례 준수 여부를 검토하는 데 도움을 줄 수 있습니다. 코드 리뷰는 소프트웨어 개발 프로세스의 필수적인 단계로서 개발팀이 복잡한 코드를 그룹 환경(화면이나 대형 모니터에 투사)에서 검토하여 적절한 기능을 검증하고 개선할 부분을 제안하는 과정입니다. 개발자들은 코드 리뷰 과정에서 많은 압박을 받습니다. 결점만 찾아내는 선임 소프트웨어 엔지니어들과 함께 진행하는 리뷰 과정이 특히 그렇습니다. 또한 코드 리뷰는 매우 많은 시간이 소요되며 빠르게 끝내고 싶어하는 이들이 많으므로 그만큼 꼼꼼함이 부족해질 수 있습니다.

생성형 AI는 명백한 오류를 발견할 수 있는 예비 코드 리뷰를 진행하는 방식으로 개발자들에게 도움을 줄 수 있습니다. 이는 주니어 개발자의 학습에 도움을 주고 대면 리뷰 세션이 더 빠르게 진행될 수 있도록 만들어 줍니다. 생성형 AI는 또한 그룹 코드 리뷰팀의 구성원 역할을 수행하며 추가적인 주의가 필요한 부분을 강조하고, 최선의 개선 방법에 대한 자체적인 지침을 제공할 수 있습니다.

4. 문서화. AI는 코드베이스에 대한 문서를 자동으로 생성하거나 개선할 수 있습니다. 아무리 좋은 의도를 가지고 작성했더라도 개발자들은 불과 몇 달 전에 작성한 소프트웨어를 검토하며 '도대체 내가 무슨 생각을 했던 거지?'라고 자문하기 마련입니다. 따라서 전체 프로젝트 아키텍처부터 특정 모듈이나 마이크로서비스의 목적에 이르는 다양한 수준의 문서화는 매우 중요합니다. 문서화를 통해 다양한 결정의 이유를, 특히 개발자에게 선택의 여지가 있었을 경우 내렸던 라이브러리, API, 알고리즘에 대한 결정 사항을 모듈 및 서비스 내부에서 설명할 수 있습니다. 분명 이런 결정을 내린 이유가 있었는데, 그 이유는 무엇이었을까요? 생성형 AI는 코딩 진행 중 개발자에게 특정한 결정을 내린 이유를 설명하도록 요청하고, 그 이유를 이해하기 쉬운 문서로 저장하는 데 도움을 줄 수 있습니다.

또한 생성형 AI를 코드 생성 자체에 활용하는 경우(위 2번 참조), 생성형 AI 코드 스니펫이나 마이크로서비스의 기능과 올바른 사용법을 설명하는 완전한 문서를 함께 작성할 수 있습니다.

5. 학습 및 훈련. 생성형 AI는 개발자 역량 향상에 기여하는 즉각적인 예시와 설명을 제공할 수 있습니다. 소프트웨어 개발자, 특히 뛰어난 개발자들은 끊임없이 학습합니다. AI와 마이크로서비스 같은 신기술은 물론, 새로운 도구, 언어 기능, 디자인 패턴, 보안 취약점, 기업 표준 및 모범 사례, 심지어 새로운 규정 준수 요구사항까지 새롭게 배워야 할 것들은 언제나 끊임없이 등장합니다.

다양한 교육 과정과 강의, 사내 교육 및 멘토링이 존재하더라도 언제나 이용 가능한 지속적인 지원에는 그만한 가치가 있습니다. 생성형 AI는 개발자가 어려움을 겪는 순간을 감지할 수 있습니다. 예를 들어, 더 이상 사용되지 않는 기능이나 구식 API를 사용하려는 시도를 포착하고 즉각적인 맞춤형 교육을 제공할 수 있습니다. 또한 새롭거나 드물게 사용되는 작업을 수행하는 방법을 모르거나 기억하지 못하는 개발자에게 프롬프트를 통해 즉각적인 지침을 제공할 수 있습니다. 이는 도움말 스크린과 유사하지만 정확히 그 상황에 맞춤화된 형태의 도움말입니다.

6. 리팩토링. 생성형 AI는 기존 코드의 성능 향상을 위한 최적화 및 구조 재편에 도움을 줄 수 있습니다. 리팩토링은 소프트웨어 개발 주기의 핵심적인 부분으로서 코드 일부를 기능 변경 없이 더 효율적으로 실행되도록 개선하는 작업입니다. 리팩토링의 목적으로는 속도 및 확장성 향상, 메모리 소비량 감소, 알고리즘 업데이트, 새로운 마이크로프로세서 단축 명령 활용, 새로운 언어 지시문 사용 등이 있습니다. 개발자는 런타임 메트릭을 활용해 느리거나 자원을 과도하게 소모하거나 종단 간 지연을 유발하는 코드 영역을 찾아 리팩토링 대상으로 삼습니다.

리팩토링은 생성형 AI 코드 생성을 활용하기에 적합한 분야입니다. 간단한 예를 들자면, 개발자는 문제 있는 코드를 시스템에 입력하고, '더 빠르게 실행되는 버전을 만들 수 있나요?'라고 요청할 수 있습니다. 생성형 AI는 예측 능력을 활용해 코드의 동작 방식과 작동 원리를 파악함으로써 종종 더 나은 접근법을 찾아냅니다. 나아가 기존 코드와 리팩토링된 코드를 비교 및 벤치마킹해 리팩토링 프로세스의 이점을 쉽게 판단할 수 있을 뿐만 아니라 기본 기능이 실제로 변경되지 않았음을 검증할 수 있습니다.

7. 테스트. 생성형 AI는 테스트 케이스 생성, 테스트 프로세스 자동화, 에지 케이스 시뮬레이션 등에 도움을 줄 수 있습니다. 소프트웨어 테스트 프로세스에 대해 각기 다른 관점을 적용하는 다양한 방법론이 있습니다. 예를 들어, 테스트 기반 개발(TDD)은 단 한 줄의 코드를 작성하더라도 그 전에 테스트 케이스를 만들어 작성한 코드가 제대로 작동할 것임을 보장해야 한다고 주장합니다. 다른 방법론의 경우 개발팀이 스프린트 종료 시점에 테스트를 수행하기도 하고, 또 다른 방법론에서는 전담 테스트팀이 테스트를 수행하기도 합니다. 테스트 과정에서 이해관계자들의 관여는 필수적이지만 그 역할은 방법론에 따라 달라집니다. 때로는 이해관계자가 지속적으로 관여하기도 하고, 다른 경우에는 릴리스 후보 버전만 검토하기도 합니다.

생성형 AI는 테스트 및 테스트 관리 지원을 위한 다양한 역할을 수행할 수 있습니다. 앞서 언급한 버그 탐지에 더해 생성형 AI는 많은 개발자가 지루하게 느끼는 과정인 테스트 자동화 도구로 활용하기 위한 스크립트 작성에도 도움을 줄 수 있습니다. 이러한 생성형 AI 강화 도구는 에지 케이스(발생 가능성은 낮지만 코드 모듈, 저장 프로시저, 마이크로서비스 등이 반드시 적절히 처리해야 하는 상황) 테스트에도 도움이 될 수 있습니다. 또한 생성형 AI는 사람이 작성한 테스트 케이스를 비롯한 테스트 케이스들을 검토하여 오류 조건 및 런타임 시 코드 해킹 시도 등 모든 가능한 상황을 포괄하는 양질의 테스트인지 여부를 판단하는 과정에도 기여할 수 있습니다.

소프트웨어 개발용 생성형 AI의 미래

야구계의 거장 Yogi Berra는 "예측은 어렵다. 미래에 대한 예측은 특히 어렵다."라는 말을 남겼습니다. 생성형 AI는 새로운 분야입니다. 관련 기술의 첫 사례들은 2020년대 초반에야 등장했습니다. 텍스트 생성에 집중한 ChatGPT, 이미지 생성용 DALL-E 등의 제품들이 대표적입니다. 소비자와 기업 경영진이 생성형 AI에 주목하기 시작한 것은 불과 2년 전인 2022년경이었습니다.

어떤 관점에서 바라보든 생성형 AI 기술은 아직 초기 단계에 불과하며 소프트웨어 개발을 포함한 다양한 분야에서 새로운 비즈니스 사용 사례를 발견하게 될 것입니다.

예측은 어려운 일이지만 시도해 볼 수는 있을 것입니다. 향후 몇 년 동안 어떤 발전을 기대할 수 있을까요?

우선, 생성형 AI는 개발팀을 지원하는 코드 생성, 품질 보증, 문서화, 테스트 케이스 생성 등 현재 가능한 모든 기능을 더 잘 수행하게 될 것입니다. 생성형 AI의 대화 기능이 더 강화되어 개발자뿐만 아니라 비개발자와도 더 원활하게 소통하며 요구사항 정의부터 이를 프로젝트 계획, 문서, 테스트 케이스, 코드로 전환하는 전 과정을 안내할 수 있게 될 것입니다.

더 과감히 예측해보자면 어떤 소프트웨어는 아예 직접 작성할 필요가 없어질 수도 있습니다. 비즈니스 사용자가 생성형 AI 시스템에 달성하고자 하는 목표를 설명하기만 하면 해당 작업을 수행하는 임시 애플리케이션이 생성될 것입니다. 소프트웨어 개발 분야에서 생성형 AI의 미래가 어떻게 펼쳐지든, 해당 기술을 수용하는 기업들에게는 막대한 가치를 제공할 것입니다.

Oracle 솔루션으로 개발 과정에서 생성형 AI의 위력 활용하기

Oracle의 생성형 AI 기술은 Fusion 및 NetSuite 등의 비즈니스 애플리케이션에 내장된 강력한 기능들을 지원하고 Oracle Database 23ai에도 통합되어 있습니다.

탐구해볼 만한 흥미로운 활용 방식 중 하나는 새로운 기능인 APEX AI Assistant를 활용해 로우 코드 애플리케이션 개발에 생성형 AI와 Oracle APEX를 결합함으로써 개발자의 복잡한 작업을 지원하는 것입니다. Oracle Cloud Infrastructure(OCI) 계정을 생성하고 무료 클라우드 크레딧을 받아 생성형 AI를 비롯한 Oracle의 다양한 AI 서비스를 직접 체험해 볼 수도 있습니다. 무료로 시작하기.

새로운 기술인 생성형 AI를 소프트웨어 개발에 적용할 수 있는 방법은 무궁무진합니다. 개발자들은 생성형 AI가 개발팀의 소중한 조력자이고, 경우에 따라서는 팀의 핵심 구성원이 될 수 있음을 깨닫게 될 것입니다.

개발자는 최신 AI 서비스를 활용해 커스텀 모델을 훈련하고, 즉시 사용 가능한 머신러닝 도구를 배포하고, AI 기능으로 기존 애플리케이션과 솔루션을 강화할 수 있습니다. 꼭 AI 전문가가 아니더라도 이 모든 작업을 수행할 수 있죠. Oracle의 Ebook을 통해 11가지 실제 AI 프로젝트를 살펴보고 새로운 AI 사용 사례를 빠르게 구축해 보세요.

소프트웨어 개발 생성형 AI FAQ

생성형 AI를 코딩에 어떻게 활용할 수 있나요?

생성형 AI는 소프트웨어 개발 과정의 여러 단계에서 활용될 수 있습니다. 코딩의 경우, 해당 프로젝트에 사용되는 특정 프로그래밍 언어로 생성형 AI를 훈련시켜야 합니다. 원하는 작업에 대한, 프롬프트라고 불리는 매우 구체적인 명령을 생성형 AI 시스템에 입력하면 시스템은 컴파일 및 실행하거나 소스 코드 관리 시스템 또는 GitHub 등의 온라인 저장소에 추가할 수 있는 완성된 소스 코드를 생성해 줍니다.

AI로 소프트웨어를 개발할 수 있나요?

생성형 AI를 활용해 소프트웨어를 개발하는 방법은 다양합니다. 생성형 AI는 코드 생성에 도움을 줄 수 있지만, 현 시점에서 AI가 생성한 코드는 비교적 단순한 기능만을 수행합니다. 현 시점에서 생성형 AI의 진정한 가치는 프로젝트 계획 수립, 아키텍처 설계, 테스트 케이스 생성, 코드 리뷰 수행, 문서 작성과 같은 개발팀의 업무를 지원하는 데 있습니다.

소프트웨어 개발에서 AI는 어떤 도전 과제가 될까요?

생성형 AI는 아직 새로운 기술입니다. 개발팀에서의 활용 측면에서 특히 그렇습니다. 가장 큰 도전 과제는 현 상태에 익숙하고 기존 방법론, 툴 체인, 프로세스 변경을 꺼리는 회의적인 개발자들이 생성형 AI라는 기술을 수용하도록 만드는 것이 될 것입니다. 개중 일부는 생성형 AI를 자신의 경력에 대한 잠재적 위협으로 여길 수도 있습니다.

그 외에도 각 기업은 생성형 AI 소프트웨어에 대한 신뢰를 구축해야 합니다. 생성형 AI가 작성한 코드는 견고하고 안전하고 우수한가요? 테스트 케이스는 정확하며 완전한 코드 커버리지를 제공하나요? 문서는 요구사항을 충족하나요? 초기 단계의 생성형 AI 지원 소프트웨어 개발 중 대부분은 실험적 성격이 강할 것입니다. 생성형 AI 기술이 올바르게 적용될 경우 개발자 생산성의 획기적 향상, 더 나은 소프트웨어의 신속한 출시, 비용 절감으로 이어져 기업의 목표 달성에 기여할 것입니다.

마지막으로, AI가 생성한 코드의 소유권 및 보호 가능 여부에 관한 법률은 여전히 발전 중에 있습니다. AI를 활용해 코드 일부를 생성한 소프트웨어의 저작권을 등록할 수 있을까요? 상용 생성형 AI 시스템을 사용할 경우, 서비스 약관이 모델 사업주에게 출력물의 라이선스를 양도해야 한다고 규정하고 있지는 않은가요? 소프트웨어 개발에 생성형 AI를 활용하기 전에는 이와 같은 문제들을 반드시 검토해야 합니다.