포트폴리오/[IoT 기반 피지컬 AI 교육일지]

[ 13일차 기록 ] 조립 PC 재고 관리 프로그램 개발기 #4 (기능 확장)

개발자혜콩 2026. 2. 25. 09:42

1. 오늘 한 내용 (Day 5 개발 기록)

① 입고 기능 구조 확장 (메뉴 1~5 설계)

  • 기존 기능: Add (신규 등록)
  • 개념 확장: “등록”과 “입고” 기능 분리

※ 입고 메뉴를 1~5번으로 세분화

  • 1번 (신규) : 새로운 단품 부품 등록 후 입고
  • 2번 (기존) : 이미 등록된 단품 재고 추가
  • 3번 (신규 커스텀) : 사용자 조합 생성 후 세트 입고
  • 4번 (기존 커스텀) : 저장된 사용자 조합 세트 입고
  • 5번 (프리셋) : B1~B6 기성품 세트 일괄 입고

→ 단품 / 커스텀 / 프리셋 구조 분리 완료
→ 입고 로직이 단순 기능에서 “시스템” 단계로 확장됨


② 함수 재사용 구조 개선 (listProducts 업그레이드)

  • 문제
    조회 함수를 상황별로 따로 만들 뻔함
  • 개선
    mode 파라미터 추가
listProducts(0); // 일반 조회
listProducts(1); // ID 포함 관리자용 조회
  • 효과
    함수 중복 제거
    코드 길이 감소
    유지보수성 향상

→ 하나의 함수에 역할 스위치 부여
→ 재사용성 강화


③ 취소(0번) 로직 추가

  • 문제
    - 사용자가 잘못 진입했을 때 빠져나갈 경로 없음
  • 개선
    - 주요 선택 지점에 다음 분기 추가
if (choice == 0) return;
 
  • 효과
    - UX 개선
    - 무한 루프 방지
    - 안전한 메뉴 구조 완성

④ 변수명 정비

  • 문제
    - qty 변수 중복 사용 → 가독성 저하
  • 개선
    - 상황별 명확한 변수명 사용
  • 예시
    - setRestockQty 
    - singleRestockQty
  • 효과
    - 코드 의미 명확화
    - 디버깅 시 혼동 감소

2. 직면했던 에러

프리셋 세트 입고 부분 에러

  • 세트 입고 처리 중 일부 로직 충돌 발생
  • 재고 반영 과정에서 예상과 다른 동작 발생

→ 내일 디버깅 예정


3. 오늘 배운 핵심 개념

기능 확장 시 “구조 분리”의 중요성

입고 기능이 단순 재고 증가가 아니라, 단품 / 커스텀 / 프리셋으로 확장되면서
로직을 한 함수 안에 몰아넣으면 복잡도가 급격히 증가한다는 것을 체감했다.

  • 해결 방식
    - 메뉴 레벨에서 기능 분리
    - 데이터 흐름 기준으로 로직 분리
    - 공통 기능은 함수 재사용

→ 기능이 늘어날수록 코드가 복잡해지는 것이 아니라, 구조가 더 명확해지도록 설계해야 한다는 점을 학습함.


4. 현재 프로그램 진행도

F01 입고 F01-1. 신규단품입고
F01-2. 기존단품입고
F01-3. 신규 커스텀 세트 입고
F01-4. 기존 커스텀 세트 입고
F01-5. 프리셋 세트 입고 ⚠️
F02 수정   ✅           
F03 삭제   ⚠️
F04 출고   ⚠️
F05 조회  
F06 장부  

5. 다음 목표

 

  • 프리셋 세트 입고 에러 수정
  • 출고 시 수익 기록 기능 구현
    • 매출 기록
    • 누적 순이익 계산
    • sales.txt 구조 설계