AI 소식 · 영상 게시 2022-12-04 · 9분 52초

ChatGPT 공개 직후 개발자가 이틀간 써 본 테스트 기록

2022년 ChatGPT 공개 직후 React 개념 질문, 마크업과 컴포넌트 생성, LeetCode 문제 풀이를 직접 시험하며 개발자 관점에서 느낀 가능성과 우려를 정리합니다.

OpenAI가 ChatGPT를 공개한 직후, 단테가 이틀 동안 직접 써 보며 질문 응답, 개념 설명, 마크업 생성, 코딩 테스트 문제 풀이까지 시험해 본 기록입니다. 영상 게시 시점(2022-12-04) 기준의 첫인상이므로 지금의 ChatGPT와는 기능 차이가 있지만, 개발자가 생성형 AI를 처음 접했을 때 무엇을 시험해 보고 어떤 판단을 내렸는지 돌아보고 싶은 분께 참고가 됩니다.

대화형 답변의 첫인상

단테는 먼저 ChatGPT에게 스스로를 설명해 달라고 했습니다. ChatGPT는 자신이 인공지능 프로그램이라 사람처럼 직접 인터뷰를 할 수는 없지만, 궁금한 것을 물으면 성심껏 답하겠다고 했습니다. 기존 텍스트 모델과 무엇이 다른지 묻자 단답형이 아니라 완성도 높은 문장으로 답했다는 점이 인상적이었다고 합니다.

주관이 섞일 수 있는 질문도 던졌습니다. 프로그래밍을 공부하기 좋은 블로그를 알려 달라고 하자 Stack Overflow, Medium, Reddit의 프로그래밍 채널처럼 한 번쯤 들어 봤을 해외 사이트를 추천했습니다. 단테는 자신의 블로그는 없었다고 농담처럼 덧붙였습니다.

개념 질문: React에서 의존성 주입

인터뷰 형식의 질문을 마친 뒤, 실제로 궁금한 기술 질문을 던졌습니다. React에서 의존성 주입(Dependency Injection)을 하려면 어떻게 해야 하는지 물었고, 이는 단테가 이전에 영상으로 다룬 주제이기도 합니다. ChatGPT는 HOC(Higher-Order Component) 패턴을 의존성 주입을 구성하는 디자인 패턴의 한 예로 제시했습니다.

단테가 주목한 점은 코드만 던져 준 것이 아니라, 왜 HOC가 의존성 주입이 되는지, 의존성 주입이 무엇인지 같은 배경 지식까지 문장으로 설명했다는 것입니다. Stack Overflow에 같은 질문을 올리면 다른 사람 눈에 띄기까지 시간이 걸리고, 답이 안 달리거나 정확도가 떨어질 수도 있습니다. 반면 ChatGPT는 즉시 정리된 답을 내놓았기 때문에, 단테는 Stack Overflow를 대체할 수 있는 시스템이 될 수도 있겠다고 생각했다고 합니다.

실제 코드 생성 시험

다음은 실제 코딩입니다. 넷플릭스 클론 코딩을 하려면 어떻게 해야 하는지 묻자, 비디오 콘텐츠를 저장할 데이터베이스와 서버 설정, 브라우징을 위한 사용자 인터페이스 등 1단계부터 5단계까지 형식을 갖춘 답을 줬습니다. 실제 마크업을 요청하자 HTML과 CSS를 따로 제시하고, 왜 그렇게 작성했는지 단계별로 설명했습니다. 단테는 코드가 시맨틱하게 작성됐다고 평가했습니다. CSS 대신 Sass로 요청하면 Sass로 바꿔 주는 것도 확인했습니다.

원하는 기술 스택으로 블로그 템플릿을 만들어 달라는 요청에는 React Router까지 사용한 긴 코드를 작성했고, 실행해 보니 헤더, 본문, 캐러셀, 푸터를 갖춘 페이지가 나왔습니다. React 카운터를 요청하면 코드뿐 아니라 어느 디렉터리에 작성하고 어떻게 실행하는지까지 알려 줬고, 특정 상태 관리 라이브러리인 Zustand를 쓰고 싶다고 하자 설치부터 스토어 작성까지 맞춰서 바꿔 줬습니다. 단테는 라이브러리 문서를 쓸 때 개발자가 일일이 예제를 만들지 않고 이런 방식으로 예시 코드를 만들 수도 있겠다고 봤습니다.

코딩 테스트와 커뮤니티 반응

가장 놀란 부분은 LeetCode 미디엄 난이도 문제였습니다. 문제와 예제 코드만 붙여 넣었을 뿐 질문을 정돈된 문장으로 쓰지 않았는데도, 필요한 부분을 채운 풀이를 내놓았고 제출하니 통과(Accepted)했으며 성능도 좋게 나왔다고 합니다.

영상은 당시 트위터의 반응도 소개합니다. 리눅스 명령어를 입력하면 실행 결과처럼 보이는 출력이 나오고, 재부팅하라고 하면 재부팅된 것처럼 보이는 사례가 화제가 됐습니다. 영상에서는 이를 서버에서 명령이 실행된 것처럼 소개했지만, 이런 출력은 모델이 터미널 화면을 흉내 내 만들어 낸 텍스트일 수 있으므로 실제 명령 실행으로 단정하기는 어렵습니다.

엔지니어의 역할에 대한 생각

단테는 GitHub Copilot이 나왔을 때는 신기한 정도였지만, ChatGPT는 프로그래밍뿐 아니라 거의 모든 대화형 질문에 자세히 답한다는 점에서 충격을 받았다고 말합니다. 음성 합성을 더하면 영화 아이언맨의 자비스 같은 조수도 가능하겠다고 상상했습니다. 그는 2020년부터 엔지니어를 "한정된 자원으로 주어진 문제를 해결하는 사람"으로 정의해 왔는데, 한정된 시간과 자원에서 정확한 답을 내는 ChatGPT를 보며 많은 분야의 문제 해결을 AI가 대신할 수 있겠다는 기대와 함께 약간의 염려도 들었다고 정리했습니다. 감정적인 능력에서는 여전히 사람이 앞설 것이라는 단서도 달았습니다.

정리

  • 공개 직후의 ChatGPT는 단답이 아닌 완성된 문장으로 개념 설명과 배경 지식을 함께 제공했습니다.
  • React 의존성 주입 질문에는 HOC 패턴을 예로 들며 이유까지 설명해, Stack Overflow의 대안이 될 수 있다는 인상을 줬습니다.
  • HTML/CSS, Sass, React Router, Zustand 등 요청한 스택에 맞춰 코드를 바꿔 생성했습니다.
  • LeetCode 미디엄 문제를 거친 입력만으로 풀어 통과했습니다.
  • 커뮤니티에서 화제가 된 사례는 실제 동작인지 모델이 만든 출력인지 구분해서 봐야 합니다.

영상: 유튜브에서 보기 · 정정 요청: dante@quokkalabs.net