챗지피티 코드 인터프리터(ChatGPT Code Interpreter)
챗지피티에서 사용 가능하게 된 코드 인터프리터는 논하지 않을 수 없는 굉장히 중요한 기능입니다. 이번 포스팅에서는 코드 인터프리터가 무엇인지 그리고 기존의 ChatGPT-4 Default(디폴트)와는 어떤 점이 다른지 설명해 드리도록 하겠습니다.
ChatGPT Code Interpreter 기능 및 활용 방법
챗지피티(ChatGPT)의 새로운 기능 코드 인터프리터(Code Interpreter) 서비스를 시작했습니다.
기존의 ChatGPT-4 Deafault(챗지피티 4 디폴트)와는 어떤 기능적인 차이를 가지고 있는지 비교해서 설명해 보고, 새롭게 출시한 코드 인터프리터를 활용할 수 있는 방법을 설명해 보겠습니다.
1. ChatGPT-4 디폴트와 코드 인터프리터 차이점
2. 코드 인터프리터 기능
- 프로그래밍 언어 Python 활용
- 컴퓨터의 연산
- 코드 인터프리터 핵심 기능
ChatGPT-4 디폴트와 코드 인터프리터 차이점
우선 ChatGPT-4 디폴트와 결정적으로 다른 점이 무엇인지 결론부터 말하면, 기존의 ChatGPT-4 Default는 AI 하나였다면 Code Interpreter는 AI + Computer가 된 것입니다.
비유를 들어서 설명드리자면, 기존의 ChatGPT-4 디폴트의 경우에는 어떤 계산 임무가 주어졌을 때, 암산으로 계산을 합니다. 사람도 자릿수가 많은 숫자를 암산으로 계산할 때, 실수를 할 수 있습니다. 그래서 기존의 ChatGPT-4 디폴트의 경우는 실수를 할 여지가 많았습니다. 실제로 사용해 보면, 숫자 계산에 대해서 잘못된 결과를 보여주기도 했습니다.
그런데 코드 인터프리터는 컴퓨터를 가지게 된 ChatGPT-4라고 생각해도 되는데, 우리가 어떤 복잡한 숫자의 계산 임무를 부탁하면 이 ChatGPT-4는 이제 더 이상 암산으로 계산을 하는 것이 아닙니다. 우리가 요청한 그 계산을 처리하기 위한 코드를 작성해서 이제 가지고 있는 컴퓨터에게 그 코드를 실행하게 해서 컴퓨터를 이용해 계산을 합니다.
AI가 만들어내는 코드에 문제가 있지 않는 이상 계산 과정에서는 실수가 만들어질 수가 없다는 것이 코드 인터프리터(Code Interpreter)입니다.
코드 인터프리터는 질문한 계산을 스스로 암산으로 하는 것이 아니라 그 계산을 하는 공식을 만든 것을 컴퓨터를 이용해서 계산하기 때문에 계산 과정에서 실수를 하지 않고 정확한 답을 만들어 줍니다. 계산에 있어서 올바른 답이 나오기까지 2가지 조건이 있습니다.
계산을 하기 위한 공식을 올바르게 세워야 합니다. 그리고 올바르게 공식을 세웠다면 계산을 잘 해야 합니다. 공식을 잘 만들었는데 계산에서 실수를 한다면 결과적으로 틀린 답이 나오게 되고, 반대로 아무리 계산을 잘해도 공식이 잘못되어 있다면 틀린 답이 나오게 됩니다.
기존의 ChatGPT-4 디폴트의 경우는 암산의 공식은 맞게 만들고 있습니다. 즉 프로그래밍은 잘하고 있지만, 계산이 틀리는 현상이 나타납니다. 코드 인터프리터는 우리의 미션을 수행해 주기 위한 공식을 세우는 과정을 거칩니다. 즉 이것을 계산하기 위한 코드를 만들어서 가지고 있는 컴퓨터를 이용해서 그 코드를 실행시킵니다. 그렇게 해서 얻은 결과물을 사용자에게 알려주는 방식입니다.
코드 인터프리터가 결국 무엇을 할 수 있는지에 대해서 소개해 드리겠습니다.
코드 인터프리터 기능
코드 인터프리터에게 주어진 이 컴퓨터는 Python(파이선)이라고 하는 프로그래밍 언어를 실행시킬 수 있습니다. 그래서 이 코드 인터프리터는 우리의 요구사항을 처리하기 위한 코드를 파이선으로 코딩을 하고, 만들어진 이 프로그램을 자신이 가지고 있는 컴퓨터를 통해서 실행을 하고 실행된 결과물을 사용자게 주는 기능을 가지고 있습니다.
프로그래밍 언어는 게임이나 애플리케이션 같은 것들을 개발하는 데도 사용이 되지만, 코드 인터프리터에서의 코딩의 목적은 일회성으로 데이터를 처리하고 처리한 결과에 대해서 응답해 주는 역할로서 주로 사용이 됩니다.
이 목적으로는 파이선뿐만 아니라 현존하는 대부분의 프로그래밍 언어로 모두 가능합니다. 지금 코드 인터프리터가 가지고 있는 이 컴퓨터에서는 파이선 코드만 실행할 수 있는 것으로 확인됩니다. 그래서 파이선 코드뿐만 아니라 다른 프로그래밍 언어로도 변환을 해서 만들어 낼 수는 있는데, 실행까지는 다른 언어로는 할 수 없는 상황입니다. 이 부분은 앞으로 코드 인터프리터가 파이선뿐만 아니라 다른 프로그래밍 언어도 실행을 할 수 있게 될지 한 번 기대해 볼 만한 부분입니다.
결국 챗지피티 사용자 입장에서는 이 Python 프로그래밍 언어로 무엇을 할 수 있을지에 대해서 알 수 있다면 코드 인터프리터로 어떤 것들을 해낼 수 있는지를 이해할 수 있습니다.
프로그래밍 언어 즉 파이선으로 무엇을 할 수 있는지 설명해 보겠습니다.
프로그래밍 언어 Python 활용
복잡한 계산은 매우 훌륭하게 답을 얻을 수 있습니다. 그런데 한 번 생각해 보면 컴퓨터에서 일어나는 일들의 대부분의 근본은 연산입니다.
예를 들어서 PNG 확장자명 파일을 JPG(JPEG)로 변환하는 처리를 하려고 한다는 것을 두고 보자면, 이 처리도 잘게 쪼개서 본다면 반복적인 연산 과정의 결과라고 볼 수 있습니다.
PNG를 JPG로 바꾼다는 처리에서 PNG는 우리가 가지고 있는 처리를 해야 되는 데이터인 것이고, 여기서 말하는 JPG는 우리가 현재 갖고 있지는 않으나 처리를 통해서 우리가 얻기를 희망하는 결과물인 것입니다. 이런 처리를 하기 위해서 우리가 가지고 있는 PNG 파일을 AI에게 업로드합니다. 업로드하면서 JPG로 바꿔 달라고 요청을 하는 것입니다.
그러면 이 AI는 PNG를 JPG로 바꾸는 공식을 만들어냅니다. 즉 코드를 프로그래밍해서 만들어내는 것입니다. 기존의 ChatGPT-4 Default에 동일한 질문을 했을 때는 코드를 만들어주고, 코드를 사용해서 바꿀 수 있다는 답변을 얻게 됩니다. 하지만 이 코드 인터프리터는 PNG 파일을 업로드하면 JPG 파일로 변환 실행까지 해줍니다.
변환 코드 프로그래밍 > PNG를 JPG로 변환 > 결과물 제공 단계를 모두 해줄 수 있는 것이 바로 코드 인터프리터이고 그 안의 Python 컴퓨터의 기능입니다. 또한 JPG로 변환된 결과물을 다운로드할 수 있는 링크까지 생성해 줍니다.
만약 JPG로 변환하는 것 자체가 목적이 아니라 사용자가 어떤 앱을 만들고 있는데, 만들고 있는 앱에서 PNG를 JPG로 변환하는 기능이 필요한 상황일 수 있습니다. 그런데 이 코드를 모른다고 가정합니다. 그럴 때도 어떤 코드로 PNG를 JPG로 변환할 수 있는지 그 작업을 해준 코드도 함께 확인할 수 있습니다.
확인할 수 있는 코드는 파이선 코드로 만들어주지만, 사용자가 코딩 중인 프로그래밍 언어가 예를 들어 자바스크립트라면 코드 인터프리터에게 이 파이선 코드를 자바스크립트 문법으로 바꿔 달라고 요청을 할 수도 있습니다. 자바 스크립트를 코드 인터프리터가 실행을 할 수는 없으나 변환은 해줄 수 있습니다.
앞서 말씀드렸다시피 코드 인터프리터와 기존 ChatGPT-4 디폴트의 차이점은 컴퓨터를 가지고 있어서 코드를 실행할 수 있는지 없는지의 차이밖에 없기 때문에 코드 변환 같은 요청은 기존의 ChatGPT-4 디폴트가 충분히 해낼 수 있었던 작업이기 때문에 코드 인터프리터에게도 동일하게 요청할 수 있습니다.
컴퓨터의 연산
앞서 이야기한 컴퓨터의 연산에 대해서 좀 더 알아보도록 하겠습니다. PNG를 JPG로 바꾸는 것도 어떤 연산 과정의 일종이라고 이야기했습니다.
사실은 현실적으로 생성한 코드를 보면 PNG를 JPG로 만드는 그 근본적인 코드를 모두 만들어낸 것은 아닙니다. AI가 만들어준 PNG를 JPG로 변환하는 코드를 살펴보면 이미지를 변환하는 그 코드 자체를 만들어준 것이 아닙니다. 대신 이 이미지를 변환해 주는 라이브러리를 가져다가 그것을 사용하는 코드를 만들어준 것입니다.
이렇다는 것은 이 코드 인터프리터에 준비되어 있는 이 컴퓨터에 변환을 해주는 그 라이브러리가 설치되어 있어야 이미지의 변환이 가능하다는 뜻입니다. 만약에 없다면 AI가 지금 이 라이브러리를 직접 만들어서 해줄 수도 있는 부분이기는 한데, 현재의 AI에게 기대하는 것은 어렵다고 볼 수 있습니다.
이 정도로 방대한 코드는 아직은 챗지피티에서 만드는 과정에서 실수를 할 여지가 많이 있습니다. 그래서 현실적으로 코드 인터프리터가 할 수 있는 것이라고 한다면 이 코드 인터프리터가 사용하는 컴퓨터 환경에 설치되어 있는 모듈이 어떤 것들이 있는지 확인하고 의존을 하면 됩니다.
현재는 많이 활용되는 모듈들이 기본적으로 설치가 되어 있습니다. 그리고 앞으로 시간이 지남에 따라서 더 다양한 것들이 추가될 것으로 예상됩니다. 다양한 모듈 중에는 이미지를 바꾸는 것도 당연히 가능하고, 이미지를 다른 종류의 이미지로 바꾸는 모듈뿐만 아니라 수치 계산, 파일을 다루고 데이터베이스를 다루는 모듈, 그뿐만 아니라 인터넷 통신을 하는 모듈도 있습니다.
requests라고 하는 모듈이 있는데, 이 모듈은 인터넷 통신을 할 수 있게 도와주는 모듈입니다. 그런데 이 모듈이 코드 인터프리터 컴퓨터 환경에 설치되어 있는지 확인을 해볼 수 있습니다. 질문을 해보면, 인터넷에 연결이 되어 있지 않다고 답변합니다.
지금 설치가 되어 있는지 확인해 보면 설치는 되어 있습니다. 하지만 인터넷이 연결되어 있지 않기 때문에 아직까지는 무용지물인 상황입니다.
프로그래밍 언어를 사용해서 대표적으로 하는 작업 중에 하나는 데이터를 저장 매체에 기록하는 것입니다. 이 코드 인터프리터를 사용함에 있어서 저장 매체에 데이터를 기록한다는 것은 최종적인 결과물을 도출 받기 위해서 임시적으로 그 처리를 위해서 임시 보관을 하는 용도로서 주로 사용됩니다. 코드 인터프리터에 준비되어 있는 컴퓨터 환경에서도 이 데이터를 기억 장치에 기록을 할 수가 있습니다.
코드 인터프리터의 컴퓨터 환경은 한 번 이용을 하고 이용 목적이 달성이 되었다면, 컴퓨터에서는 시간이 지나면 현재 이 대화에서는 더 이상 사용할 수 없게 됩니다. 그렇기 때문에 이 저장소를 실제로 영구적인 보관 목적으로 사용하는 것은 부적절합니다.
코드 인터프리터 기능 활용 방법은 아래 포스팅 글에서 확인할 수 있습니다.
코드 인터프리터 핵심 기능
코드 인터프리터의 핵심 기능은 코딩을 해주는 것이 아닙니다. 코딩은 이미 ChatGPT-4 디폴트에서도 가능했습니다. 코딩 능력은 동일한데, 코드 인터프리터의 핵심적인 역할은 만들어진 코드를 실행할 컴퓨터를 가지고 있다는 것이고 그 코드를 자기가 가지고 있는 컴퓨터를 이용해서 실행하고 결과물을 답변으로 제공해 줄 수 있다는 점입니다.
그리고 코드 인터프리터로 할 수 있는 것들로서는 그래프, 차트 그리기나 데이터 형 변환 같은 것들이 많이 이야기가 되고 있습니다. 사실 할 수 있는 것의 종류를 보자면, 코드 인터프리터 컴퓨터에 설치되어 있는 모듈의 종류로 할 수 있는 것들과 인터넷상에 연결하지 않아도 할 수 있는 것이라면 무엇이라도 해낼 수 있다고 볼 수 있습니다.