Search

금액 formatter를 만든다면

등록일
2025/09/19 17:27
from. Thrower 📨
판단 기준 - 자유롭게 추가
예측 가능성
to. Catcher 📪
Catcher가 검토해줬나요?
In Progress

고민되는 상황

구체적인 사례를 소개해주세요.
formatAmount({ number: 1000, prefix: '$' }); // $1,000 formatAmount({ number: 1000, suffix: '원' }); // 1,000원 formatAmount({ number: 1000, prefix: '₩' }); // ₩1,000 // 사용할 때마다 고민됨 // 영어권이면 앞에 $? 뒤에 USD? // 한국이면 앞에 ₩? 뒤에 원? // 일본이면... 엔화는 어떻게?
TypeScript
복사
뭔가 찝찝하거나 고민되는 상황을 설명해주세요.
금액 포매팅 함수 formatAmount({ number, suffix, prefix })를 만들었는데, 세션에서 "이게 블랙박스다"라는 피드백을 받았어요. 금액을 포매팅 할 때 prefix/suffix로 문자열을 받아서 붙여주는 방식이 뭔가 이상하긴 한데.. 명확한 근거가 뭘까요?

의사결정과 근거

고민 상황을 해결한 결정과 그렇게 생각한 근거가 궁금해요!
locale과 currency라는 도메인 개념을 도입하기로 결정했어요.
1.
도메인 명확성: 금액 표시는 나라(locale)와 화폐(currency)에 따라 정해지는 것이지, 임의의 prefix/suffix가 아님
2.
예측 가능성 향상: formatAmount({ number: 1000, locale: 'ko-KR', currency: 'KRW' })처럼 쓰면 한국 원화 형식이라는 게 명확함
3.
책임 소재 명확화:
사용자는 어느 나라, 어느 화폐인지만 알려주면 됨
포매팅 함수가 해당 locale/currency의 규칙을 책임짐
4.
확장성: 새로운 나라/화폐가 추가되어도 사용법은 동일하고, 내부 로직만 확장하면 됨