웹사이트 검색

ChatGPT가 기존 코드를 다시 작성하고 개선하는 방법


우리는 이 생성 AI 도구가 코드를 생성할 수 있다는 것을 알고 있었지만 ChatGPT가 코드를 설명하고 다시 작성할 수도 있다는 것을 알고 계셨습니까? 어쩌면 우리는 그것을 코드 위스퍼러(Code Whisperer)라고 불러야 할 것 같습니다.

지난 몇 달 동안 우리는 ChatGPT의 코드 생성 기능을 탐색해 왔습니다. ChatGPT는 "생성 AI"로 간주되며 프롬프트에서 코드를 생성하는 것은 확실히 생성 용어에 적합합니다. 우리는 이것이 완벽하게 작동하는 WordPress 플러그인을 생성하고 주류 언어와 모호한 언어 모두에서 수십 가지 언어로 코드를 작성하는 방법을 보여주었습니다.

그러나 최근의 일부 실험에서 저는 또 다른 기능을 알게 되었습니다. ChatGPT는 코드를 읽고 분해할 수 있다는 것입니다. 디버깅을 지원하는 도구로 ChatGPT를 사용하는 방법을 탐색하면서 이 기능에 대한 힌트를 얻었습니다. 나는 작은 코드 블록과 오류 메시지를 입력했고, 내가 어디에서 잘못되었는지 보여줄 수 있었습니다.

하지만 오늘 제가 보여드릴 것은 ChatGPT가 어떻게 코드를 이해하고 잠재적으로 재작성하는 데 도움을 줄 수 있는지입니다. 이것은 꽤 큰 일입니다.

자바스크립트 설명

이를 설명하기 위해 입력 값이 통화인지 확인하는 작은 JavaScript 코드부터 시작하겠습니다. 첫 번째와 세 번째 줄에서는 상대적으로 난해한 정규 표현식을 사용하는데, 이에 대한 도움을 요청하겠습니다.

ChatGPT에서 코드의 기능을 설명하는 것부터 시작하겠습니다. 이는 특히 다른 프로그래머로부터 코드를 상속받는 경우 매우 강력한 기능입니다. ChatGPT가 옳다는 보장은 없지만 코드 작동 방식을 느낄 수 있게 하여 시간을 절약할 수 있습니다. 나는 프롬프트를 사용했습니다 :

다음 코드를 설명해보세요

코드 블록을 붙여넣었습니다. ChatGPT가 말한 내용은 다음과 같습니다.

이 기능을 사용하여 몇 가지 흥미로운 작업을 수행할 수 있습니다. 예를 들어 ChatGPT가 코드를 다시 작성하도록 할 수 있습니다. 예를 들어 저는 ChatGPT에 다음과 같이 물었습니다.

정규식을 사용하지 않도록 다음 줄을 다시 작성합니다.

return !isNaN(n) && n >= 0 && /^\d+(\.\d{1,2})?$/.test(str);

다음 답변은 코드를 간결하게 유지하는 정규식의 힘과 기존 코드를 가져와 다시 작성하는 ChatGPT의 능력을 모두 보여줍니다.

GitHub 저장소의 오픈 소스 C 코드 설명

두 번째 예에서는 오픈 소스 그래픽 편집기인 Gimp를 사용하여 작업하고 있습니다. 오픈 소스 애플리케이션의 .PSD 가져오기 섹션에서 실행되는 438행에서 시작하는 코드 블록을 살펴보겠습니다. 해당 코드는 다음과 같습니다.

다시 한 번 ChatGPT에 코드 설명을 요청했고 응답은 다음과 같습니다.

이것이 더욱 강력해지는 곳은 ChatGPT를 사용하여 언어 변환을 수행할 수 있다는 것입니다. ChatGPT에 원본 C에서 Python으로 다시 작성해 달라고 요청했습니다.

해당 코드를 Python으로 다시 작성하고 최대한 간결하게 만드세요.

ChatGPT는 코드 뒤에 다음 사항도 언급했습니다. 메모리 관리는 Python의 가비지 수집기에 의해 자동으로 처리되므로 원본 코드의 g_free 함수는 Python 버전에 포함되지 않습니다.

기존 코드 개선

이 예에서는 특히 만족스럽지 않은 코드 섹션을 ChatGPT에 제공했습니다. 내 코드는 WordPress 데이터베이스 검색을 수행하고 특정 항목을 업데이트합니다. 원본 코드는 다음과 같습니다.

나는 물었다:

다음 코드를 개선할 수 있나요?

그것은 나에게 새로운 코드 블록을 주었다:

또한 그것이 무엇을 했는지에 대한 설명도 제공했습니다.

여기에는 한 가지 이상한 점이 있습니다. 동일한 쿼리를 통해 동일한 코드를 두 번 실행했습니다. 두 번째로 한 가지 더 개선되었습니다. SELECT를 사용하는 대신 필요한 열(option_id, option_name 및 option_value)만 선택하도록 SQL 쿼리가 수정되었습니다. 이렇게 하면 불필요한 데이터 검색을 줄여 성능을 향상시킬 수 있습니다.

해당 코드 블록은 다음과 같습니다.

이 두 번째 버전의 코드에는 실제로 가장 중요한 변경 사항이 포함되어 있어 데이터베이스 쿼리의 효율성이 향상됩니다. 나는 정확히 동일한 프롬프트로 ChatGPT에 입력된 동일한 코드가 두 가지 다른 결과를 생성한다는 것이 이상하다고 생각합니다.

세 번째 시도했는데 ChatGPT에서 주석 처리된 행을 추가한 코드를 제공했습니다. 원본 코드에서 주석 처리된 '%testy@test.com%'과 같은 추가 조건 option_value를 포함하도록 SQL 쿼리가 수정되었습니다. .

해당 코드는 다음과 같습니다.

그건 절대 안돼요. 코드를 다시 작성하여 주석 처리된 코드 줄에 다시 포함해서는 안 됩니다. 해당 코드는 이유 때문에 주석 처리되었습니다.

생각할 거리

AI의 기능에 대한 다른 많은 탐구와 마찬가지로 저는 그것이 매우 유용하면서도 약간 촌스럽다는 것을 발견했습니다.

마지막 예에서 ChatGPT가 하나의 코드 블록에서 세 가지 다른 버전을 반환했다는 사실은 약간 이상합니다. 또한 문제는 세 번째 시도가 주석 처리된 코드 라인을 통합했기 때문에 본질적으로 사용할 수 없다는 사실입니다.

다시 한 번 권장 사항은 다음과 같습니다. 코딩 도움말을 위해 ChatGPT를 자유롭게 사용할 수 있지만 일관성이 없다는 점에 유의하세요. 이러한 일관되지 않은 결과를 확인할 수 있을 만큼 코딩 방법을 잘 알고 있는지 확인하세요. 초보자 코더라면 ChatGPT에 전적으로 의존하여 작업을 수행하지 마세요. 그것이 제공하는 모든 것을 검사하고 테스트하십시오.

ChatGPT를 사용하여 코드를 설명하거나 다시 작성해 보셨나요? 아래 댓글로 공유해 주세요.

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

관련기사