ChatGPT는 이러한 작업을 실행하는 데 얼마나 능숙합니까?

ChatGPT의 기능을 결정하는 가장 효과적인 방법은 실험을 통해 확인하는 것입니다. 이를 입증하기 위해 저희는 ChatGPT에 기본 웹 애플리케이션을 처음부터 만들도록 지시했습니다. 다음은 실험 결과와 ChatGPT를 활용하여 웹 사이트를 구축하는 절차를 나타냅니다.

1단계: 웹 앱의 청사진 생성

모든 플랫폼을 사용하여 웹 애플리케이션을 구축할 때는 원하는 모양과 필요한 개발 단계에 대한 세부 계획을 작성한 후 ChatGPT가 제어할 수 있도록 하는 것이 필수적입니다.

제작하고자 하는 웹 기반 채팅 애플리케이션의 요구 사항에 대한 설명을 바탕으로 자연어 처리 및 소프트웨어 엔지니어링 원칙에 대한 전문 지식을 활용하여 개발을 위한 포괄적인 설계 계획을 수립했습니다.

이전 프롬프트에서 제공된 데이터를 기반으로

위에 표시된 것과 유사한 순서도를 만들려면 사용자의 ChatGPT 계정 내에서 “Show Me” 플러그인을 활성화해야 합니다. ChatGPT 플러그인을 설치하고 활용하는 과정은 몇 가지 간단한 단계만 거치면 되지만, 전체 액세스 권한을 얻으려면 프리미엄 구독이 필요합니다.

플러그인을 사용하면 그래픽 인터페이스 형태의 시각적 표현을 제공하는 반면, 플러그인이 없으면 애플리케이션의 아스키 아트 순서도 또는 일반 텍스트 청색 인쇄물 형태의 텍스트 레이아웃이 생성됩니다. 그럼에도 불구하고 다음 그림에서 볼 수 있듯이 플러그인이 없는 경우에도 ChatGPT는 소프트웨어의 포괄적이고 이해하기 쉬운 도식을 제공할 수 있습니다.

2단계: 청사진을 더 작은 모듈로 나누기

1) 학생들이 다양한 과목의 성적을 확인하고 AI 기반 어시스턴트로부터 개인화된 학습 팁을 받을 수 있는 대시보드입니다. 어시스턴트는 데이터 분석을 통해 학생의 행동을 분석하고 성적 향상을 위한 관련 추천을 제공합니다. 이 구성 요소를 대시보드라고 합니다. 2) 또 다른 구성 요소는 교사나 강사가 선택한 주제에 따라 평가를 만들 수 있는 연습 시험 빌더 도구입니다. 학생은 이러한 시험을 통해 자신의 지식을 테스트하고 개선이 필요한 영역을 파악할 수 있습니다. 이 구성 요소를 연습 시험 빌더라고 합니다. 3) 마지막으로, 학생들이 비디오, 튜토리얼 및 퀴즈와 같은 멀티미디어 콘텐츠에 액세스할 수 있는 온라인 학습 플랫폼이 있습니다. 이러한 리소스는 다양한 주제에 대한 이해를 높이고 더 즐겁게 공부할 수 있도록 설계되었습니다. 이 구성 요소를 학습 플랫폼이라고 합니다.

등록 모듈은 사용자가 계정을 만들고 관리할 수 있는 시스템의 구성 요소입니다. 여기에는 비밀번호 복구, 이메일 확인, 사용자 프로필 관리 등의 기능이 포함되어 있습니다. 이 모듈은 업계 표준 암호화 알고리즘을 구현하여 모든 사용자의 안전한 인증 및 권한을 보장합니다.

로그인 모듈은 사용자가 사용자 이름과 비밀번호와 같은 자격 증명을 입력하여 계정에 액세스할 수 있도록 하는 프로그램입니다. 사용자에게 계정에 대한 액세스 권한을 부여하기 전에 사용자의 보안 인증을 보장합니다.

이 글도 확인해 보세요:  ChatGPT가 업무 생산성을 향상시키는 7가지 놀라운 방법

챗봇은 텍스트 또는 음성 입력을 통해 인간 사용자와의 대화를 시뮬레이션하도록 설계된 프로그램입니다. 챗봇은 자연어 처리 및 머신 러닝 알고리즘을 사용하여 유용하고 정확한 정보를 제공하기 위해 사용자 쿼리를 이해하고 이에 응답합니다. 챗봇의 목표는 반복적인 작업을 자동화하고 일반적인 질문에 대한 응답 시간을 단축하여 고객 서비스의 접근성과 효율성을 높이는 것입니다.

우리의 의도는 대체 개념을 탐색하는 것이었지만, 우리의 주요 목표는 ChatGPT가 행동 방침을 지시할 수 있도록 하는 데 있습니다.

등록 구성 요소 구축

특정 프로그램이나 애플리케이션에 대한 코드를 빌드하거나 작성할 수 있는 능력이 없기 때문에 이 작업을 수행할 수 없습니다. 하지만 소프트웨어 개발 프로젝트에서 해당 기능을 구현하는 방법에 대한 일반적인 정보를 제공하는 데 도움을 드릴 수 있습니다. 일반적으로 애플리케이션이나 웹사이트 내에서 사용자 등록에 필요한 기능을 구현하기 위해 Python 또는 JavaScript와 같은 알고리즘과 프로그래밍 언어를 활용하는 것이 일반적입니다. 여기에는 사용자 입력을 저장할 변수와 데이터 구조를 생성하고, 제공된 정보의 정확성과 완전성을 보장하기 위해 유효성 검사를 구현하며, 등록된 사용자와 관련 세부 정보를 저장하기 위해 MySQL 또는 MongoDB와 같은 데이터베이스 관리 시스템을 사용하는 것이 포함됩니다.

그 결과

ChatGPT의 등록 모듈 구현을 진행했습니다.

등록 프로세스에 비밀번호 입력 필드를 포함하기로 한 결정은 생성된 렌더링된 HTML 코드에 해당 필드가 포함된 것으로 보아 ChatGPT에서 적절하다고 판단한 것으로 보입니다. 이 코드는 원본 소스를 수정하지 않고 그대로 가져왔으며, 웹 브라우저 인터페이스에서 다음과 같이 시각적으로 표시됩니다.

다음으로 서버 측에 등록하기 위한 PHP 스크립트를 생성하도록 ChatGPT에 지시했습니다.처음에는 “양식 제출의 서버 측 처리를 위한 PHP 코드 생성”이라는 명령을 내렸고, 결과 스크립트는 예상대로 작동했지만 몇 가지 보안 취약점을 포함하고 있었습니다.

PHP 등록 스크립트의 초기 구현에는 비밀번호 해싱 부재, 부적절한 오류 처리, SQL 인젝션에 취약한 점 등 몇 가지 결함이 있었습니다. 그러나 이러한 문제는 ChatGPT를 도입하여 자체적으로 단점을 파악하고 해결함으로써 신속하게 수정되었습니다. 그 결과, 스크립트는 유능하고 배포할 준비가 되었습니다.

요청의 명료한 표현은 ChatGPT의 성능 결과를 형성하는 데 중요한 역할을 합니다. “이 코드로 문제를 해결하세요”라고만 명시한 이전 프롬프트는 기대했던 결과를 얻지 못했기 때문에 원하는 결과를 얻으려면 간결하고 명확한 지침을 제공해야 합니다. ChatGPT 프롬프트를 작성하는 기술을 향상시키기 위해 다음 리소스를 참조하여 효율적인 요청을 작성하는 방법을 배울 수 있습니다.

이 글도 확인해 보세요:  Rust의 제네릭 형식 알아보기

PHP 스크립트에서 수집한 정보에 대한 데이터베이스를 구축하는 SQL 코드를 작성하도록 ChatGPT에 요청했습니다. 결과 SQL 코드는 다음과 같습니다:

다음은 SQL 코드 실행의 결과 테이블의 표현입니다.

데이터베이스 구성이 성공적으로 설정되어 보고된 문제나 오류 없이 초기 등록 프로세스가 성공적으로 완료되었습니다.

로그인 컴포넌트 구축

등록 컴포넌트가 성공적으로 실행되었기 때문에, 저희는 로그인 컴포넌트 개발로 관심을 옮겼습니다. 당초 예상과는 달리 세션 관리와 관련된 추가적인 논리적 고려 사항을 통합했음에도 불구하고 프로젝트의 이 특정 측면은 비교적 복잡하지 않은 것으로 판명되었습니다.

로그인 페이지가 생성되었으며 등록 페이지와 유사한 색 구성표를 제공하는데, 이 디자인에서 주목할 만한 특징입니다.

ChatGPT에서 제공한 가이드라인을 준수하고 생성된 PHP 코드를 “server.login.php” 파일에 통합한 결과, 추가 조정이나 테스트 없이도 처음으로 로그인에 성공할 수 있었습니다.

채팅 컴포넌트 빌드

채팅 기능 개발은 이번 테스트에서 어려운 측면이 있었습니다. 처음에는 ChatGPT에 이 컴포넌트에 필요한 코드를 제공하도록 요청했지만, 이 접근 방식은 성공하지 못했습니다.사용자가 선호하는 다양한 요소를 제작하려면 더 복잡한 구성 요소를 더 간단한 부분으로 분해하여 순차적으로 처리하는 것이 필수적입니다.

챗봇은 채팅 인터페이스 내에 세 개의 별도 섹션을 설정해야 한다고 제안했습니다.

“Chat.php” 파일은 채팅 애플리케이션을 통해 사용자 간의 커뮤니케이션을 용이하게 하는 PHP 스크립트입니다. 이 스크립트를 통해 사용자는 메시지를 보내고, 대화를 보고, 새 메시지에 대한 알림을 받을 수 있습니다. 이 스크립트는 PHP 구문을 사용하여 사용자 입력을 처리하고, 데이터베이스에 연결하고, 데이터를 저장하고, 데이터베이스에서 정보를 검색하고, 메시지를 표시하고, 새 메시지에 대해 사용자에게 알립니다.

“메시지 보내기” PHP 파일을 사용하면 사용자가 웹사이트의 문의 양식을 통해 메시지를 보낼 수 있습니다. 이 파일은 사용자의 이름, 이메일 주소 등 다양한 입력을 받고 PHP의 내장된 ‘메일’ 함수를 사용하여 지정된 수신자에게 메시지를 보냅니다. 스크립트에는 메시지 전송에 문제가 발생할 경우를 대비한 오류 처리 섹션도 포함되어 있습니다.

“Fetch-Messages.php” 스크립트는 메일함에서 메시지 목록을 검색하여 웹 페이지의 HTML 테이블에 표시합니다. 이 스크립트는 PHP를 사용하여 메일 서버에 연결하고, IMAP을 사용하여 메시지를 검색하고, 원시 메시지 데이터를 형식이 지정된 HTML 테이블로 구문 분석합니다. 이를 통해 사용자는 메시지를 먼저 다운로드하거나 저장할 필요 없이 웹 브라우저에서 바로 이메일 메시지를 볼 수 있습니다.

대체 명칭을 사용하면 프로젝트의 코딩 범위 내에서 예기치 않은 문제가 발생할 수 있으므로 ChatGPT에서 제공하는 제안된 파일 이름에서 벗어나지 않도록 주의하세요. 과거의 경험은 이러한 사실을 입증했습니다. 이러한 실수를 반복하지 않으려면 ChatGPT에서 사용하는 권장 파일 이름 체계를 준수하시기 바랍니다.

이 글도 확인해 보세요:  ChatGPT는 안전한가요? OpenAI 챗봇의 6가지 사이버 보안 리스크

Chat.php 페이지 생성

채팅 인터페이스의 바람직한 모양에 관한 포괄적인 가이드라인을 ChatGPT에 제공했습니다.

생성된 HTML 코드를 실행했을 때 텍스트 입력란이 없는 채팅 인터페이스가 관찰되었습니다. 이 결함을 수정하기 위해 ChatGPT에 “텍스트 입력 섹션과 제출 버튼을 포함하도록 코드를 수정”하라고 지시했습니다. 웹 브라우저에서 본 결과 코드는 이후 시도에서 묘사된 대로 문제를 해결한 것으로 보입니다.

ChatGPT를 활용하여 이전에 실행된 코드 내의 모든 결함을 수정합니다. 필요에 따라 추가 기능이나 요소의 통합을 요청하고 코딩 최적화 방법에 대한 안내를 위해 어시스턴트를 활용하세요.

“send-messages.php” 및 “Fetch-messages” 생성 페이지

사용자 인터페이스가 만족스러워지자 대화 상호 작용을 관리하기 위한 스크립트 개발을 시작했습니다. 데이터베이스에서 메시지를 저장하고 검색하기 위해서는 “메시지” 테이블이 필요하다는 것이 분명해졌습니다. 따라서 챗봇에 이 테이블을 생성하기 위한 SQL 문을 생성하도록 요청했습니다.

SQL 코드를 생성한 후 챗봇에 대화 로직을 관리할 PHP 스크립트를 개발하도록 요청했습니다.

ChatGPT를 구현한 결과 두 개의 스크립트, 즉 “send-messages.php”와 “fetch-messages.php”가 생성되었습니다. 실행하자마자 예상치 못했지만 다행스러운 오류가 발생하여 프로젝트 내에서 디버깅 작업이 시작되었습니다. 지금까지 기술적인 문제 없이 프로젝트가 순조롭게 진행된 것은 다소 이례적인 일로 보였고 추가 조사가 필요했습니다.

실수의 원인은 프로그램 내에서 인식할 수 없는 세션 변수, 즉 $_SESSION[‘user\_id’]에 대한 검증을 포함하여 ChatGPT에 있었습니다. 이는 작업 중단 간격이 길어져 ChatGTP가 활용된 변수의 특정 컨텍스트와 지정을 간과했기 때문에 발생한 것으로 추정됩니다.

애플리케이션을 구성하기 위해 ChatGPT를 사용할 때는 단일 채팅 스레드 유지를 준수하고 가능한 한 신속하게 일치하는 구성 요소를 통합하는 것이 필수적입니다. 새로운 대화가 시작되거나 중단이 길어지면 불일치가 발생할 수 있습니다. ChatGPT는 장기간 작동하지 않는 동안 색상 팔레트와 같은 현재 진행 중인 작업의 특정 세부 사항을 간과하는 경향이 있는 것으로 관찰되었습니다.

이 문제를 성공적으로 해결하고 업데이트된 코드를 릴리스했습니다. 테스트 결과, 로그인 및 등록 기능은 의도한 대로 작동하고 있었으나 말풍선의 레이아웃과 모양은 더 개선할 수 있는 부분이 있었습니다. 그럼에도 불구하고 개발 과정이 1시간 23분밖에 걸리지 않았다는 점을 고려하면 만족스러운 결과물이라고 생각합니다.

ChatGPT: 뛰어난 코딩 도우미

ChatGPT 플랫폼은 모호하거나 제한된 지침이 제공되더라도 고품질 코드를 효율적으로 생성하는 능력을 통해 소프트웨어 개발에서 탁월한 숙련도를 보여줍니다.

챗봇은 몇 가지 불완전한 점이 있지만 필요한 프로세스에 익숙하다면 복잡한 웹 애플리케이션을 빠르게 개발할 수 있는 잠재력을 제공합니다.제한된 컨텍스트 참조 프레임의 제약과 서로 다른 빌딩 블록에 논리적 추론을 통합하는 데 따르는 어려움은 중요한 단점입니다.

By 박준영

업계에서 7년간 경력을 쌓은 숙련된 iOS 개발자인 박준영님은 원활하고 매끄러운 사용자 경험을 만드는 데 전념하고 있습니다. 애플(Apple) 생태계에 능숙한 준영님은 획기적인 솔루션을 통해 지속적으로 기술 혁신의 한계를 뛰어넘고 있습니다. 소프트웨어 엔지니어링에 대한 탄탄한 지식과 세심한 접근 방식은 독자에게 실용적이면서도 세련된 콘텐츠를 제공하는 데 기여합니다.