코드 작성을 위해 ChatGPT를 사용하는 방법

ChatGPT를 사용하여 코드 작성하는 방법

ChatGPT에 대해 더 흥미로운 발견 중 하나는 그가 좋은 코드를 작성할 수 있다는 것입니다. 저는 2월에 이를 테스트해보았습니다. 아내의 웹사이트에서 사용할 수 있는 워드프레스 플러그인을 작성하도록 요청했더니 잘 해냈습니다. 하지만 그것은 매우 간단한 프로젝트였습니다. 

ChatGPT를 사용하여 다음을 작성하는 방법: 이력서 | 엑셀 수식 | 수필 | 자기소개서

일상적인 코딩 연습의 일환으로 ChatGPT를 사용하여 코드를 작성하는 방법은 무엇일까요? 여기서 알아보도록 하겠습니다.

ChatGPT가 잘 수행하는 코딩 유형은 무엇인가요?

ChatGPT와 코딩에 대해 중요한 두 가지 사실이 있습니다. 첫 번째는 실제로 유용한 코드를 작성할 수 있다는 것이고, 두 번째는 완전히 헤매거나 잘못된 코드를 생성할 수 있다는 것입니다.

또한: 코드를 빠르게 수정하기 위해 ChatGPT를 사용하고 있지만, 그 비용은 무엇인가요?

저는 이를 어려운 방법으로 깨달았습니다. 워드프레스 플러그인을 완성한 후, ChatGPT가 얼마나 멀리 갈 수 있는지 확인하기로 결정했습니다. 맥 애플리케이션에 대한 매우 신중한 프롬프트를 작성했고, 사용자 인터페이스 요소들에 대한 상세한 설명, 상호작용, 설정에서 제공되는 내용, 작동 방식 등을 자세히 기술했습니다. 그런 다음 ChatGPT에게 입력했습니다.

ChatGPT는 텍스트와 코드의 폭풍을 응답했습니다. 그러다가 코드 중간에서 멈추었습니다. 계속하도록 요청하니 더 많은 코드와 텍스트를 토해냈습니다. 계속하라고 요청하고 계속하라고 요청하니 더 많은 코드가 나왔습니다. 하지만… 사용할 수 있는 코드는 하나도 없었습니다. 코드가 어디에 들어가야 하는지, 프로젝트를 어떻게 구성해야 하는지를 식별하지 못했으며, 생산된 코드를 주의 깊게 살펴보면 요청한 중요한 작업을 빠뜨렸고, “프로그램 로직이 여기에 들어갑니다”라고 명시한 간단한 텍스트 설명만 남겨두었습니다.

또한: 실제로 ChatGPT가 내 코드를 디버깅했어요

여러 차례 반복된 테스트 후에, ChatGPT에게 완전한 애플리케이션을 제공하라고 요청하면 실패한다는 사실이 분명해졌습니다. 이 관찰의 부수적인 결과로, 코딩에 대해 아무것도 모르고 ChatGPT에게 뭔가를 만들어 달라고 하면 실패할 것입니다.

ChatGPT가 성공하는 분야는 이미 코딩을 알고 있는 사람이 특정 루틴을 작성하고 특정 작업을 완료하는 데 도움을 받는 것입니다. 메뉴 바에서 실행되는 앱을 요청하지 마세요. 하지만 ChatGPT에게 메뉴 바에 메뉴를 넣는 루틴을 요청하고, 그것을 프로젝트에 붙여넣으면 아주 잘 작동할 것입니다.

또한: 어떻게 ChatGPT를 사용하여 앱을 생성할 수 있을까요

또한, ChatGPT가 특정 도메인 지식을 많이 가지고 있다고 보이지만(실제로 종종 그렇습니다), 지혜는 없습니다. 따라서 코드를 작성할 수도 있지만, 매우 구체적이거나 복잡한 문제에 대한 세부 특성을 이해하기 위해 깊은 경험이 필요한 코드를 작성할 수는 없습니다.

ChatGPT를 사용하여 기법을 데모하거나 작은 알고리즘을 작성하고 하위 루틴을 생성하세요. ChatGPT에게 더 큰 프로젝트를 작은 단위로 분해하고, 그 단위를 코드로 작성하도록 요청할 수도 있습니다.

그러니 이를 염두에 두고 ChatGPT를 사용하여 코드를 작성하는 방법에 대해 구체적인 단계를 살펴보겠습니다.

ChatGPT가 코드 작성에 도움을 줄 수 있는 방법

1. 요청을 좁히고 정확하게 해주세요

첫 번째 단계는 ChatGPT에게 무엇을 요청할 것인지 결정하는 것입니다. 하지만 아직 아무 것도 요청하지 마세요. 함수 또는 루틴이 무엇을 해야 하는지 또는 코드에 통합할 학습할 내용이 무엇인지 결정하세요. 코드에 전달할 매개변수와 원하는 결과도 결정하세요. 그리고 그것을 어떻게 설명할 것인지 살펴보세요.

또한: 더 나은 ChatGPT 프롬프트를 작성하는 방법

상상해보세요. 당신이 인간 프로그래머에게 이 작업을 맡긴다고 가정해봅시다. 당신은 그 사람에게 충분한 정보를 제공하여 과제를 수행할 수 있게 했나요? 아니면 너무 모호해서 지불하는 사람이 질문을 던지거나 원하는 것과 전혀 관련 없는 결과물을 제출할 가능성이 높은가요?

예를 들어봅시다. 어떤 웹 페이지든 요약할 수 있는 기능을 원한다고 가정해봅시다. 이 기사와 같은 내용을 입력하고 잘 고려되고 적절한 짧은 요약을 받고 싶습니다. 입력으로는 웹 페이지 URL을 지정하고 출력으로는 요약된 텍스트 블록이여야 합니다.

2. ChatGPT를 사용하여 라이브러리와 자료 조사하기

위의 예를 계속해서, 웹 페이지 데이터를 추출하는 매우 오래된 방법은 HTML 단락 태그 사이의 텍스트를 찾는 것이었습니다.

하지만 AI 도구의 등장으로 인해 지능적인 추출과 요약을 위해 AI 라이브러리를 사용하는 것이 더 합리적입니다. ChatGPT는 라이브러리와 자료를 찾는 데 뛰어나며 (그리고 그것은 권위적이지만 잘못된 동작 패턴을 피하기 위해 쉽게 확인할 수 있는 영역입니다) 여기에서 우리가 원하는 작업을 수행하는 GPT-3 및 GPT-4 엔진에 대한 API 액세스를 판매합니다.

또한: ChatGPT가 소스와 인용을 제공하는 방법

OpenAI (ChatGPT의 제작자)는 우리가 원하는 것을 정확히 수행할 GPT-3 및 GPT-4 엔진에 대한 API 액세스를 판매합니다. 그러나 이 예제의 경우, 거래 수수료를 지불하고 싶지 않습니다.

그래서 ChatGPT와 상호 작용하여 PHP에서 무료로 이러한 도구를 사용하는 방법을 알아보겠습니다.

나는 원하는 기능을 제공하는 라이브러리에 대한 정보를 추출하기 위해 설계된 프롬프트로 시작했습니다. 라이브러리 (프로그래머가 아닌 독자분들을 위해 설명하자면)는 특정 목적을 위해 프로그래머가 액세스할 수 있는 코드 집합입니다. 현대 프로그래밍의 큰 부분은 적절한 라이브러리를 찾고 선택하는 것입니다. 그래서 이것은 좋은 시작점입니다.

또한: 나는 ChatGPT를 사용하여 12가지 주요 프로그래밍 언어로 동일한 루틴을 작성했습니다. 그 결과는 이렇습니다

이 경우, 나는 텍스트를 요약하는 다른 사람이 작성한 코드 블록을 살펴보고 있습니다. 첫 번째 프롬프트는 다음과 같습니다:

어떤 웹 페이지의 주요 콘텐츠에 대한 요약을 생성하기 위해 사용할 수 있는 10가지 다른 오픈 소스 AI 라이브러리 (및 해당 언어)를 설명하십시오. 광고나 포함된 자료를 무시하십시오.

이렇게 하면 OpenAI의 제공 사항을 포함하여 원하는 결과를 얻을 수 있습니다. OpenAI는 여기에 적합할 것이라고 생각하지만, 이 가상의 프로젝트에서는 API 수수료에 예산을 할당하고 싶지 않습니다. 그러므로 질문을 좀 더 구체화합니다.

이 중 어느 것이 무료인가요?

ChatGPT는 답변에서 두루뭉실한 태도를 보였습니다. 이렇게 말했습니다. “네, 이 10가지 AI 라이브러리 모두 오픈 소스이며 무료로 사용할 수 있습니다. 그러나 일부 라이브러리는 사용 제한이 있거나 추가 기능이나 자원에 액세스하기 위해 지불이 필요할 수 있습니다.” 그렇기 때문에 이를 바탕으로 질문을 명확하게 해석했습니다.

이 라이브러리 중 어느 것들은 사용 제한이 없고 추가 결제나 라이선스가 필요하지 않나요?

이는 매우 대화형인 점에 유의하십시오. 원래 질문을 다시 하지 않아도 됩니다. 저는 단지 손에 전문가가 있고 명확한 해석을 찾는 상황과 같이 계속 상세히 묻고 있을 뿐입니다. 이 경우, ChatGPT는 8개의 라이브러리 선택지를 제공했지만, 그 중에는 나의 코딩 언어인 PHP가 언급되지 않았습니다. 그래서 다음 프롬프트를 제시했습니다.

그 8개의 라이브러리 중에서 PHP와 함께 사용할 수 있는 것이 있나요?

세 개의 라이브러리가 반환되었지만, 각각이 무엇을 하는지 잘 모르겠습니다. 따라서 다른 질문을 했습니다.

Sumy, Gensim 및 NLTK의 차이점은 무엇인가요?

아직 확신이 서지 않아 사용 계획을 명확히하고 다음과 같이 물었습니다.

웹 페이지 뉴스 기사의 요약을 생성하려면 어떤 라이브러리가 더 잘 작동할까요?

제가 받은 답변은 명확하고 유망했습니다. “Sumy는 텍스트 요약을 위해 특별히 설계되었으며, 텍스트 조각에서 가장 중요한 정보를 포착하는 요약을 생성하는 작업입니다.” 따라서 이제 PHP와 함께 사용하는 방법을 확인해야 할 시간이 되었습니다. 이 프로젝트의 마지막 질문을 했습니다.

PHP에서 Sumy를 사용하는 방법을 설명해 줄 수 있나요?

컴퓨터에서 자유롭게 진행하고 ChatGPT 인스턴스에 이 프롬프트를 붙여넣으세요. 1단계에서 어떤 프로그램 모듈에 도움을 받을지 결정했습니다. 그런 다음 이 단계에서 ChatGPT와 대화하여 어떤 라이브러리를 사용하고 프로젝트에 통합하는 방법을 결정했습니다.

또한: 최고의 인공지능 챗봇: ChatGPT 및 다른 흥미로운 대안들

프로그래밍처럼 보이지 않을 수도 있지만, 확실히 프로그래밍입니다. 프로그래밍은 코드 줄을 페이지에 쏟는 것뿐만 아니라 다양한 리소스와 시스템을 어떻게 통합하고 솔루션의 다양한 구성 요소와 대화하는 방법을 찾는 것입니다. 여기에서 ChatGPT는 그 통합 분석을 도와주었습니다.

그런데 구글의 Bard도 동일한 방식으로 도움이 될 수 있는지 궁금했습니다. Bard는 실제로 코드를 작성할 수는 없지만, ChatGPT의 응답에 추가적인 통찰력을 제공했습니다. 원하는 답변을 찾기 위해 여러 도구를 사용하는 데 주저하지 마세요. 이야기는 여기에서 확인할 수 있습니다: Bard vs. ChatGPT: Bard로 코딩할 수 있을까요? 제가 그 기사를 쓴 이후로 Google은 Bard에 일부 코딩 기능을 추가했지만, 그렇게 좋지는 않습니다. 여기에서 읽어볼 수 있습니다: Google Bard의 새로운 코딩 능력을 테스트했습니다. 그러나 성과는 좋지 않았습니다.

이제 코딩을 시작합니다.

3. ChatGPT에게 예제 코드 작성 요청하기

그럼 여기서 잠시 중단해 봅시다. 이 기사는 “코드 작성을 위해 ChatGPT를 사용하는 방법”이라는 제목이지만, 그렇게 할 것입니다! 하지만 우리는 실제로 ChatGPT에게 예제 코드 작성을 요청하는 것입니다. 어떻게요?

또한: GPT-4가 무엇인지 알아야 할 모든 것

명확하게 말하자면, ChatGPT는 매우 작은 함수(내 아내를 위해 ChatGPT가 작성한 줄 정렬/랜덤화 함수와 같은)를 작성하는 경우를 제외하고 최종 코드를 작성할 수 없습니다. 먼저, 여러분은 그 코드를 유지해야 합니다. ChatGPT는 이미 작성된 코드를 수정하는 데 매우 형편없습니다. 매우 형편없다는 것이죠, 그것을 하지 않습니다. 따라서 새로운 코드를 얻으려면 ChatGPT에게 새로운 내용을 생성하도록 요청해야 합니다. 이전에 알아본 바와 같이, 프롬프트가 거의 동일하더라도 ChatGPT가 제공하는 내용이 예상치 못한 방식으로 변경될 수 있습니다.

그러므로 결론적으로 말하면, ChatGPT는 여러분의 코드를 유지하거나 조정할 수 없습니다.

그것은 여러분이 직접 해야 한다는 것을 의미합니다. 우리는 알고 있듯이, 코드의 초안은 거의 결코 최종 코드가 되지 않습니다. 따라서 ChatGPT가 최종 코드를 생성하도록 기대한다 하더라도, 그것은 실제로 시작점이 될 것이며, 여러분은 그것을 완성시키고 더 큰 프로젝트에 통합하고, 테스트하고, 개선하고, 디버그하는 등의 작업을 해야 할 것입니다.

또한: ChatGPT에게 짧은 스타 트렉 에피소드 작성을 요청했더니 성공했습니다

하지만 이는 예제 코드가 쓸모없다는 의미는 아닙니다. 전혀 그렇지 않습니다. 제가 이전에 설명한 프로젝트를 기반으로 작성한 프롬프트를 살펴볼까요? 첫 번째 부분은 다음과 같습니다:

summarize_article이라는 PHP 함수를 작성하세요.

입력으로는 ENBLE.com이나 Reuters.com과 같은 뉴스 관련 사이트의 기사 URL이 제공될 것입니다.

ChatGPT에게 사용할 프로그래밍 언어를 알려주고 있습니다. 또한 시키는 작업에 대해 두 가지 샘플 사이트를 제공하여 ChatGPT가 기사의 스타일을 이해하는 데 도움을 주고 있습니다. 솔직히 말해서, ChatGPT가 그런 안내를 무시한 것은 아닌지 잘 모르겠습니다. 다음으로, 작업의 주요 부분을 알려줄 것입니다:

summarize_article 내부에서 제공된 URL의 웹 페이지 내용을 검색합니다. PHP 내부에서 Sumy 라이브러리와 필요한 다른 라이브러리를 사용하여 광고나 삽입된 자료를 무시하고 기사의 본문을 추출한 다음, 약 50단어로 요약합니다. 요약은 완전한 문장으로 구성되어야 합니다. 필요한 경우 마지막 문장을 완료하기 위해 50단어 이상을 사용할 수 있습니다.

이는 제가 직원에게 지시할 때와 매우 유사합니다. 그 사람이 Sumy에만 국한되지 않는다는 것을 알려주고 싶어했습니다. 다른 도구가 필요하면 사용하도록 했기 때문입니다.

또한: Midjourney AI를 사용하여 완벽한 얼굴 매치를 얻는 방법

나는 또한 원하는 요약을 위해 대략적인 단어 수를 지정했습니다. 루틴의 나중 버전은 그 수를 매개변수로 받을 수도 있습니다. 그리고 결과로 어떤 것을 원하는지 말했습니다:

처리가 완료되면, 코드 summarize_article을 호출하여 요약을 일반 텍스트로 반환하십시오.

결과 코드는 꽤 간단합니다. ChatGPT는 기사 내용을 가져오기 위해 다른 라이브러리(Goose)를 호출했습니다. 그런 다음 이를 50단어 제한으로 Summy에 전달하고 결과를 반환했습니다. 그게 다입니다. 그러나 기본적인 부분이 작성되면, 두 라이브러리에 전달되는 내용을 사용자 정의하고 결과를 전달하기 위해 프로그래밍으로 돌아가서 트윅을 추가하는 것은 단지 문제입니다.

주목할 만한 흥미로운 점 하나. ChatGPT는 작성한 루틴에 대한 샘플 호출을 생성했는데, 이 호출은 2021년 이후의 URL을 사용했습니다 (ChatGPT의 데이터셋이 끝나는 시기).

https://www.reuters.com/business/retail-consumer/teslas-musk-says-fremont-california-factory-may-be-sold-chip-shortage-bites-2022-03-18/

나는 그 URL을 Reuters 사이트와 Wayback Machine에서 확인해보았지만, 존재하지 않습니다. ChatGPT가 그냥 그것을 만들어 냈습니다.

FAQs

ChatGPT가 프로그래머를 대체합니까?

지금은 아니거나, 적어도 아직은 아닙니다. ChatGPT는 재능 있는 신입 프로그래밍 학생 수준에서 프로그램을 작성하지만 (첫해 학생처럼) 게으립니다. 매우 입문 수준의 프로그래머들의 필요성을 줄일 수도 있지만, 현재 수준에서는 코드 작성과 정보 조회를 입문 수준의 프로그래머들 (심지어 더 많은 경험을 가진 프로그래머들도)에게 더 쉽게 만들어주는 도구로 사용될 것이라고 생각합니다. 확실히 시간을 절약할 수 있지만, AI가 스스로 모든 작업을 수행할 수 있는 프로그래밍 프로젝트는 몇 개 없습니다. 적어도 현재는 그렇습니다. 2030년에는 어떨지 모르겠습니다.

ChatGPT에서 코딩 답변을 어떻게 얻을 수 있나요?

직접 묻으면 됩니다. 위에서 원하는 답변을 좁히기 위해 대화형 대화 창을 사용한 방법을 보았습니다. ChatGPT와 작업할 때, 한 가지 질문이 모든 작업을 마법처럼 해결해 주길 기대하지 마십시오. 그러나 ChatGPT를 도우미 및 자료로 사용하면 매우 유용한 정보를 많이 제공해줄 것입니다. 물론, 그 정보를 테스트하십시오 – 왜냐하면 OpenAI의 공동 창립자인 존 슈르만은 “우리의 가장 큰 걱정은 사실적인 면에 관한 것이었습니다. 모델이 것을 날조하는 것을 좋아하기 때문입니다.” 라고 말합니다.

코딩에 있어서 ChatGPT는 얼마나 신뢰할 만한가요? 생성된 코드를 믿을 수 있을까요?

아니오, 절대로 신뢰하지 마십시오. 그러나 인간 프로그래머가 작성한 코드도 신뢰할 수 없습니다. 저는 제가 작성한 모든 코드를 믿지 않습니다. 코드는 코드 생성 과정에서 매우 결함이 있습니다. 항상 버그가 있습니다. 제품 출시 전에 테스트하고, 또 테스트하고, 다시 테스트해야 합니다. 그런 다음 일부 선택된 피해자들과 알파 테스트를 진행해야 합니다. 그런 다음 더 넓은 사용자 커뮤니티와 베타 테스트를 진행해야 합니다. 그럼에도 불구하고 버그가 있을 것입니다. 이 코딩 것을 하는 AI가 그냥 하면 버그가 없는 코드를 만들 수 있다는 뜻은 아닙니다. 신뢰하지 마십시오. 항상 확인하십시오. 그리고 여전히 완전히 버그가 없을 것입니다. 그것이 우주의 본질입니다.

ChatGPT를 사용하여 내 코드를 작성하면 누가 소유하나요?

실제로 이 질문에 확정적으로 대답하기 위해 아직 많은 사례법이 없습니다. 미국, 캐나다 및 영국은 저작권이 부여되기 위해서는 인간의 손으로 작성되어야 한다는 것을 요구하므로, AI 도구가 생성한 코드는 저작권이 없을 수도 있습니다. 또한, 훈련 코드의 출처와 생성된 코드의 사용 방법에 따라 책임 문제도 있습니다. ENBLE은 이 주제에 대해 깊이 파고들고, 법률 전문가들과 대화를 나누었으며, 다음 세 개의 기사를 작성했습니다. 이 문제에 대해 우려가 있으면 (그리고 코드 작성에 AI를 사용하는 경우에는 그렇게 될 것입니다), 이 기사들을 꼭 읽어보시기 바랍니다.

  • 코드는 누구의 것인가요? ChatGPT의 AI가 앱을 작성하는 데 도움이 되면 여전히 내 것인가요?
  • AI로 생성된 코드를 사용하면 책임이 있나요?
  • 가시화된 코드, 이미지 및 내러티브를 생성하는 AI의 소유자는 누구인가요?

ChatGPT는 어떤 프로그래밍 언어를 알고 있나요?

대부분의 것들입니다. 이를 시도하면서 정말로 주의를 딴데로 돌렸습니다. PHP, Python, Java, Kotlin, Swift, C# 등과 같은 일반적인 현대 언어들을 테스트해보았습니다. 하지만 그런 다음에는 COBOL, Fortran, Forth, LISP, ALGOL, RPG(보고서 프로그램 생성기, 롤플레잉 게임이 아님), 심지어 IBM/360 어셈블리어와 같은 희미하게 알려진 고대 언어들로 코드를 작성하도록 하였습니다.

덧붙여 이런 요구사항을 주었습니다:

PDP 8/e의 프런트 패널에서 ascii 깜빡이는 불빛으로 ‘Hello, world’를 표시하는 시퀀스를 작성하십시오.

PDP 8/e는 나의 첫 번째 컴퓨터였으며, ChatGPT는 실제로 프런트 패널 스위치를 사용하여 프로그램을 토글하는 방법에 대한 지침을 제공했습니다. 저는 감동받았고, 기쁘고, 약간 두려웠습니다.

또한: 챗GPT를 사용하여 책, 기사 또는 연구 논문을 요약하는 방법

결론은 무엇인가요? ChatGPT는 매우 유용한 도구가 될 수 있습니다. 다만, 그에게 초자연적인 능력을 부여하지 마십시오. 아직은요.


저의 일상적인 프로젝트 업데이트를 소셜 미디어에서 팔로우할 수 있습니다. Twitter에서는 @DavidGewirtz, Facebook에서는 Facebook.com/DavidGewirtz, Instagram에서는 Instagram.com/DavidGewirtz, YouTube에서는 YouTube.com/DavidGewirtzTV로 팔로우해주세요.