Offcanvas

AI / 개발자 / 머신러닝|딥러닝 / 애플리케이션

AI 코딩 도구 이렇게 쓰면 효과↑··· 개발자 9명이 전하는 AI 프로그래밍 활용 팁

2023.07.13 Josh Fruhlinger  |  InfoWorld
AI와 함께 하는 페어 프로그래밍은 누군가에게는 기회를, 다른 누군가에게는 악몽을 안겨줄 수 있다. 인포월드는 마침 9명의 개발자를 만나 생성형 AI를 어떻게 프로그래밍에 접목하고 있는지 알아보았다. 
 
ⓒ Getty Images Bank 


생성형 AI에 대한 인기가 높아지면서 이른바 ’기술 골드러시’가 시작되고 있다. AI 도구 중에서도 보통 에세이를 쓰거나 그림을 그리는 예술 도구가 대중적으로 인기가 높다. 하지만 기술 업계 그중에서도 프로그래머 사이에서는 단연 AI 코딩 도구가 더 화제다. 프롬프트에 원하는 기능을 설명하면 몇 초 안에 실행 가능한 코드를 반환해 주니 어떤 면에서 흥미롭기도 하고 동시에 두렵기도 한 것이다. 

AI 기반 프로그래밍에 대한 인기는 소프트웨어 산업 전체에 장대한 기대로 이어지고 있다. 특히 최고 경영진, 컨설턴트, 그리고 이들을 추종하는 전문가들이 그런 거창한 기대에 힘을 보태고 있다. 하지만 실무단에서 직접 AI 도구를 사용하는 프로그래머와 관리자는 어떨까? 인포월드는 개발자 여러 명에게 지금까지 AI 코딩 도구를 어떻게 활용하고 있는지 직접 물어보았다. 이들의 의견을 종합해보면 '대부분은 AI가 업무 방식을 바꾸는 것은 사실이지만 가까운 시일 안에는 AI가 인간 코더를 대체하는 일은 없을 것'으로 요약할 수 있다. 좀 더 자세히 살펴보자. 

AI가 코더에게 도움을 주는 방법
개발자에게 널리 알려진 두 가지 생성형 AI 도구는 오픈AI의 챗GPT와 비주얼 스튜디오 같은 IDE에 통합되는 깃허브 코파일럿이다. 두 가지 도구 모두 자연어 쿼리를 기반으로 코드를 생성할 수 있지만, 코파일럿과 이후 나온 차세대 버전 코파일럿 X의 경우 대화형 모델을 한 단계 뛰어넘어 개발자가 무엇을 작업하고 있는지 예측까지 한다. 즉 일종의 진화된 IDE 자동 완성 역할을 AI 코딩 도구가 할 수 있다.

크로케.io(Croquet.io)의 공동 설립자이자 수석 건축가인 바네사 프루덴버그는 매일 비주얼 스튜디오 코드로 작성하던 코드 작성 과정에서 깃허브 코파일럿을 사용한다. 다음은 프루덴버그가 직접 작성한 코드다. 

다음과 같은 코드를 작성하면


let x = this.leftMargin + this.width / 2;
 

코파일럿은 다음과 같은 코드가 자동 제안한다. 


let y = this.topMargin + this.height / 2;
 

프루덴버그는는 “이를 통해 ‘width’와 ‘left’을 ‘height’와 ‘top’으로 바꿔야 한다는 것을 알 수 있다. 덕분에 타이핑을 많이 줄어듭니다”라고 설명했다. 

넷비즈(NetBeez)의 공동 설립자이자 CTO인 파니코스 네오파이투는 코딩을 할 때마다 코파일럿 X와 챗GPT를 사용한다. 그는 단순 코드 자동 완성 기능을 넘어서는 두 가지 특징을 AI 코딩 도구에서 찾을 수 있다고 설명했다. 첫 번째 특징은 체계적이다.

네오파이투는 “AI 코딩 도구는 특정 입력, 예상 출력 및 관련 데이터 모델의 예를 포함하여 매우 잘 정의된 함수를 잘 기술한다. 여기에는 암묵적인 연관성이 있는 데이터베이스 테이블이 포함된다. AI는 연관성을 추론할 수 있다. 특정 언어와 특정 방법으로 구현하도록 요청해보라. 프로젝트 관리 툴에 정의된 '작업'을 이러한 종류의 프롬프트로 정의해야 한다”라고 설명했다.

네오파이투는 또한 좀 더 캐주얼하고 사람과 대화하듯이 묻는 답을 얻는 코딩 기법이 좋은 결과를 낳을 수 있다고 보고 있다. 그는 “작업을 수행하는 동안 특정 작업을 수행하는 방법에 대해 생각나는 질문을 AI 코딩 도구에 던질 수 있었다. 마치 노련한 엔지니어가 옆에서 질문에 답하고 작업을 완료하도록 안내하는 것과 같았다”라고 설명했다. 

어떤 기법을 사용하든, AI를 올바르게 작동시키는 법을 배우는 것은 일종의 예술 과정이다. 소프트웨어 공급업체 코드씨(CodeSee)의 설립자이자 CEO인 샤니아 레벤은 “나는 생각을 사슬로 연결하듯 프롬프트에 질문을 넣는다. 이때 질문을 구체화하기 위해 올바른 동사를 한다”라며 “적절한 동사를 선택하고 서술적으로 표현하면 높은 수준의 답변을 만드는데 엄청난 도움을 받을 수 있다”라고 설명했다. (프롬프트 엔지니어링은 바로 이러한 이유로 인기있는 분야가 되고 있다.) 

AI 코딩의 강점 
인포월드가 인터뷰한 개발자들은 AI 도구가 다양한 방식으로 작업을 완료하는 데 도움을 주었다고 설명했다. 특히 다음 5가지 상황에서 활용도가 더욱 높았다. 

① 코드로 문서/주석 생성
소프트웨어 문서는 구조화된 형식을 가지고 있기에 AI가 특히 이해할 수 있다. 웹컨설팅 업체 러브2데브(Love2Dev)의 설립자인 크리스 러브는 “나는 챗GPT로 코드 내용을 문서화하거나 필요한 주석을 자주 단다. 원래 이런 일은 수작업으로 하려하면 시간이 너무 많이 걸린다. 하지만 수식만 완성되면 1~2초안에 문서를 작성할 수 있다. 너무 마음에 든다!”라고 말했다.

② 문서/주석으로 코드 생성
AI는 또한 주석이나 문서 작업을 기반으로 코드를 생성할 수 있다. 크로케.io의 프루덴버그는 코파일럿이 주석을 보고 코드를 어떻게 생성하는지 간단한 예를 보여주었다. 

프루덴버그가 작성한 주석


// get file name from our url
 


코파일럿이 주석을 기반으로 만든 코드


let fileName = window.location.pathname.split("/").pop();
 


프루덴버그는 “나라면 아마 다르게 코드를 짰을 것이다. 나는 정규식을 사용한다. 하지만 코파일럿이 제시한 코드는 완벽할 정도로 간단하고 분명 더 읽기 쉬운 해결책이기 때문에 이런 코드가 나온다면 바로 활용한다. 이런 작업은 시간을 크게 절약할 뿐만 아니라, 때때로 스스로 발견하지 못했을 수도 있는 관용구를 가르쳐 주기도 한다”라고 말했다.

③ 문제 해결을 위한 솔루션
개발자는 프로그래밍이 반복의 연속이라는 것을 안다. 그래서 누군가, 어딘가에서 이미 해결했다는 것을 알고 있는 문제에 매진할 때면 좌절감을 느낄 수 있다. 소프트웨어 개발 회사인 라이즈8(Rise8)의 엔지니어링 책임자인 제프 윌스는 이제 나온 문제를 찾고 해결하는 것이 AI가 잘하는 영역이라고 표현했다. 그는 “구 위의 두 점 사이의 거리를 계산하는 방법을 만든다고 가정해 보자. 코파일럿은 온갖 방법을 검토하고 자동으로 하버사인(Haversine) 알고리즘을 찾아 모든 코드를 생성할 것이다”라고 설명했다.

윌스는 특히 애플리케이션에 대규모 라이브러리를 추가해야 하는 경우 AI가 제시한 대안 코드를 적용하면 좋다고 추천했다. 윌스는 “예를 들어, 계산 기하학 알고리즘 라이브러리 적용하려 할 때 코드를 전부 다 가져오면 코드양이 너무 늘어날 수 있다. 코드양을 크게 늘리지 않고 알고리즘 하나만 얻는 방법에 대해서 물론 개발자 스스로 찾을 수 있다. 하지만 챗GPT 또는 코파일럿을 사용하여 해결책을 물어볼 수 있다. 이것이 지금의 생성형 AI의 핵심적인 능력이다”라고 설명했다.

④ 코드 업데이트 또는 정리
러브2데브의 크리스 러브는 챗GPT가 자신이 이미 작성한 코드를 업데이트하는 데 특히 유용하다고 설명했다. 그는 “간혹 귀찮은 수작업 때문에 코드 업데이트를 하지 않을 때가 있다. 개인적으로 AI를 이용해 오래된 노드.JS 모듈 업데이트 문제를 해결했다. 내가 선호하는 상황은 오래된 프로미스 기반 함수를 비동기/대기 함수를 사용하도록 변환하는 것이다. 후자는 더 깔끔한 구문이지만 모듈을 작성할 당시에는 흔하지 않았다. AI 코딩 도구를 이용하니 변수 선언을 구조 분해하고 var에서 const 및 let으로 변환하는 등 보다 현대적인 구문을 사용할 수 있었다”라고 밝혔다. 

⑤ (아마도) 더 빠른 코딩
인포월드가 인터뷰한 개발자들은 수치화할 수 있는 것은 아니라고 표현하면서도 코파일럿 또는 챗GPT로 작업하면 작업을 더 빨리 할 수 있었다고 밝혔다. 러브는 “궁극적으로 더 나은 코드를 조금 더 빨리 작성할 수 있도록 도와준다고 생각한다. 몇 퍼센트 더 빠르다고는 말하기 어렵지만, 체감할 수준의 작업 속도 향상을 느꼈다”라고 밝혔다.

라이즈8의 윌스는 “이론적으로는 속도가 빨라져야 하지만, 어쩌면 더 많은 가능한 솔루션을 찾는데 도움을 받는 것일 수도 있다. 시간적인 측면에서는 성과를 얻지 못했지만, 조금 더 반복할 수 있었기 때문에 품질 측면에서는 성과를 얻은 것 같다”라고 설명했다.

주의할 점
인포월드가 인터뷰한 거의 모든 사람들은 AI 툴이 마법이 아니라고 강조했다. 주의해야 할 함정과 점검해야 할 사항이 많이 있다는 것이다. 개발자들이 자주 언급한 주의점 5가지는 다음과 같다. 

회원 전용 콘텐츠입니다. 이 기사를 더 읽으시려면 로그인 이 필요합니다. 아직 회원이 아니신 분은 '회원가입' 을 해주십시오.

Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.