1. 프로젝트 개요 및 최종 산출물
약 2주간 진행한 '조립 PC 재고관리 프로그램(HW_Stocker)' 프로젝트를 마무리하며, 다음 3가지 산출물을 정리함.
(1) 개발 보고서 (Development Report)
- 형식: PDF 문서
- 내용:
- 요구사항 정의: 입고(F01), 수정(F02), 삭제(F03), 출고(F04), 조회(F05) 등 기능 명세.
- 프로젝트 설계: 프로그램 순서도(Flowchart) 및 모듈 구조도(Structure Diagram).
- 개발 일정: 기획, 구현, 테스트, 문서화 단계별 진행 현황.
(2) 시연 영상 (Demo Video)
- 내용: 프로그램 실행, 예외 처리(방어 코드 동작), 세트 출고, 실시간 장부 기록 시연.
(3) 포트폴리오 (Portfolio)
- 내용: 개발 목적, 개발 환경(Linux/GCC), 핵심 기술(Atomic Logic, Modularization), 트러블 슈팅 요약.
2. 기안서 기반 핵심 구현 (Key Implementation)
개발 보고서 4페이지(F04)와 6페이지(F06)에 명시된 출고 및 장부 기록 로직의 구현 내용이다.
(1) 세트 출고 로직 (Set Release Logic)
- 기능 정의 (F04): 조립 PC(세트) 출고 시 포함된 부품들의 재고를 일괄 차감. 부품 중 하나라도 재고가 부족할 경우 전체 출고를 수행하지 않음.
- 구현 방식: 2단계 검증 (Two-Phase Verification)
- 1단계 (검증): 세트 내 모든 부품의 재고 수량 확인 (isEnough 플래그 활용).
- 2단계 (실행): 모든 부품의 재고가 충분한 경우에만 실제 차감 및 저장 수행.
- 구현코드
// 1단계: 재고 검증
for (int i = 0; i < size; i++) {
if (p->stock < qty) {
isEnough = 0; // 재고 부족 확인
break;
}
}
// 2단계: 실제 출고 (검증 통과 시에만 실행)
if (isEnough) {
for (int i = 0; i < size; i++) {
p->stock -= qty; // 재고 차감
LogSale(p->name, qty, p->cost, p->price); // 장부 기록
}
saveToFile(); // 파일 저장
}
(2) 매출 기록 및 데이터 저장 (Sales Logging)
- 기능 정의 (F06): 출고 완료 시 부품명, 수량, 순이익(판매가-매입가)을 계산하여 sales.txt에 기록.
- 구현 방식:
- 프로그램 종료 시점이 아닌, 출고 트랜잭션 직후 파일 입출력(Append 모드) 수행.
- inventory.txt(재고)와 sales.txt(매출)를 동시에 갱신하여 데이터 불일치 방지.
3. 학습 내용
- 문서화: 기안서 작성을 통해 기능 명세와 구현 범위를 명확히 하는 과정을 경험함.
- 트랜잭션 처리: '전부 실행되거나 실행되지 않아야 한다'는 원칙을 세트 출고 로직에 적용함.
- 데이터 영속성: 파일 입출력 시점을 조절하여 비정상 종료 시 데이터 유실을 최소화함.
4. 향후 계획
- 기능 보완: 제품명 부분 검색 기능 추가.
- 확장: 텍스트 파일 기반 저장소를 SQLite 데이터베이스로 변경 고려.
'포트폴리오 > [IoT 기반 피지컬 AI 교육일지]' 카테고리의 다른 글
| [ C언어 IoT 프로젝트 개발 ] #1 센서 데이터 수집 및 UART 통신 (18일차 기록) (0) | 2026.03.10 |
|---|---|
| [ 17일차 기록 ] IoT 기초와 센서 실습 정리 (with. 아두이노) (0) | 2026.03.10 |
| [ 15일차 기록 ] 조립 PC 재고 관리 프로그램 개발기 #6 (리팩토링 및 안정화) (0) | 2026.03.03 |
| [ 14일차 기록 ] 조립 PC 재고 관리 프로그램 개발기 #5 (출고·매출 시스템 완성) (0) | 2026.02.25 |
| [ 13일차 기록 ] 조립 PC 재고 관리 프로그램 개발기 #4 (기능 확장) (0) | 2026.02.25 |