안녕하세요
챗지피티에서 사용가능하게된 코드인터프리터, 제가 논하지 않을수가 없는 기능입니다.
그래서 이것은 무엇인지, 이걸로 뭘할수있는건지에 대해서 이야기해보도록 하겠습니다.

일단 먼저 챗지피티 default와 어떤점이 결정적으로 다른건지 본론부터 말하겠습니다.

기존 챗지피티와 가장 크게 다른점은 AI가 컴퓨터를 가지게 되었다는 것입니다.

비유를 들어 설명드려보자면
어떤 산수문제가 주어졌을때 기존의 AI는 암산으로 계산을 합니다
그래서 때로는 정확하지 않을수도 있어요

컴퓨터를 가지게된 AI는 문제를 컴퓨터를 통해서 계산합니다
즉 계산문제를 AI의 머리로 암산하는게 아니라 컴퓨터라는 계산기를 두들겨서 나온 답을 알려주는거죠
AI는 이 계산기를 우리 대신 사용해서 나오는 답을 알려주는 대리인이 되는겁니다

---

그래서 "132234부터 542234사이에 등장하는 모든 짝수를 더한 값을 알려줘. 시작값과 끝값도 포함해서 더해줘."
이런 복잡한 숫자의 계산도 잘 해냅니다

이걸 한번 직접 이 두 녀석에게 시켜보도록 하죠
둘다 해냈는데 결과값이 다릅니다
제가 실제로 계산해보니 Computer 이용해서 계산해준 코드인터프리터가 내어준 답이 맞네요

계산에 있어서 올바른 답이 나오기 위한 조건은 두가지가 있습니다

1. 올바른 공식을 만든다
2. 올바르게 공식을 계산해낸다

입니다
공식을 잘 만들었는데 계산에서 실수가 있으면 결과적으로 틀린답을 낼것이고
아무리 계산을 정확하게 해도 공식이 잘못만들어져도 마찬가지로 틀린답을 낼 것입니다

틀린답을 내어준 녀석의 공식을 직접 제가 계산해보니 결과가 맞는답이 나옵니다.
이 경우는 계산에서 실수를 한 상황입니다.

마찬가지로 코드인터프리터라고 하더라도 공식을 만들어내는데에 있어서 실수를 할 여지가 있습니다.
그래서 계산해내는것에서는 문제가 없겠지만 공식만들어내는것에서 실수가 있다면 코드인터프리터도 잘못된 답을 줄 여지가 있는겁니다.

## 여기서 말하는 공식을 세운다는것은 다른말로 프로그래밍, 즉 코딩을 한다는 말로 바꿀수있습니다.
이렇게 AI가 코딩을 해서 만든 프로그램을 컴퓨터에서 실행한다는것은 계산을 한다는 말로 치환될수 있습니다.

코드인터프리터, 뭘 할줄 아는가?

코드인터프리터에게 주어진 컴퓨터에서는 파이썬이라고 하는 프로그래밍 언어로 작성된 프로그램이 실행됩니다.
그래서 우리가 코드인터프리터에게 어떤 계산을 해줄것을 요구하면 그 계산을 해주는 프로그램을 작성해서 컴퓨터에서 실행해서, 실행해서 얻은 결과를 우리한테 알려주는 방식입니다.

프로그래밍언어는 게임이나 애플리케이션을 개발하는데에도 사용되지만 코드인터프리터에서의 목적처럼 일회성으로 데이터를 처리하고 계산해서 값을 얻어내는 용도로도 사용됩니다.
이 목적으로는 파이썬 뿐 아니라 현존하는 대부분의 프로그래밍언어로 가능한 부분입니다.

## 결국 사용자인 우리 입장에서는 이 파이썬 프로그래밍언어로 어떤것들을 처리해낼 수 있을지를 안다면 코드인터프리터를 이용해서 우리가 무엇을 할 수 있을지에 대해 알수있게 되는겁니다.

프로그래밍 언어로 뭘 할 수 있는가?

처음 예시로 들었던
"132234부터 542234사이에 등장하는 모든 짝수를 더한 값을 알려줘. 시작값과 끝값도 포함해서 더해줘."
와 같은 단순 사칙연산은 쌉가능입니다.

그런데 생각해보면 컴퓨터에서 일어나는 모든일의 근본은 연산입니다
png를 jpg포맷으로 바꾼다는 작업도 연산이라고 말할 수 있습니다.
"png를 jpg포맷으로 바꾼다" 라는 말에서 png는 우리가 가지고있는 처리를 하고자하는 데이터이고요
jpg포맷이라는건 우리가 현재 가지고있지는 않지만 가지기를 희망하는 자료입니다.
즉 우리는 우리가 가진 png를 AI에게 주고 AI로부터 jpg포맷으로 변환된 자료를 받으면 되는것이죠
헌집을 주면 새집을 주는것과 같은 원리입니다.
AI는 두꺼비의 역할을 하게되는겁니다
그래서 이렇게 업로드기능을 이용해서 가공할 대상을 AI에게 전달해줄 수 있습니다.
대상의 종류는 제한되어있지 않다고 보는것이 맞아보입니다.
그래서 이번 요청에서는 png파일을 선택하고요
이렇게 전달할 수 있는 파일 용량에 대해서는 OpenAI의 공식적 자료를 찾기는 어려웠는데요
수백메가바이트정도까지는 가능한것으로 보입니다.
그래서 이렇게 해보면 쌉가능입니다.

사용자의 목적이 png를 jpg포맷으로 바꿔서 변환된 jpg를 얻는게 원하는것이라면 이렇게 변환된 파일을 다운로드 받으면 되는것이고요,
목적이 이 jpg자체가 아니라 자신이 만들고있는 소프트웨어에 png를 jpg로 변환하는 기능을 만들어서 추가하기를 원해서 그것에 대한 코드를 알고자 함일수도 있습니다.
그러면 이렇게 코드를 확인 할 수도 있습니다.
코드인터프리터가 가진 컴퓨터는 파이썬 코드만 실행할수 있어서 기본적으로 파이썬으로 작성을 해주는데요, 만약 다른언어로 알고 싶다면 다른언어로 바꿔달라고 하면 됩니다. 다른언어는 코드인터프리터가 가진 컴퓨터가 실행을 못할뿐이지 AI가 코드는 다시 코딩해줄수 있습니다.

---

컴퓨터의 연산에 대해서
코딩을 할때 기능구현을 위해서 그것을 처리하는 핵심 기능을 0에서부터 개발하는것이 아닙니다.
보통은 그것을 처리하는 기능을 하는 라이브러리를 추가해서 라이브러리를 사용해서 목표를 달성합니다.
앞서 png를 jpg로 변환하는것은 연산의 결과라고 이야기를 드렸죠
우리가 이 요청을 AI에게 했을때 AI는 직접 이 기능을 0부터 개발한것이 아니라, 이 기능을 하는 라이브러리, 즉 모듈을사용하여 코드를 작성했습니다.
이렇게 모듈을 사용할 수 있기 위해서는 사전에 AI가 사용하는 컴퓨터에 이 모듈이 설치되어져있어야합니다.
파이썬 환경에는 Pillow라고 하는 이미지를 처리하는 모듈이 존재합니다.
코드인터프리터가 사용하는 컴퓨터환경에는 PIL 모듈이 설치되어있어서 이것이 가능했습니다.
만약 없었더라면 PIL의 기능을 하는 코드를 코드인터프리터 AI가 직접 개발해서 했어야했다는 말이 되는데, 아직은 이것까지는 할수 있었을거라고 기대하기 어렵습니다.
현재는 기본적으로 많이들 쓰는 모듈들이 탑재되어있는것으로 보이고 앞으로 이 대상이 늘어날것으로 기대됩니다.

---

인터넷 상의 데이터를 수집하는것을 크롤링이라고 부릅니다
어떻게 보면 이 작업도 연산의 일종이라고 볼수 있지요
당연히 코드를 통해 할 수 있는 일인데요
파이썬에는 인터넷 상의 데이터를 통신을 통해 가지고오는 기능을 하는 requests라고 하는 모듈이 있습니다
이 모듈이 코드인터프리터 컴퓨터 환경에 설치되어있는지 이렇게 확인해볼 수 있습니다
확인해본 바로 설치가 되어있습니다.
그러나 여기서 설명하는것 처럼 코드인터프린터 컴퓨터 환경은 인터넷과 연결되어있지 않아서
requests가 설치되어있음에도 사용해서 통신은 할 수 없다고 합니다.

---

프로그래밍언어로 하는 것중 또 대표적인 작업이 데이터를 저장매체에 기록하는 일입니다.
코드인터프리터가 가진 컴퓨터에는 자료를 기록할 수도 있습니다.
코드인터프리터를 통해서 요청이 만들어지면 이것을 처리하기 위한 컴퓨터가 할당됩니다.
그러나 이것은 임시적이며 시간이 지나면 소멸하므로 자료보관용으로는 부적합합니다.
따라서 주로 일을 처리하기 위해 임시적으로 보관할 공간으로써 생각해야합니다.

---

오해할 수 있는 것
코드인터프리터는 코드를 작성해주는것이 핵심기능이 아닙니다.
핵심은 작성한 코드를 실행해줄수 있다는 점입니다.
코드의 작성은 기존의 GPT default도 잘 해줍니다.
실행을 못해줄뿐입니다. 실행을 못하고 실행했을때 일어날 예상결과를 알려줄뿐이고 때로는 틀리기도하죠.

코드인터프리터로 할 수 있는 기능의 수가 정해져있다
할수있는것으로써 그래프그리기, 자료변환하기등등이 이야기되고있는데요
할수있는 것은 수는 거의 정해져있지 않다고 봐도 됩니다.
요구사항의 경우의 수가 딱 몇가지로 제한되지 않지요
지원되는 모듈 안에서 인터넷 없이 할수 있는 것들이라면 무엇이라도 가능하다고 볼수 있습니다.