프로젝트 산출물 AI Tool 사용 요약

더보기
번호 산출물 명칭 목적 / 사용 용도 사용 기술 · 도구 제작 방식 및 특징
0 일반 이미지   Nano Banana  
1 요구사항 명세서 기능·비기능
요구사항 정의
모든 AI 가능 (ChatGPT 등) 표(Table) 기반, 기능/비기능 요구사항 및 추적성 매핑
2 순서도 기능 흐름 시각화 eraser.io
(https://app.eraser.io/)
AI 기반 순서도 생성
3 화면 구성도 메뉴 구조,
화면 관계 정의
eraser.io 또는 일반 이미지 AI 구조 시각화,
시스템 전체 구조 이해 목적
4 목업
(UI 프로토 타입)
실제 구현 전
UI 구조 검증
1단계: AI 기반 SVG 생성
2단계: Figma
(https://www.figma.com/)
1단계: SVG 이미지 생성(빠른 초안)
2단계: Figma에서 SVG 편집·수정
5 일정표
(Gantt)
프로젝트 일정 관리  Mermaid Live
(https://mermaid.live/)
Gantt 기반,
AI로 일정 생성 후 시각화

 

1. 프로젝트 개요

더보기

대상 프로젝트: PySide6 + MySQL 기반 도서 관리 프로그램(회원/도서/대여·반납)

 

(1) 목적

  • 데스크톱 GUI 환경에서 도서관의 핵심 업무를 처리한다.

(2) 주요 기능

  • 회원 등록 및 조회
  • 도서 등록 및 조회
  • 도서 대여/반납/연장
  • 데이터는 MySQL DB에 영구 저장

(3) 개발 범위(Scope)

  • 3개 페이지를 가진 단일 데스크톱 프로그램
  • DB CRUD(INSERT/SELECT/UPDATE/DELETE) 기반 기능 구현
  • 공통 UI 템플릿(BasePage) 기반으로 페이지 구조 통일

(4) 비포함(Out of Scope)

  • 로그인/권한 관리
  • 바코드 리더기/카메라 등 외부 장치 연동
  • 연체료 계산, 예약 기능, 관리자 통계 대시보드
  • 멀티 사용자 동시성 제어(트랜잭션/락 설계) 고도화

(5) 사용자/이해관계자 정의

  • 사용자(User)
    • 도서관 직원(운영자) 1명(단일 PC에서 사용)
  • 사용 환경(Assumption)
    • OS: Windows(폰트: Malgun Gothic 사용) 또는 Linux 가능
    • DB: 로컬 MySQL 서버(localhost)
    • 네트워크: DB가 로컬이므로 필수 아니지만
      MySQL 서비스 구동 필요하며
      AWS RDS 확장 연동 테스트시 필요

 

2. 시스템 구성 요소 분석

더보기

(1) UI 구조(상위)

  • 메인 창: LibrarySystem(QMainWindow)
    • 좌측 Sidebar: 페이지 전환 버튼 3개
    • 우측 StackedWidget: 3개 페이지

(2) 페이지 공통 패턴(BasePage)

  • 모든 페이지는 동일한 GUI 블록을 가진다.
  • Title(Label)
  • 입력 폼(form_layout)
  • 검색 폼(search_layout)
  • 테이블(QTableWidget)
  • 하단 버튼(bottom_layout)

(3) 데이터 처리 구조

  • DatabaseManager
    • execute_query(): INSERT/UPDATE/DELETE
    • fetch_data(): SELECT
  • 각 페이지는 db 객체를 주입받아 직접 SQL을 호출한다.

 

3. 통합 요구사항 명세서(기능 + 비기능)

더보기

(1) 요구사항 통합 표

ID 유형 요구사항  상세 설명 관련 화면/모듈
FR-01 기능 회원 등록 회원 ID, 이름, 연락처, 이메일 입력, 신규 회원 등록 MemberManagerPage
FR-02 기능 회원 조회 조건 없이 전체 조회 또는 조건 기반 검색을 수행한다 MemberManagerPage
FR-03 기능 회원 삭제 선택된 회원 정보를 삭제한다 MemberManagerPage
FR-04 기능 도서 등록 도서 ID, 제목, 저자, 출판사 정보를 등록한다 BookManagerPage
FR-05 기능 도서 조회 전체 조회 및 조건 기반 도서 검색을 수행한다 BookManagerPage
FR-06 기능 도서 삭제 선택된 도서를 삭제한다 BookManagerPage
FR-07 기능 회원 조회(대여 전) 대여 처리 전에 단일 회원을 정확히 조회한다 CirculationPage
FR-08 기능 도서 대여 회원 조회 후 도서를 대여 처리한다 CirculationPage
FR-09 기능 도서 반납 대여 중인 도서를 반납 처리한다 CirculationPage
FR-10 기능 대여 연장 대여 중인 도서의 대여 기간을 연장한다 CirculationPage
NFR-01 비기능 UI 일관성 모든 페이지는 동일한 UI 블록 구조를 유지한다 BasePage
NFR-02 비기능 사용자 피드백 모든 주요 이벤트 결과는 메시지 박스로 안내한다 BasePage
NFR-03 비기능 성능 소규모 데이터 기준 즉시 응답을 제공한다 DatabaseManager
NFR-04 비기능 오류 처리 DB 오류 발생 시 프로그램이 종료되지 않는다 DatabaseManager
NFR-05 비기능 유지보수성 공통 UI 로직은 BasePage에 집중 관리한다 BasePage
NFR-06 비기능 학습 용이성 SQL과 UI 흐름이 명확히 드러나는 구조를 유지한다 전체

 

 

(2) 요구사항 ↔ 화면/클래스 매핑


요구사항 ID BasePage MemberManagerPage BookManagerPage CirculationPage DatabaseManager
FR-01 O O     O
FR-02 O O     O
FR-03 O O     O
FR-04 O   O   O
FR-05 O   O   O
FR-06 O   O   O
FR-07 O     O O
FR-08 O     O O
FR-09 O     O O
FR-10 O     O O
NFR-01 O O O O  
NFR-02 O O O O  
NFR-03         O
NFR-04         O
NFR-05 O O O O  
NFR-06 O O O O O

 

3. 순서도 (erasor.io 기반)

더보기

(1) https://app.eraser.io/

인공지능 기반 순서도 작성 플랫폼

 

 

(2) 프롬프트 명령 순서

  1. 요구사항 분석 결과 복사 후 프롬프트 입력
    • 프롬프트 명령
      "기능적 요구사항을 기반으로 순서도를 작성하는데 필요한 항목을 리스트업해주세요."

  2. 결과 
    • 페이지 단위 3개 다이어그램:
      • “회원 관리 순서도(FR-01~03)”
      • “도서 관리 순서도(FR-04~06)”
      • “대여/반납/연장 순서도(FR-07~10)”
    • 또는 통합 1개 다이어그램:
      • 상단에 “메인: 페이지 선택”
      • 하단에 “각 페이지 기능 흐름”을 병렬로 배치

  3. 프롬프트 명령
    • 위 기능적 요구사항 기반으로 순서도를 작성하려고 합니다. 가중 중요한 기능을 중심으로 순서도 항목을 요약하고, https://docs.eraser.io/docs/syntax-3 웹페이지의 Flow chart syntax 를 참고하여 https://app.eraser.io/ 순서도 작성 코드를 제작해주세요

  4. 생성한 코드를 순서도 생성에 사용합니다.

  5. **복잡한 순서도의 경우 다시 생성하는 경우
    • 요약된 항목을 프롬프트에 복사해서 붙여넣고, 다음 프롬프트를 입력합니다.
    • 프롬프트
      "입력한 핵심 기능 중심으로 순서도를 작성하려고 합니다. 중요한 기능을 중심으로 순서도 항목을 요약하고, https://docs.eraser.io/docs/syntax-3 웹페이지의 Flow chart syntax 와 https://docs.eraser.io/docs/icons 아이콘을 참고하여 https://app.eraser.io/ 순서도 작성 코드를 제작해주세요."
    • 아이콘을 추가하면, 순서도가 겹쳐서 잘못 그려지는 일이 방지됩니다.

  

(3) 실행 결과 


(3)-1 통합(전체 시스템) 순서도 코드

 

 

(3)-2 MemberManagerPage 순서도 코드

 

(3)-3 BookManagerPage 순서도

 

(3)-4 CirculationPage(대여/반납/연장) 순서도

 

(3)-5 순서도 생성에 사용된 코드 

lib flowchart eraser.io.txt
0.01MB

 

4. 목업(≒ UI 프로토 타입, StoryBoard, Wireframe)

더보기

(1) 2가지 목업 제작 방법

 

1단계: SVG 이미지 제작 요청

대다수의 인공지능 명령으로 이미지 생성 가능 >> 수정 어려움

 

2단계: https://www.figma.com/

인공지능 기반으로 작성한 SVG 파일을, 편집 가능 사용자가 수정할 수 있습니다.

 

 

(2) 프롬프트 명령 순서

  1. 위에서 작업한 요구사항 분석과, 순서도를 기반으로 질문합니다.
    • 프롬프트 명령
      "figma 에서 ui 목업 제작하려고 합니다. 
      요구사항 분석 결과와, 순서도에 사용한 코드를 기반으로
      figma 에서 ui 목업 제작에 필요한 사항들을 리스트업해주세요."

  2. 결과 확인
    • 리스트업한 결과가 요구사항과 맞는지 확인합니다.

  3. 프롬프트 명령
    • 메인 창: LibrarySystem(QMainWindow)
      • 좌측 Sidebar: 페이지 전환 버튼 3개
      • 우측 StackedWidget: 3개 페이지
        • “회원 관리 순서도(FR-01~03)”
        • “도서 관리 순서도(FR-04~06)” 페이지
        • “대여/반납/연장 순서도(FR-07~10)” 페이지 figma 에서 ui 목업 제작하려고 합니다.
          SVG 코드를 생성해서 Figma에 드래그앤드롭(또는 Import) 합니다.
          (아래처럼 위 분석에 사용한 UI 관련 사항을 가져옵니다.)
    • figma 에서 ui 목업 제작을 위해 SVG 코드를 생성해서 Figma에 드래그앤드롭(또는 Import) 할 수 있도록 만들어주세요"

  4. Figma 에서 SVG 드래그앤드롭하여 확인합니다
SVG 파일
Figma 에서 수정 가능

 

5. 일정표

더보기

(1) https://mermaid.live/

 

인공지능 기반 코드를 일정표 제작에 사용합니다.

 

 

(2) 프롬프트 명령 순서

  1. 위에서 작업한 요구사항 분석과, 순서도를 기반으로 질문합니다.
    • 프롬프트 명령
      " mermaid.live 에서 간트 일정표를 제작하려고 합니다.
      6일 기준으로 일정표를 제작하는데 필요한 항목을 리스트업해주세요 "

  2. 결과 확인
    • 리스트업한 결과가 일정표 제작에 필요한 항과 맞는지 확인합니다.
    • 내 계획에 맞춰 일정을 수정하여 일정 항목을 정리합니다. 아래처럼 개떡같이 말해도 찰떡같이 정리됩니다.
      "day1, 2, 3, 4 요구사항 명세, 프로젝트 분석, 화면구조 + 순서도, UI 목업을 1일차에 완료합니다. DB 설계와 DB 흐름 및 실행 테스트 에 2일차, 나머지 일정에 librarysystem 하루, membermanagepage+bookmanagepage하루, 대여페이지에1일 사용합니다. 다시 정리해주세요"

    • Day일정 요약
      Day일정  요약
      Day 1 요구사항 명세 + 프로젝트 분석 + 화면 구조 + 순서도 + UI 목업
      Day 2 DB 설계 + DB 흐름 분석 + DB 실행 테스트
      Day 3 LibrarySystem(Main UI, Sidebar, Page 전환) 구현
      Day 4 MemberManagerPage + BookManagerPage 구현
      Day 5 CirculationPage(대여/반납/연장) 구현
      Day 6 통합 테스트 + 버그 수정 + 산출물 정리
  3. 일정표를 gantt chart 로 작성하려고 합니다. https://mermaid.js.org/syntax/gantt.html 웹페이지의 Gantt diagrams syntax 와 https://mermaid.js.org/syntax/timeline.html을 참고하여제작해주세요."

  4. 결과 코드를 붙여넣습니다.

 

6. DB 테이블 명세서, ERD

더보기

4단계 데이터 분석에서 작성합니다.