본문 바로가기
얼리어답터 리뷰/IT정보

개발자가 본 챗GPT Engineer의 깃허브 AI와 함께하는 코딩 프로젝트

by 엔돌슨 2023. 6. 23.
반응형

개발자가 본 챗GPT Engineer의 깃허브 AI와 함께하는 코딩 프로젝트

프로그램(개발자)은 인공지능 AI 시대에 코딩을 어떻게 해야 할까? 최근 챗GPT를 사용하여 PR(Pull Request, 코드 리뷰)를 시켜 보았습니다. 개발자가 놓친 부분을 찾아주거나 다른 코딩 제안을 잘해줍니다.

인공지능 AI 기술의 발전은 사회의 모든 분야에 영향을 미치고 있지만, 특히 프로그래밍 분야는 그 영향력이 두드러집니다. 과거에는 기계와 대화를 나누는 것이 공상과학 소설에서나 나올 법한 이야기였지만, 지금은 이것이 현실이 되었습니다. AI가 우리의 일상에 깊숙이 들어와, 이제는 코드를 작성하는 방식마저 변화시키고 있습니다. 

 

이제는 개발자가 필요 없는 노코드(No-code)가 가능한 시대일지도 모릅니다. 하지만 GPT를 사용한 개발자가 더 유망한건 사실입니다. 필자도 개발자이지만, GPT를 매일 활용하며, 깃허브 코파일럿을 사용합니다.

 

 

 

노코드(No-code) 플랫폼이란?
노코드(No-code) 플랫폼이란, 개발자가 아닌 사람들도 복잡한 코딩 없이 애플리케이션을 개발할 수 있게 해주는 도구입니다. 드래그 앤 드롭 인터페이스를 사용해, 데이터베이스, UI, 로직, 백엔드 서비스 등을 설계하고 구성할 수 있습니다.

노코드 플랫폼은 기업이나 개인들이 개발 비용을 크게 줄이면서도 신속하게 애플리케이션을 만들 수 있게 해줍니다. 일반적으로 이런 플랫폼들은 사용자 경험(UX)에 집중하여, 비개발자도 쉽게 사용할 수 있도록 설계되어 있습니다.

1. 노코드 플랫폼의 장점

비용 절감: 복잡한 코딩이나 개발자의 필요성을 줄여, 개발 비용을 절감할 수 있습니다.
속도: 빠른 프로토타이핑과 개발 속도를 가능하게 합니다. 복잡한 코드를 작성하거나 이해할 필요가 없기 때문에 개발 시간을 크게 단축시킬 수 있습니다.
접근성: 프로그래밍 지식이 없는 사람들도 자신의 아이디어를 실현시킬 수 있게 해줍니다.
유지보수: 코드 변경 없이 사용자 인터페이스를 통해 업데이트하고 수정할 수 있어, 유지보수가 간편합니다.

2. 노코드 플랫폼의 한계

하지만, 노코드 플랫폼이 모든 개발 문제를 해결해주지는 않습니다. 복잡하고 맞춤형 기능이 필요한 프로젝트에는 적합하지 않을 수 있으며, 플랫폼이 제공하는 기능 밖에 사용할 수 없다는 제한도 있습니다. 또한, 노코드 플랫폼을 사용하면 그 플랫폼에 종속될 수 있으며, 플랫폼이 변경되거나 없어지면 그에 따른 리스크도 부담해야 합니다. 

 

결국 개발자가 필요해!!

전문가가 검증을 해줘야지~!! 커스텀마이징을 원한다면 프로그래머(개발자)가 필요하지!

 

 

 

챗GPT 사용하는 개발자(프로그래머)


GPT를 이용하면 개발자는 기계와 대화하듯이 자신의 의도를 표현하고, AI는 그에 맞는 코드를 생성해 낼 수 있습니다. 더 빠르고 쉽게 개발자는 프로그래밍을 할 수 있는 도구를 얻게 됩니다. 그래서 복잡하고 반복적인 코딩 작업에서 벗어나 창의적인 문제 해결에 집중할 수 있게 됩니다.

 

챗GPT 플러그인에서 인터넷 연결가능하게 빙 검색을 선택하면, 검색된 데이터를 챗GPT가 정리해서 해결해 줍니다.

 

이제 우리는 AI의 도움을 받아 프로그래밍을 하는 새로운 시대, 즉 'AI 시대의 코딩'에 발을 들여놓게 된 것입니다.

 

 

최근 오픈소스 프로젝트인 'GPT Engineer'를 관심있게 보아서 살펴보았습니다. 이제 Artificial General Intelligence (AGI, 일반인공지능)에 가까워지며 AutoGPT처럼 알아서 문제를 해결합니다.

 

비슷한 프로젝트로 GPT Engineer 이 있어 살펴보았습니다.

https://github.com/AntonOsika/gpt-engineer

 

GitHub - AntonOsika/gpt-engineer: Specify what you want it to build, the AI asks for clarification, and then builds it.

Specify what you want it to build, the AI asks for clarification, and then builds it. - GitHub - AntonOsika/gpt-engineer: Specify what you want it to build, the AI asks for clarification, and then ...

github.com

GPT Engineer 프로젝트는 사용자가 개발하고 싶은 것을 지정하면, AI가 설명을 요청하고 그것을 기반으로 코드를 구축하는 방식으로 작동합니다.

 

 

GPT Engineer는 다음과 같은 특징들을 가지고 있습니다:

 

1. 간단한 프롬프트를 통해 전체 코드베이스를 생성합니다. 이를 통해 개발자는 AI가 어떻게 코드를 작성할지 학습하도록 할 수 있습니다.

 

2. 이 프로젝트는 가치를 얻는 것이 간단하며, 'steps.py'에서 확인할 수 있는 새로운 'AI 단계'를 쉽게 추가할 수 있습니다. 이를 통해 사용자는 AI에게 시간이 지남에 따라 기억할 피드백을 제공하며, AI와 사람 간의 빠른 핸드오버를 가능하게 합니다.

 

3. 모든 계산은 "재개 가능"하며 파일 시스템에 저장됩니다. 이로 인해 'GPT Engineer'는 개발 과정의 어떤 단계에서든 중단하고 다시 시작할 수 있는 유연성을 제공합니다.

 

4. 'GPT Engineer'를 사용하려면, 안정적인 릴리즈를 위해 'pip install gpt-engineer'를 실행하거나, 개발을 위해 GitHub에서 이 프로젝트를 복제하고 설치할 수 있습니다. 프로젝트를 실행하려면, GPT4 액세스 권한이 있는 API 키가 필요하며, 사용자는 새 폴더를 생성하고 'main_prompt' 파일을 채워 넣은 후 'gpt-engineer'를 실행하면 됩니다.

 

5. 'GPT Engineer'는 사용자가 AI 에이전트의 "정체성"을 지정할 수 있게 해 줍니다. 이를 통해 개발자는 프로젝트 간에 에이전트가 기억하는 것을 제어할 수 있습니다. 각 단계의 통신 기록은 로그 폴더에 저장되며, 수정된 메시지 로그를 다시 실행할 수 있습니다.

 

 

GPT Engineer 사용방법

GPT Engineer의 사용 방법은 꽤 간단합니다. 가장 먼저 깃허브 페이지를 방문하여 프로젝트를 클론 합니다. 그다음 프롬프트를 통해 자신이 원하는 코드 구조나 기능을 AI에게 전달하면 됩니다. 이때, 원하는 개발언어, 스펙, 유닛테스트 방식 등을 명확히 전달할 수 있습니다.

 

AI는 전달받은 정보를 바탕으로 코드를 생성하며, 이 과정에서 필요하다면 개발자에게 추가 정보를 요청할 수 있습니다. 생성된 코드는 저장되어 언제든지 재사용할 수 있습니다.

 

결국 GPT Engineer 프로젝트는 내가 원하는 것을 적어주면, 인공지능AI가 그것을 구축합니다.

이제 개발도 말로 요구사항만 잘 정리해주면 챗GPT가 알아서 그걸 개발해 준다는 것입니다.

 

그런데, 실제로 챗GPT에게 프로그래밍을 시켜보면 문제가 발생합니다.

간단한 프로젝트야 문제가 없지만, 대화가 길어지면 이전 대화를 까먹으면서 코드가 계속 변형됩니다.

파일 갯수도 달라지고, 폴더 위치도 달라집니다. 그나마 폴더, 파일 구조를 처음에 받아 고정시켜도 계속 변경됩니다.

 

또 챗GPT로 개발된 생성된 코드를 실행하면 컴파일 오류를 만납니다.

이걸 문과생이 해결한다고요? 주니어 개발자가 해결한다고요?

챗GPT에게 다시 물어 도움을 받습니다. 그렇지만, 해결되지 않습니다.

 

또 개발된 코드가 의도대로 동작하지 않습니다. 시니어 개발자는 알고 있습니다. 왜 변경된 데이터를 이렇게 가공했지? 하지만 챗GPT와 주니어개발자는 모르죠? 전문성이 없고 시키는 대로 컴파일하고 개발했으니깐요.

 

그래서 다시 요구하면 정상적인 코드와 빌드된 결과물을 얻을 수 있습니다.

이처럼 아직 넘어야 하는 산이 많습니다.

 

GPT는 사실이 아닌것을 마치 사실처럼 이야기합니다. 이런 GPT의 단점을 환각(hallucination, 할루시네이션) 현상이라고 합니다. 결국 전문가가 검증하는 과정이 필요합니다.

 

그렇지만 긍정적으로 볼 수 있습니다. 개발자의 역할이 미래에 줄어드는 게 아니라 편해지겠죠?

GPT Engineer는 AI 기술이 개발 영역에 미치는 영향을 대표하는 프로젝트 중 하나라고 할 수 있습니다. 그래서 개발자는 더 빠르고, 더 효과적으로 원하는 코드를 작성하고, 동시에 자신의 코딩 스타일을 AI에게 학습시킬 수 있습니다.

 

AI와 함께하는 코딩 시대가 이미 도래한 만큼, 이러한 도구를 활용하여 생산성을 높이고, 동시에 새로운 가능성을 탐색해 보는 것이 좋을 것 같습니다. GPT Engineer를 통해 AI와 개발 사이의 새로운 시너지를 경험해 보기 위해서 새로운 GPT 소식정보가 계속 올라오니 테스트해보아야겠습니다.