My Personal Accountant
- 여러 사업자를 관리할 때 매입 내역을 엑셀로 관리하다보니 번거로워져서 개발하였습니다.
본 프로젝트는 SQLite를 사용하여 사업자 정보를 관리합니다.
관리 대상인 사업자 정보를 저장하는 마스터 테이블입니다.
| 컬럼명 | 타입 | 제약 조건 | 설명 |
|---|---|---|---|
biz_reg_no |
TEXT | PRIMARY KEY | 사업자등록번호 (하이픈 제외 10자리) |
biz_name |
TEXT | 상호명 (개인사업자 등 없을 경우 NULL) | |
owner_name |
TEXT | NOT NULL | 대표자 성함 |
status |
TEXT | 운영 상태 (계속, 폐업 등) | |
tax_type |
TEXT | 과세 유형 (일반, 간이 등) |
Note: 데이터 최적화를 위해 모든 상태 값은 핵심 키워드로 축약하여 저장합니다. (예: 계속사업자 → 계속, 간이과세자 → 간이)
- 데이터 정규화: 사업자등록번호(
biz_reg_no)를 고유 키로 설정하여 중복 등록을 방지합니다. - 가독성 최적화: GUI 도구에서 데이터를 직관적으로 확인할 수 있도록 하이픈 등 불필요한 특수문자를 제거하고 용어를 단축하여 저장합니다.
- 안전한 트랜잭션: Python의
with con:구문(Context Manager)을 활용하여 작업 완료 시 자동으로commit이 수행되도록 설계되어 데이터 누락을 방지합니다.
향후 확장성을 고려하여 시간순 정렬이 가능한 UUIDv7 생성 모듈을 직접 구현하여 포함하고 있습니다. 이는 Python 표준 라이브러리(uuid)에서 v7을 공식 지원하기 전까지 가교 역할을 하며, 표준 지원 시 최소한의 수정으로 교체가 가능하도록 설계되었습니다.