인공지능 ChatGPT의 함정: 프로그래머의 관점
최근 2~3년간은 IT업계의 모든 이슈는 단연코 인공지능(AI)이었다. 바둑에서 인간을 이긴 것이 놀라움이었다면, ChatGPT의 등장은 놀라움을 넘어 충격에 빠뜨렸다. 특히 프로그래머 관점에서는 코드를 이해하고, 생성해주는 기능은 정말 놀라웠다. 많은 사람들은 개발자들이 밥그릇을 잃을거라고 했다. 그러나 2년여를 바라본 시점에서 개발자에게 다가온 위협은 저숙련 개발자들에겐 심각하고, 고숙련 개발자에겐 위협이 아니라 기회가 될 가능성이 더 높다고 판단된다.
AI가 알려주는 이상한 코드
Cursor나 ChatGPT의 도움을 받아서 프로그래밍을 하는 초급 개발자의 코드를 보다보면 이상한 점이 한둘이 아니다. 가끔 엉뚱한 코드를 쓰는 경우가 있는데, 왜 그렇게 짰는지를 물어보면 그냥 AI가 그렇게 알려줬다고 한다. AI를 너무 신봉하는 케이스가 많았다.
예를 들어 A에서 B로 특정 조건에 맞는 데이터를 복사하는 작업이 있는데, AI가 알려준 방법은 그냥 A의 거의 전부를 B로 복사하는 것이었다. 물론 결과적으로 B에서 데이터를 뽑아낼 때 아무 문제는 없어보인다. 하지만 실제로는 거의 수십~수백배에 해당하는 데이터가 복사되었기 때문에 성능이나 데이터 공간의 낭비가 심할 뿐이다. 이렇듯 굉장히 비효율적인 코드를 만들어내는 경우가 종종 있는데, 숙련된 개발자라면 직관적으로 그걸 알아채고 뜯어 고칠 수 있지만, 저숙련 개발자는 아마도 잘 모르고 그냥 쓸 가능성이 높다고 본다.
비효율적인 것보다 더 심각한 케이스도 있는데, 오류가 발생했을 때의 핸들링이 전혀 안되어있는 경우도 있었다. 프로그래밍 언어 레벨의 함수나 메서드의 오류 처리는 AI도 잘 하지만, 배포되는 과정에서 쓰이는 script의 오류를 AI가 전혀 이해하지 못하는 것 같았다. 물론 잘 작동할 것이라고 생각하고 그냥 서버들에게 배포한다면 연중에 한 번정도는 오류로 모든 서버가 오작동할 가능성도 있을 것이다.
아마도 튜토리얼이나 예제, 혹은 버그가 존재하는 자료들도 전부 학습하기 때문이 아닐까 예상된다. 특히 예제 수준의 자료는 차고 넘치기 때문에 실무에서 쓰는 복잡한 코드들보다 훨씬 더 많을 가능성이 높다.
가짜 참고문헌과 레퍼런스
자료를 정리할 때도 이상한 점이 있다. AI에 도움을 받았다는 보고서의 참고문헌을 보다가 좀 이상해서 조사를 해봤더니 아예 존재하지도 않는 문헌을 적어둔 경우도 있었다. 세상에는 어마어마한 양의 책이 있으니 참고 문헌 정도는 쉽게 속을 수 있을 듯 하다. 레퍼런스의 경우도 실제로 따라가보면 다른 내용인 경우도 있었다. 아마도 레퍼런스를 분석하는데 있어서 역설적 의미나 예시를 제대로 이해하지 못한 것 같다. 혹은 잘못된 내용(일명 뇌피셜)임에도 그걸 사실로 판단할 가능성도 있고 말이다.
진정한 AI의 최고봉은 자율주행
인공지능은 매우 유용하고 IT의 큰 발전임에는 틀림없다. 하지만 아직까지는 검증할 수 있는 방법이 많지 않다. AI의 생성된 코드나 참고 문헌 같은 것은 결국 사람이 다시 검증해야 하기 때문이다.
개인적으로 AI의 진정한 힘은 영상 관련 기술을 AI로 하는 것과 거기서 파생되는 기술로 인간의 눈처럼 사물을 판단하는 기술이라고 본다. 이게 가능해지면 자율주행으로 가는 길이 열릴 것이다. 자율 주행이야말로 AI의 최고봉이고, AI의 가장 큰 시장일 것이다. 어디 뉴스를 보니까 구독 서비스로 할 때 완전 자율주행에 500달러의 돈도 지불할 용의가 있다고 한다. 이런 경우 100만명만 구독해도 매달 5억달러의 수입이 들어오는 서비스가 된다. 가히 산업혁명급의 파급력이라고 생각된다. 게다가 자동차에 머무르지 않고 결국 철도, 항공 등 모든 이동 서비스들이 점진적으로 자율주행으로 변하면 새로운 시대가 열릴 것이라고 생각된다.