1. 화면은 옷이고, 데이터는 뼈대입니다.
금융·공공·기업 시스템에서 가장 비싼 수정은 화면이 아니라 테이블 구조 변경이었습니다. 이미 쌓인 데이터를 새 구조로 옮기고, 그 데이터를 쓰는 모든 화면과 계산을 함께 고쳐야 하기 때문입니다.
2. 업무를 표로 옮기는 4단계
한 장 요구사항에서 ‘거래처, 품목, 견적서’처럼 반복해서 나오는 명사를 고릅니다.
명사 하나가 표 하나입니다. 한 견적서에 품목이 여러 개라면 ‘견적 상세’ 표를 따로 둡니다.
표마다 필요한 칸(이름, 수량, 금액, 날짜)을 적고 필수 여부를 표시합니다.
‘견적서는 거래처 하나를 가진다’처럼 표 사이의 관계를 번호로 연결합니다.
3. 예시: 견적 관리 도구의 표 4개
| 표 | 주요 항목 | 메모 |
|---|---|---|
| 거래처 | 거래처번호, 거래처명, 사업자번호, 담당자, 사용여부 | 삭제 대신 사용여부로 관리 |
| 품목 | 품목번호, 품목명, 규격, 기본단가, 사용여부 | 단가가 바뀌어도 과거 견적은 그대로 |
| 견적서 | 견적번호, 거래처번호, 견적일, 상태, 합계, 작성자, 작성일시 | 상태: 작성중 · 발송 · 수주 · 취소 |
| 견적 상세 | 견적번호, 순번, 품목번호, 수량, 단가, 금액 | 견적 당시 단가를 따로 저장 |
‘견적 상세’에 단가를 다시 저장하는 이유는, 품목의 기본단가가 나중에 바뀌어도 이미 보낸 견적의 금액이 바뀌면 안 되기 때문입니다. 이런 판단이 업무를 아는 사람이 데이터 설계에 꼭 참여해야 하는 이유입니다.
4. 코드·이력·상태 값은 처음부터 나누세요.
정해진 선택지는 목록으로
상태, 구분, 지역처럼 고를 수 있는 값은 글자로 자유 입력받지 말고 목록(코드)으로 관리합니다. ‘완료’, ‘완료됨’, ‘끝’이 섞이지 않습니다.
누가 언제 바꿨는지 남기기
작성자·작성일시·수정자·수정일시 네 칸만 있어도 문제가 생겼을 때 추적할 수 있습니다. 금액·상태처럼 중요한 값은 변경 기록을 따로 남깁니다.
지우지 말고 상태를 바꾸기
데이터를 실제로 삭제하면 연결된 기록이 깨지고 되돌릴 수 없습니다. ‘취소’, ‘사용 안 함’ 같은 상태로 숨기는 것이 업무시스템의 기본입니다.
5. 비전공자가 자주 하는 설계 실수
| 실수 | 생기는 문제 | 이렇게 바꾸세요 |
|---|---|---|
| 한 칸에 여러 값 (예: 품목 칸에 ‘A, B, C’) | 합계·검색이 안 됨 | 상세 표로 나누어 한 줄에 하나씩 |
| 이름으로 연결 (거래처명으로 견적 연결) | 이름이 바뀌면 연결이 끊김 | 고유번호로 연결 |
| 금액·수량을 글자로 저장 | 계산·정렬 오류 | 숫자 형식으로 저장 |
| 날짜 형식이 제각각 | 기간 조회가 틀림 | 날짜 형식으로 통일 |
| 삭제 버튼으로 실제 삭제 | 기록 손실, 복구 불가 | 상태 변경으로 처리 |
6. AI에게 데이터 설계를 맡길 때
데이터 설계도 AI에게 초안을 받을 수 있습니다. 다만 화면보다 먼저, 따로 요청하고, 결과를 아래 질문으로 검토하세요.
아래 요구사항으로 데이터베이스 표를 설계해 줘. 화면이나 코드는 아직 만들지 마. 표 이름, 항목, 형식, 필수 여부, 표 사이 관계를 표로 정리하고, 삭제 대신 상태로 관리할 항목과 변경 이력이 필요한 항목을 따로 표시해 줘.
[한 장 요구사항 붙여넣기]
7. 화면을 만들기 전 체크리스트
나중에 고치기 어려운 것부터 먼저 정합니다.
화면은 열 번 바꿔도 되지만 데이터 구조는 한 번 바꾸는 데도 큰 비용이 듭니다. 표 설계가 끝났다면 이제 AI에게 작게 나눠서 일을 시킬 차례입니다. 다음 편에서 다룹니다.