DB 스키마 작성 관련 Chat GPT와 Gemini 비교
DB 스키마는 데이터베이스 구조, 한 마디로 데이터를 저장하기 위한 구조를 말한다.
PRD를 작성하고 Lovable을 사용해서 화면단의 프로토타입은 제작했지만, 아쉽게도 DB를 설계에 대한 가이드는 제공하는 것 같지 않았다. 해서 스키마 작성을 위해 chatGPT와 gemini에게 각각 너 혹시 db 스키마 작성할 줄 알아? 라고 질문을 하니 아래와 같이 답을 해주었다.
GPT
Gemini
(이하 내용 생략)
아무래도 Gemini에서 이번 웹앱에 대한 질문을 했었다보니 그를 기반으로 답변을 해주는 듯 했다.
현재 필요한 정보는 users 테이블과 매물정보에 해당하는 properties 테이블이 필요했다.
users 테이블은 각 유저에 대한 정보를 user_id, password, email, name, birthday, gender, phone number 등의 기본정보 컬럼으로 나누고, 좋아요를 클릭한 매물을 보기 위해 favorites 컬럼을 추가하기로 했다.
properties는 property_id(매물 고유의 id) transaction_type(거래유형),house_type(주택종류), area(면적), price, maintenance_fee, option(에어컨,냉장고), address, picture(사진), detail(기타) 컬럼으로 구성하기로 했다.
users테이블에는 사용자가 선택한 좋아요 매물의 정보가 필요했기에 properties 데이터의 id 정보를 갖고 있어야 했다. 해서 1:N관계를 가지도록 설계를 요청했다.
우선은 두 테이블의 관계를 Diagram으로 요청하자 gpt는 이미지로 작성해준 반면 gemini는 텍스트를 기반으로 작성해주었다.
GPT
Gemini
다만 GPT의 경우는 이미지만 제공해주었지만 Gemini는 위 다이어그램에 기반한 테이블을 생성할 수 있는 명령어를 함께 알려주었다.
GPT는 이에 대해 별도의 요청을 하니 명령어를 알려주었다.
명령어에 대한 퀄리티에서는 다소 차이가 있어보였다
GPT
Gemini
Gemini가 데이터설정을 좀 더 상세하게 해주는 것을 볼 수 있다. 특히 조회 성능 향상용 코드가 인상적이다.
GPT와 Gemini 모두 DB설계의 완전함을 위해 users테이블의 favorites 항목을 별도 테이블로 생성하길 요구하는 것 또한 인상적이었다.
users_favorites 테이블을 별도로 생성한 것을 반영한 diagram을 요구하니 아래와 같이 나왔다.
GPT
Gemini
왜인진 모르겠으나 GPT는 Diagram의 양 옆이 잘려서 제공이 되고 테이블간 관계도 정확히 표 현이 안되는 것 같았다.
그리고 위와 같이 Diagram 수정을 요청하자 gemini에서는 성능향상을 위한 추가 SQL 코드를 같이 제공해주었다. ( 맨 아래 2개의 코드)
사용해본 결과, 그 동안 수많은 개발자들이 구글링을 통해 많은 개발을 해온 데이터가 축적이 되어서 그런가 Gemini가 제공하는 SQL 명령어의 품질이 더 좋은 것으로 보인다.
이미지 제공이 되지 않는 것을 제외하면 명령어나 코드관련 질문은 Gemini가 더 나아보인다.