본문 바로가기

GPT 활용법

[ChatGPT 활용법] 예시 모델 클래스를 바탕으로 새로운 클래스 만들기

DallE로 제작한 GPT로고

 

ChatGPT를 활용해서 모델 클래스를 어떻게 만들 수 있을까?

저번 글에서 예시 코드를 통해 패턴화된 코드 생성하는 방법을 배웠습니다.

 

[GPT 활용법] - ChatGPT에게 예시 코드 제공해서 패턴화된 코드 작성하기

 

 

이번 글에서도 예시 코드를 통해 같은 특징을 가진 코드를 작성해보겠습니다. 하지만 저번 챕터 내용과 다른 점은 패턴화된 코드보다 속성이 같은 코드를 GPT가 작성하도록 유도하겠습니다.


 

모델 클래스라고 들어보신적 있으신가요? 이 부분은 프론트앤드, 백앤드 개발을 하면 자주 들어본 개념일겁니다. 간단하게 모델의 개념에 대해 설명하겠습니다.

 

모델 클래스 구조도

 

 

모델 클래스를 알려면 앱 혹은 웹에서 쓰는 MVC 패턴에 대해서 알고있어야합니다. 클라이언트는 우리가 쓰는 어플 혹은 웹페이지 화면이라고 생각하면 됩니다. 유저들은 뷰에서 여러 클릭을 통해 앱, 웹과 상호작용합니다. 만약 사용자가 확인 버튼을 클라이언트에서 누르면 뷰는 그 버튼을 인지하고 컨트롤러에게 사용자가 확인 버튼을 눌렀다는 이벤트를 넘깁니다.

 

 

 

컨트롤러는 버튼과 연결된 함수 및 이벤트 처리를 하여 다시 뷰에게 전달합니다. 뷰는 사용자에게 확인 버튼 클릭의 결과를 알려줍니다. 그러면 모델은 언제 사용될까요? 만약 회원가입 프로세스라고 가정해봅시다. 사용자는 아이디, 비밀번호, 생년월일등 개인 정보를 넣고 회원가입 버튼을 누릅니다. 그러면 컨트롤러는 모델에 접근하여 이 사용자 정보가 이미 있는지 체크합니다. 그리고 없으면 다시 뷰에게 데이터를 전달합니다. 즉 회원가입 프로세스에서 모델은 데이터 베이스에서 회원 정보를 저장하는 하나의 클래스입니다.

 

교복 모델 클래스 생성 예시

 

 

그럼 교복을 예시로 들어보겠습니다. 학창 시절 교복을 한 번 상상해보세요. 교복을 사러 상점에 갔을 때 교복을 구성하는 여러 품목을 구입한 경험이 한 번쯤 있을겁니다. 위 사진에는 간단하게 교복을 구성하는 모델을 구성하였습니다. 우리는 만약 앱을 만든다고 했을때 두 가지를 선택할 수 있습니다. ‘나의 교복 정보를 핸드폰 내, 즉 앱 내 데이터 베이스에 저장할까?’, 아님 ‘인터넷을 통해 서버 데이터 베이스에 내 정보를 저장할까?’.

 

 이 두 가지 경우 모두 백앤드 쪽에서 프론트앤드에서 만든 모델과 동일한 형태로 데이터를 저장해야합니다. 즉 앱,웹과 서버와 공통된 약속을 하여 데이터 형식을 만들어야하죠. 그래서 모델 클래스가 필요합니다.

 

ChatGPT를 통한 교복 클래스 예시

 

교복 클래스 생성 명령어(영문)

 

 

Chat GPT로 교복 모델 클래스를 작성해보겠습니다. 모델 이름, Swift라는 사용할 코딩 언어, 변수와 변수 데이터 타입을 선언하였습니다. 그럼 결과를 볼까요?

 

교복 모델 클래스 코드(Swift)

 

코드에서 셔츠부터 양말까지 변수로 선언하였고 init 함수로 클래스를 선언할 때 매개 변수로 값을 받고 있습니다. 즉 유니폼 모델을 만들때 갯수를 지정하는 코드를 GPT가 작성하였습니다.

 

교복 클래스 fromMap 함수

 

그러면 이번에는 fromMap 함수를 교복 모델 클래스에 추가해보겠습니다. fromMap은 서버와 통신할 때 Json 문자열로 통신하는데 자주 쓰는 함수 이름입니다. fromMap에 대한 정보를 많은 개발자들로부터 학습한 GPT는 바로 서버로부터 Json 양식을 받을 수 있는 fromMap 함수를 만들어주었습니다. 그럼 기본적인 모델의 구성을 코드로 알아보았으니 이번 장의 핵심인 예시 모델을 바탕으로 GPT를 통해 새로운 모델을 생성해보겠습니다.

 

 

버전 모델 클래스를 바탕으로 새로운 모델 클래스 생성하기

 

GPT가 생성한 교복 모델 클래스 코드

 

 

위 왼쪽 사진은 GPT에게 예시 코드로 제시할 버전 정보를 저장할 모델 코드입니다. 간단히 설명하면 버전 모델은 서버에서 제공하는 앱 버전들을 저장합니다. is_active는 현재 이 버전의 유효함을 true, false로 받고 is_recent는 서버로부터 받은 이 버전이 가장 최신 버전인지 확인하는 역할을 담당합니다. 오른쪽은 앱 배너 광고들을 저장하는 데이터 모델입니다. 배너 모델, 버전 모델 모두 담고 있는 매개 변수는 다르지만 fromMap 함수, 배너 정보들, 버전 정보들을 담는 datas, 데이터 파싱 전 문자열 데이터를 담는 beforeParsedData 변수는 같습니다. 따라서 저는 GPT에게 버전 정보 모델 코드와 함께 다음과 같은 질문을 하려고 합니다.

 

 

배너 클래스 명령어

 

 

모델 클래스 이름, 거기에 들어가는 변수만 지정하였습니다. 기본적인 구조는 버전 모델과 같이 가져가라고 ‘이 코드를 참고해서'(refer to this code) 라고 말했습니다. 또한 변수와 함께 꼭 bool, string과 같은 데이터 타입도 지정하여 GPT에게 알려주어야합니다.

 

GPT가 응용하여 만든 모델 클래스

 

결과는 예상한대로 잘 나왔습니다.

 

 

정리

 

이번 글을 마치면서 주의해야할 부분을 짚고 넘어가겠습니다. 아까 보았던 FromMap 함수 기억하실겁니다. 위에 말은 GPT가 제시하는 Map의 key와 실제 서버에서 제공하는 Map의 key가 다를 수 있습니다. 또한 데이터 타입도 다를 수 있죠. 예를 들어 서버에서는 키로 노트북을 주는데 GPT는 랩탑으로 key를 구성할 수 있습니다. 그리고 문자열로 서버에서는 주는데 GPT는 Int형으로 선언할 수도 있습니다. 이 점을 주의해야합니다.

 

둘째, 예시 모델 클래스를 GPT에게 학습시켜 새로운 모델 클래스를 만들때는 꼭 같은 형태어야 합니다. 아까 전에 보았던 버전 정보 모델, 배너 모델은 함수 이름, 변수만 달랐지 fromMap부터 기본적인 모델 클래스의 형태는 같았습니다. 

 

셋째, GPT가 만든 변수명은 꼭 확인해봐야합니다. 특히 서버에서 오는 Map 데이터의 Key는 육안으로 한 번 확인하고 넘어가야합니다. 특히 이 부분은 key값이 다르면 데이터가 그냥 누락되어 null로 들어오거나 안 들어와 에러 찾기가 매우 힘드니 처음부터 확인해보시길 바랍니다.