소개
money.js는 단 1KB 크기의 경량 JavaScript 라이브러리로, 웹 및 Node.js 환경에서 간편한 통화 변환 기능을 제공합니다. 외부 의존성이 없어 프로젝트에 부담 없이 통합 가능하며, 실시간 환율 계산이 필요한 애플리케이션 개발 시 큰 장점이 됩니다.
주요 특징
- 초경량 설계: 전체 파일 크기가 1KB 미만으로 성능 오버헤드 최소화
- 다양한 로딩 방식 지원: 브라우저 스크립트 태그, CommonJS, AMD 등 모두 호환
- 유연한 API: 함수형 호출과 체이닝 문법 동시 지원
- 확장성: 사용자가 직접 환율 데이터를 주입할 수 있어 Open Exchange Rates 등 다양한 소스와 연동 가능
설치 방법
Node.js에서 설치
npm install money
브라우저에서 사용
CDN 또는 로컬 다운로드 후 아래와 같이 포함:
<script src="money.min.js"></script>
소스 코드 클론
git clone https://gitcode.com/gh_mirrors/mo/money.js
기본 사용법
환율 설정
사용 전 기본 통화(base currency)와 비교 통화 대비 환율을 정의해야 합니다.
// 기준 통화를 USD로 설정
fx.base = "USD";
fx.rates = {
EUR: 0.85,
GBP: 0.73,
JPY: 110.5,
KRW: 1200.0
};
단일 금액 변환
두 가지 스타일의 API를 제공합니다:
// 함수 스타일
const euroAmount = fx.convert(50, { from: "USD", to: "EUR" });
console.log(euroAmount); // ~42.5
// 체이닝 스타일
const yenAmount = fx(10).from("USD").to("JPY");
console.log(yenAmount); // ~1105
통화 문자열 파싱
금액과 통화 기호가 포함된 문자열도 직접 처리 가능합니다.
const amount = fx("$29.99 USD").to("KRW");
console.log(amount); // ~35970
고급 활용 예시
배열 일괄 변환
여러 금액을 동시에 변환할 수 있습니다.
const pricesInUsd = [10, 25, 50, 75];
const pricesInEur = fx.convert(pricesInUsd, { from: "USD", to: "EUR" });
console.log(pricesInEur); // [8.5, 21.25, 42.5, 63.75]
실시간 환율 API 연동
Open Exchange Rates와 같은 서비스와 결합하면 실시간 데이터 기반 변환이 가능합니다.
fetch('https://openexchangerates.org/api/latest.json?app_id=YOUR_API_KEY')
.then(res => res.json())
.then(data => {
fx.base = data.base;
fx.rates = data.rates;
const finalPrice = fx(89.99).from("USD").to("GBP");
console.log(`£${finalPrice.toFixed(2)}`);
})
.catch(err => console.error("환율 로드 실패:", err));
기본 옵션 설정
반복되는 파라미터 입력을 줄이기 위해 기본값을 사전 정의할 수 있습니다.
fx.settings = {
from: "USD",
to: "EUR"
};
// 이제 별도 지정 없이 변환 가능
const value = fx.convert(150); // 자동으로 USD → EUR 적용
프로젝트 구조
레포지토리 내 주요 구성 요소:
money.js: 가독성 있는 원본 소스money.min.js: 배포용 압축 버전package.json: 패키지 메타데이터 및 모듈 정보README.md: 사용 설명서 및 예제 문서
버전 이력 요약
- 0.2: Open Exchange Rates 팀이 인수하여 문서 개선
- 0.1.3: Node.js 모듈 내 오타 수정
- 0.1.2: 모듈 로딩 로직 강화
- 0.1.1: 기준 통화 누락 시 대체 처리 추가
- 0.0.2: 문자열 파싱 기능 도입
마무리
money.js는 작지만 강력한 환율 변환 도구로, 글로벌 상거래, 멀티 커런시 UI, 금융 계산기 등의 시나리오에 이상적입니다. 간결한 API와 확장 가능한 아키텍처 덕분에 짧은 시간 안에 기능을 구현할 수 있으며, 성능 영향도 거의 없습니다. 실시간 통화 변환이 필요하다면 이 라이브러리를 적극 고려해보세요.