8

챗GPT MS애저톤

AIFactory

[프롬프트 엔지니어링] 빠른 앱 개발을 위한 Agile ERD구축 3-Step Prompt

수연
2023.04.24 13:46
1286

•  서비스 배경

    GPT를 통해  애자일한 개발환경에서 보다 빠르게 핵심적인 DB 설계하고 MVP 개발을 진행할 수 있는 업무효율화 프롬프트 시리즈 구성

     데이터 초기 설계에 따라서 앱의 완성도와 개발 방향이 바뀌기 마련입니다. 
     그러나 아무리 좋은 앱 아이디어도 초기 데이터 설계에서 완벽하기 어렵고
     Coding 과정에서 Test 과정에서 진행하면서 누락이 발견되면 결국 전체 개발을 몇 번을 뒤집어 엎어야 하는 비효율적인 과정이 반복됩니다.

    이러한 비효율을 제거하고 기본적인 기능 구현에 필요한 모든 데이터를 빠르게 정리하고, 논리 구조를 시각화하고,
     빠르게 앱을 시장 출시하기 위한 애자일한 앱 개발환경에 딱 맞는 GPT를 이용해봅시다.

 

•  서비스 기대효과

   서비스 구상 후 DB 초기 스케치 후 최종적으로 다이어그램화 하는 한 사이클의 프롬프트 개발로,
   개발 관련 구조화 또는 협업 시에 문서 작성에 제약 받지 않고 빠른 개발 투입과 서비스 개선이 가능할 것으로 기대할 수 있습니다.
 

 

•  프롬프트 엔지니어링


 

 

 

 

 * Tip 간혹 출력되다가 일부 내용이 짤리는 경우가 있는데 (보통 6개 항목), 이 경우는 second를 넣어 전체 테이블을 다시 호출하거나 누락된 테이블을 지정한다.
    (잘리는 경우의 출력 프롬프트 예시)

[테이블이 일부 잘리는 경우]

 

 


  : ERD 다이어그램 마크다운 중 가장 시각적으로 뛰어난 머메이드 마크다운으로 다이어그램 코딩 결과 

     → 그래프 표현시 일부 제약사항은 여전히 있지만 전체적인 데이터 초기 설계의 공수는 최소화하고 바로 검증부터 할 수 있다는 점에서 효율적이고 유의미한 작업이다.

 ※ 비주얼화하는 경우 제약사항 :  
  1) 필요에 따라서 GPT가 임의로 불필요한 컬럼을 제거하는 경우가 있으니 이 부분은 최종 검토 후 확정하는 것을 권장
  2) 1차적인 markdown code는 data type과 컬럼명을 반대로 노출하는 경우가 있어 이 부분은 확인 후 조정하면 됨 (아래 2차코드 참고)

 

(최종 다이어그램 확인 링크) :     Mermaidv10.1.0 Live Editor (https://mermaid.live/)

1차 : ERD Markdown Code 결과 (초안 - 데이터 타입이 먼저 나와 변경필요)

   erDiagram
    Organization {
        int organization_id
        varchar(50) organization_name
    }
    Personnel {
        int personnel_id
        int organization_id
        varchar(50) personnel_name
    }
    Profile {
        int profile_id
        int personnel_id
        varchar(50) question
        varchar(50) answer
        datetime created_at
        datetime updated_at
    }
    Role {
        int role_id
        int personnel_id
        varchar(50) role_name
    }
    AbsenteeismHistory {
        int absenteeism_history_id
        int personnel_id
        datetime date
        varchar(50) reason
    }
    WorkEvaluation {
        int work_evaluation_id
        int personnel_id
        datetime date
        varchar(50) content
        varchar(50) result
    }
    Payroll {
        int payroll_id
        int personnel_id
        decimal salary
        datetime payment_date
    }
    QABulletinBoard {
        int qa_bulletin_board_id
        int personnel_id
        varchar(50) question
        varchar(50) answer
        datetime created_at
        datetime updated_at
    }
    
    Organization ||--o{ Personnel : has
    Personnel ||--o{ Profile : has
    Personnel ||--o{ Role : has
    Personnel }o--|| AbsenteeismHistory : has
    Personnel }o--|| WorkEvaluation : has
    Personnel ||--|| Payroll : has
    Personnel }o--|| QABulletinBoard : has

 

(1차 코드 결과)


 


 

 2차(Final) ERD Markdown Code 결과  : 데이터 타입이 먼저 코딩된 제약사항을 극복하기 위한 2차 코드

   출력결과 따라 다이어그램 마크다운 코드 조정작업이 필요한데, 이 경우 아래 코드를 활용한다.

 

erDiagram
    Organization {
        org_id int
        org_name varchar
        org_address varchar
        created_at datetime
        updated_at datetime
    }
    
    Personnel {
        personnel_id int
        org_id int
        personnel_name varchar
        personnel_email varchar
        personnel_phone varchar
        personnel_address varchar
        personnel_dob date
        created_at datetime
        updated_at datetime
    }
    
    Profile {
        profile_id int
        personnel_id int
        profile_description varchar
        profile_start_date date
        profile_end_date date
        created_at datetime
        updated_at datetime
    }
    
    Role {
        role_id int
        personnel_id int
        role_name varchar
        role_description varchar
        created_at datetime
        updated_at datetime
    }
    
    Absenteeism {
        absenteeism_id int
        personnel_id int
        absenteeism_date date
        absenteeism_status varchar
        created_at datetime
        updated_at datetime
    }
    
    Evaluation {
        evaluation_id int
        personnel_id int
        evaluation_quarter varchar
        evaluation_score float
        created_at datetime
        updated_at datetime
    }
    
    Payroll {
        payroll_id int
        personnel_id int
        payroll_amount float
        payroll_date date
        created_at datetime
        updated_at datetime
    }
    
    QandA {
        qanda_id int
        personnel_id int
        qanda_question varchar
        qanda_answer varchar
        related_qanda_id int
        created_at datetime
        updated_at datetime
    }
    
    Organization ||--o{ Personnel : "has"
    Personnel ||--o{ Profile : "has"
    Personnel ||--o{ Role : "has"
    Personnel ||--o{ Absenteeism : "has"
    Personnel ||--o{ Evaluation : "has"
    Personnel ||--o{ Payroll : "has"
    Personnel ||--o{ QandA : "has"

 

 

Conclusion : Final ERD Diagram Visual 

 

(2차 - 최종)

 

(작성 내용과 관련해 사전 협의된 AIFactory 외 제3자의 임의 배포와 상업적 활용을 금합니다.)

8
3개의 댓글
로그인 후 이용해주세요!