웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > tech

개발자 입장에서 구글의 Bard를 ChatGPT와 비교한 사용 리뷰

Last Modified : 2023-05-15 / Created : 2023-05-15
3,045
View Count

최근 채팅 AI의 경쟁이 매우 뜨겁다고 할 수 있습니다. 오늘은 구글 바드(Bard)를 ChatGPT와 비교하여 사용해본 후기로 개발자 입장에서 적어보았습니다. 참고로 ChatGPT는 구독 후 Model GPT-4를 사용하였으며 구글 바드의 경우 현재 실험 버전을 사용할 수 있습니다. 아래 의견은 사용 방법 및 목적에 따라 차이가 있을 수 있으니 이 점 알아두시기 바랍니다.



! 구글 바드(Google Bard) 개발 관련 질문 후 답변 비교


또 다른 AI Chat인 Bing AI 역시 비교할 수 있을 것입니다. 다만 Bing AI에게 개발 관련 질문을 몇 가지 해보니 비교적 간략한 답변과 관련 링크를 보여주는 형태로 알려주었습니다. 즉, 원하는 답변을 얻을 수는 있었지만 개발 관련 깊이나 정보의 양 등은 바드나 ChatGPT에 비하여 많이 아쉬워 비교 대상에서는 제외하였습니다.

이제 가장 궁금한 구글 바드와 ChatGPT입니다. 일단 ChatGPT는 전부터 많이 사용해왔으며 놀라울 정도로 정확하고 필요한 예제나 관련 정보를 자세하게 알려주는 편이라 더 할 말이 없죠. 물론 잘못된 지식도 알려줄 때가 있지만 어느 정도의 제반 지식을 알고 이를 먼저 인지하는 경우라면 다른 해결 방법이나 추가적인 질문으로 해결하는 것이 가능했습니다.


! 구글 바드에게 질문하기


구글 바드를 처음 써봤을 때 과연 개발 관련 질문에 얼마나 빨리 원하는 답변을 정확하게 답변할 수 있느냐가 관건이었습니다. 테스트를 위해서 아래와 같은 질문을 구글 바드(실험 버전)에서 물어보았으며 다음과 같은 결과를 얻을 수 있었습니다.

1. immutability에 대하여 알려줘
2. 자바스크립트를 사용하여 1부터 10까지의 연속된 숫자 중에서 3의 배수를 제외한 값들의 합을 구하는 방법은?

위 질문에 대한 답변은 각각 아래와 같았으며 생각보다 정확하고 자세한 정보를 전달한다는 느낌을 받았습니다. 먼저 답변부터 확인해봅니다.


1. immutability에 대하여 알려줘
객체 불변성에 대한 구글 바드의 답변은 아래와 같습니다.

불변성은 객체가 생성된 후 상태를 변경할 수 없는 디자인 패턴입니다. 함수형 프로그래밍의 핵심 원리입니다. 객체는 참조(reference) 형태로 전달하고 전달 받는다. 객체가 참조를 통해 공유되어 있다면 그 상태가 언제든지 변경될 수 있기 때문에 문제가 될 가능성이 커지게 된다. 이는 객체의 참조를 가지고 있는 어떤 장소에서 객체를 변경하면 참조를 공유하는 모든 장소에서 그 영향을 받기 때문인데 이것이 의도한 동작이 아니라면 참조를 가지고 있는 다른 장소에 변경 사실을 통지하고 대처하는 추가 대응이 필요하다.

불변성은 여러 가지 장점이 있습니다. 첫째, 버그를 줄이는 데 도움이 될 수 있습니다. 객체가 불변이면 의도하지 않게 상태가 변경될 가능성이 줄어듭니다. 둘째, 성능을 향상시키는 데 도움이 될 수 있습니다. 객체가 불변이면 변경 사항을 추적하는 데 필요한 메모리와 계산이 줄어듭니다. 셋째, 코드를 더 간결하고 읽기 쉽게 만드는 데 도움이 될 수 있습니다. 불변 객체는 변경할 필요가 없기 때문에 코드가 더 간단하고 이해하기 쉬워질 수 있습니다.

불변성은 많은 프로그래밍 언어에서 지원됩니다. Java와 C++와 같은 일부 언어에서는 불변 객체를 만드는 키워드가 있습니다. Python과 JavaScript와 같은 다른 언어에서는 불변 객체를 만드는 라이브러리가 있습니다.

불변성은 프로그래밍에 유용한 패턴이 될 수 있습니다. 버그를 줄이고, 성능을 향상시키고, 코드를 더 간결하고 읽기 쉽게 만드는 데 도움이 될 수 있습니다.



생각보다 자세히 알려줍니다. 영어로 질문해보았는데 한글로 물어봤을 때와 거의 동일하게 알려주고 번역한 것처럼 느껴졌습니다. 한글과 영문 질문의 차이가 크지 않은 것 같습니다. 느낌상 동일한 답변을 해당 언어로 변경해 알려준다고 생각되었습니다.


또 다른 질문입니다.

2. 자바스크립트를 사용하여 1부터 10까지의 연속된 숫자 중에서 3의 배수를 제외한 값들의 합을 구하는 방법은?
이번 질문은 코드를 작성할 때 얼마나 잘 알려주는지 궁금해 여쭤봤습니다. 결과는 아래와 같습니다.

자바스크립트를 사용하여 1부터 10까지의 연속된 숫자 중에서 3의 배수를 제외한 값들의 합을 구하는 방법은 다음과 같습니다.
const sum = () => {
  let total = 0;
  for (let i = 1; i <= 10; i++) {
    if (i % 3 !== 0) {
      total += i;
    }
  }
  return total;
};

console.log(sum()); // 12

이 코드는 for 루프를 사용하여 1부터 10까지의 숫자를 반복합니다. 그런 다음 각 숫자가 3의 배수인지 확인하고 3의 배수가 아니면 total 변수에 더합니다. 마지막으로 total 변수의 값을 콘솔에 출력합니다.



코드 예시 역시 정확도가 괜찮다는 판단입니다. 추가로 질문했을 때 어떻게 알려주는 게 궁금하여 다음과 같은 질문을 이어서 하였습니다.


구글 바드에게 질문한 경우 알려주는 답변 및 코드 스니펫 모습


3. for문 대신에 배열을 사용하는 방법을 알려줘.
이 경우 아래와 같은 답변을 연속하여 얻을 수 있었습니다.

물론입니다. 배열은 순서가 지정된 데이터 집합을 저장하는 데 사용할 수 있는 데이터 구조입니다. 배열은 숫자, 문자열 또는 기타 유형의 데이터를 저장하는 데 사용할 수 있습니다. 배열에 대한 액세스는 인덱스 번호를 사용하여 수행됩니다.

배열을 사용하여 for 루프를 대체하는 방법의 예는 다음과 같습니다.

코드 스니펫
const sum = () => {
  const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  let total = 0;
  for (const number of numbers) {
    if (number % 3 !== 0) {
      total += number;
    }
  }
  return total;
};

console.log(sum()); // 12

이 코드는 배열을 사용하여 1부터 10까지의 숫자를 저장합니다. 그런 다음 for 루프를 사용하여 배열을 반복하고 각 숫자가 3의 배수인지 확인합니다. 3의 배수가 아니면 total 변수에 더합니다. 마지막으로 total 변수의 값을 콘솔에 출력합니다.

배열을 사용하여 for 루프를 대체하는 것은 코드를 더 간결하고 읽기 쉽게 만드는 데 도움이 될 수 있습니다.



결과를 보니 기대 이상으로 잘 알려준다고 생각되었는데요 ~ 질문은 여기까지 하고 구글 바드를 ChatGPT와 비교했을 때 어떨지 생각해보았습니다.

먼저 좋았던 부분은 아래와 같습니다.

  • 기대 이상의 빠른 속도(조금씩 보여주는 ChatGPT 방식과 달리 한 번에 출력하여 보여주는 형식)
  • 무료 사용이 가능한 점(단 실험 버전의 경우이며 이 후 달라질 수 있음)
  • 자세한 예제와 많은 정보를 제공


위에서 3번의 경우 ChatGPT 역시 가지고 있는 장점이라고 생각합니다. 질문을 이해하고 자세하고 관련된 많은 정보를 둘 다 제공한다고 생각됩니다.


마지막으로 구글 바드를 쓰면서 앞으로 더 많이 써야겠다는 생각이 들었습니다. 사실 구글 바드와 ChatGPT를 비교해보면 크게 차이가 난다고 생각되지는 않았습니다. 가끔 정확한 정보를 얻지 못하는 경우가 있거나 답변을 얻지 못하는 경우가 있는데 이 둘을 적절히 사용하면 더 좋은 결과를 얻을 수 있을 것으로 기대할 수 있겠습니다.

Previous

시각 및 청각 장애인용 TV 보급사업 공급자에 삼성전자 선정

Previous

네비어 AI 챗봇 서비스 CLOVA X 공개