AI 열풍의 중심 ChatGPT. 과연 안전하며 개발자에게 득이 될까?
비즈니스 금융 회사 '브렉스'(Brex)에서 디자인을 책임지는 쉬라노는 컴퓨터 프로그램 작성에 챗GPT를 사용한다.
쉬라노는 게임회사 아타리가 출시한 1970년대 탁구 게임을 언급하며 "퐁 같은 게임을 만들고 싶은데, 많은 사람들이 시도할 수 있도록 [사용하기에] 가장 좋은 언어는 무엇일까?" 하고 물었다.
챗GPT는 브라우저에서 실행되는 프로그래밍 언어(JavaScript)를 추천했을 뿐 아니라 간단한 게임 코드도 생성해 줬다.
숙련된 개발자가 30분은 걸렸을 내용을 챗GPT는 40초 만에 완성했다. 고전 아케이드 게임 '브레이크아웃'과 '아스테로이즈'로 주제를 바꿔도 마찬가지였다.
온라인에도 이런 게임에 대한 코드 예제가 많지만, 챗GPT는 인터넷에서 기존 답변을 검색하지 않는다.
챗GPT는 방대한 웹 콘텐츠를 사용해 구축됐지만, 정답을 예상해 새로운 텍스트를 생성한다.
쉬라노는 "어떻게 하면 이 게임을 더 인기 있게 만들 수 있을지 질문했는데 챗GPT가 질문을 잘 이해했다"며 "개발 경험이 없다면 구글에서 찾을 수 없는 전체 맥락에 대한 이해를 갖추고 있었다"고 감탄했다.
검색 엔진을 사용하면, 사용할 코딩 언어, 사용 방법, 온라인상의 불완전한 예제를 완성하는 방법 등을 파악해야 한다. 챗GPT는 모든 게임 코드와 함께 상황에 맞는 지침을 제공할 수 있다.
쉬라노는 "이제 코딩을 전혀 모르는 사람도 간단한 웹앱을 만들 수 있다"고 설명했다.
이와 같은 생산성 향상에도 불구하고 AI 코딩을 주저하는 사람들도 있다.
정보관리 회사 '라이틀리'는 사용자가 특정 회사의 데이터베이스에서 개인정보를 삭제할 수 있도록 지원한다. 라이틀리의 토니 스미스 최고기술책임자는 "소프트웨어 개발에 챗GPT를 도입할 경우 여전히 리스크가 장점보다 크다"고 말한다.
"이런 AI가 생성하는 코드는 결함이 있거나 비효율적인 경우가 많습니다."
스미스는 챗GPT에게 특정 달이 며칠까지 있는지 계산하는 코드를 생성하도록 했다. 그 결과, "코드가 훌륭해 보이지만 영국 서머타임 전환에 문제가 있어 3월이 30일까지라고 계산된다"고 했다. 또한, "1년에 한 번 발생하는 작은 버그가 있다"고 덧붙였다.
AI로 생성한 코드에 보안 결함이 포함될 수 있다는 사실도 발견됐다. 챗GPT는 온라인에서 학습한 나쁜 행동을 모델에 반영하거나, 취약점을 간과하거나, 오래된 기술을 사용할 수 있다. 또한 2021년 이후 정보에 대해서는 제한적으로만 알고 있다.
사람들이 스스로 이해하지도 못하면서 주어진 코드를 사용하고 싶다는 유혹에 빠지면 사업상의 리스크도 증가한다.
케빈 보첵은 기계 인증용 보안 소프트웨어를 만드는 '베나피'의 보안 전략·위협 인텔리전스 부사장을 맡고 있다. 보첵은 챗GPT를 사용해 컴퓨터에 반복 명령을 내리는 엑셀 매크로와 파워쉘 스크립트를 만들었다. 해커들은 이 둘을 사용해 공격을 시작하는 경우가 많다.
보첵은 "지금 '외부'에서 가져온 코드를 실행해 보겠다. 나는 이 코드가 무슨 동작을 하는지 전혀 모른다"고 말한 뒤 "이제 유해한 코드가 침입할 수 있는 기회가 증가했다"고 말했다.
AI를 코드 생성에 사용할 수도 있겠지만, 베나피에서는 항상 개발자가 최종 확인을 책임진다. 보첵은 "우리는 이 부분을 매우 중요하게 생각한다"며 "코드를 사람이 여러 번 검토한다. 최종 책임은 전문 개발자에게 있다"고 말했다.
소프트웨어 개발의 미래는 개발자와 AI 비서의 협력 체제가 될 가능성이 높다. 이미 인기 있는 AI 솔루션 '코파일럿'의 이름에도 반영되어 있다. 깃허브의 '코파일럿'은 개발자가 작업할 때 자동으로 코드를 완성시켜 준다. 챗GPT보다 코드 완성 속도가 더 빠르지만 정확성은 약간 낮은 모델을 사용한다.
깃허브의 토마스 던케 최고경영책임자는 "코드를 작성할 때, 문자 입력마다 새로운 응답이 나오는 것이 이상적"이라고 말한다.
안전하지 않은 코드를 감지·차단하는 기능도 코파일럿에 추가됐지만, 안전을 위해서는 여전히 사람의 작업이 필수적이다. 던케는 "깃허브 코파일럿을 사용한다면 다른 코딩 도구와 마찬가지로 항상 사람이 직접 코드를 검토하고, 테스트나 보안 도구를 적용해야 한다"고 강조했다.
AI 코딩이 일자리를 빼앗기도 할까? 쉬라노와 레시 모두 AI가 반복적인 코딩 작업을 맡는다면 주니어급 일자리를 대체할 수 있다고 예측한다.
ChatGPT가 혁신적이고 많은 도움을 줄 수 있지만 아직은 보완할 점이 많아 보인다. 다만 단순 작업을 주로 하는 주니어급 일자리가 ChatGPT로 인해 사라질 가능성이 높기에 경쟁력이 높은 개발자가 되기 위해서 많이 고민하고 노력해야겠다.