준비물에 비용을 — Preparation 섹션 강화
준비물 항목에 비용 추적 기능을 추가한 구현기입니다. 단가/총액 선택, 통화 자유입력, 자동 계산까지.
준비물에 비용을
체크리스트 그 이상
Fecit의 Preparation 섹션은 태스크를 실행하기 전에 필요한 것들을 정리하는 공간입니다. 재료, 도구, 장소, 인원 — 네 가지 카테고리로 나누어 관리합니다.
그런데 지금까지 Preparation은 체크리스트 수준이었습니다. “밀가루 필요” 체크, “믹서기 필요” 체크. 준비물을 “준비”하려면 빠진 게 있었습니다. 얼마나 드는지.
비용 필드
각 준비물 항목에 비용을 입력할 수 있게 했습니다. 단순히 숫자 하나를 넣는 게 아니라, 몇 가지를 고민했습니다.
단가 vs 총액
밀가루 5kg이 필요하고, kg당 3,000원이라면? 단가를 입력하고 자동으로 총액을 계산하는 게 편합니다. 하지만 믹서기 대여비 50,000원은 그냥 총액을 입력하는 게 자연스럽습니다.
그래서 단가/총액을 선택할 수 있게 했습니다. 수량이 있는 카테고리(재료, 도구)에서는 토글로 전환할 수 있고, 단가 모드에서는 수량 × 단가 = 총액이 자동으로 표시됩니다. 장소나 인원처럼 수량 개념이 없는 카테고리에서는 총액만 입력합니다.
통화
여행 준비라면 원화와 달러가 섞일 수 있습니다. 통화를 자유 텍스트로 입력할 수 있게 했습니다. “KRW”, “USD”, “원”, ”$” — 사용자가 원하는 형식으로.
매번 통화를 입력하는 건 번거로우니까, Achiever 설정에서 기본 통화를 지정할 수 있습니다. 새 항목을 만들면 기본 통화가 자동으로 채워집니다.
입력 UI
기존의 수량 입력과 같은 패턴을 따랐습니다. 값 옆에 단위가 붙는 한 줄 구조입니다.
수량 [5] [kg]
비용 [3000] [KRW]
총액 15,000 KRW
수량과 단위가 한 줄, 비용과 통화가 한 줄. 단가 모드일 때만 총액이 자동 계산되어 표시됩니다. 작지만 필요한 정보를 컴팩트하게 담았습니다.
리스트에서도
항목을 열지 않아도 리스트에서 비용이 바로 보입니다. 제목 옆에 수량, 단위, 비용이 한눈에.
✓ 밀가루 5 kg 15,000 KRW
□ 믹서기 1 50,000 KRW
네 가지 카테고리 모두
재료, 도구, 장소, 인원 — 네 카테고리 모두에 비용 필드를 넣었습니다. 카테고리마다 맥락이 다릅니다.
- 재료: 식재료, 부품 — 단가 × 수량 계산이 유용
- 도구: 구매/대여 비용 — 수량이 있으니 단가 계산 가능
- 장소: 대관/임대 비용 — 총액만
- 인원: 인건비 — 총액만
구현
데이터 모델에 세 개 필드를 추가했습니다: cost(비용), cost_currency(통화), is_unit_price(단가 여부). 모든 필드는 Optional이라 기존 데이터에 영향 없이 점진적으로 사용할 수 있습니다.
비용은 문자열로 저장합니다. 부동소수점 오차를 피하기 위해서입니다. 수량(quantity)도 문자열로 저장하는 기존 패턴을 따랐습니다. 계산이 필요할 때만 프론트엔드에서 파싱합니다.
API는 기존의 필드별 업데이트 패턴을 그대로 따릅니다. cost/set, cost-currency/set, is-unit-price/set — 각각 독립적으로 업데이트됩니다. 모바일과 데스크톱 양쪽에 동시 적용했습니다.
준비에 전문화된 섹션으로
Preparation 섹션이 단순 체크리스트에서 한 발 나아갔습니다. 무엇이 필요한지뿐만 아니라, 얼마나 드는지도 파악할 수 있게 되었습니다.
태스크를 실행하기 전에 비용을 가늠할 수 있다면, 더 현실적인 계획을 세울 수 있습니다. 작은 기능이지만, 준비를 “준비답게” 만드는 데 기여할 수 있기를 바랍니다.