Programing/javascript

JavaScript로 구현하는 금액 단축 표기 (K / M / B 표기법)

2025. 5. 27. 15:36
반응형

연관글

  • 2025.04.18 - [Programing/javascript] - 💰 숫자를 한글로 금액 단위로 표현
  • 2025.04.18 - [Programing/javascript] - 💻 숫자를 한글 숫자 표기로 변환
  • 2025.05.27 - [Programing/javascript] - JavaScript로 구현하는 금액의 영어 단위 변환 (Number to Words)
  • 2025.05.27 - [Programing/javascript] - JavaScript로 구현하는 게임 데미지 단위 축약 (A ~ ZZZZ)
  • 2025.06.11 - [Programing] - 엑셀/스프레디시트에서 숫자를 한글로 표기하는 방법 총정리 (Excel to Hangul Conversion)

금액 단축 표기의 필요성과 활용 사례

"천 단위 압축" 방식은 숫자 데이터를 간결하게 보여주는 데 매우 유용합니다. 예를 들어, 1500은 "1.5K", 1,000,000은 "1M"과 같이 표기할 수 있습니다. 이러한 표기 방식은 다음과 같은 실무 환경에서 자주 사용됩니다:

  • 모바일 UI 및 반응형 디자인에서 숫자 공간 절약
  • 대시보드, 리포트, 데이터 시각화 영역에서 가독성 향상
  • 소셜 미디어나 금융 앱 등에서 사용자 친화적인 데이터 표현

자바스크립트로 단축 금액 표기 함수 만들기

숫자를 "K", "M", "B" 단위로 축약해서 보여주기 위해 다음과 같은 구성 요소가 필요합니다:

1. "단위 기준 정의"

  • 1,000 → "K" (Thousand)
  • 1,000,000 → "M" (Million)
  • 1,000,000,000 → "B" (Billion)

2. "소수점 제어 및 반올림"

  • 사용자에게 명확한 수치를 전달하기 위해 소수점 자리수 제한 (예: 1.2K, 2.5M)

3. "예외 처리"

  • 0일 경우는 "0"으로 출력
  • 음수는 부호 유지

전체 자바스크립트 코드 예제

function formatCurrencyAbbreviation(num, digits = 1) {
  if (num === 0) return "0";

  const units = [
    { value: 1_000_000_000, symbol: "B" },
    { value: 1_000_000, symbol: "M" },
    { value: 1_000, symbol: "K" }
  ];

  const absNum = Math.abs(num);
  const sign = num < 0 ? "-" : "";

  for (let i = 0; i < units.length; i++) {
    if (absNum >= units[i].value) {
      return (
        sign + (absNum / units[i].value).toFixed(digits).replace(/\.0+$/, "") + units[i].symbol
      );
    }
  }

  return sign + absNum.toString();
}

코드 설명

  • "단위 기준 정의" 배열에서 큰 단위부터 차례로 비교하며 해당 단위를 적용합니다.
  • toFixed로 소수점 자리수를 제어하고, 정수면 "0"을 제거하여 불필요한 소수점 표기를 생략합니다.
  • 음수일 경우 부호를 유지하며 출력됩니다.

예시 출력 결과

console.log(formatCurrencyAbbreviation(1234));        // "1.2K"
console.log(formatCurrencyAbbreviation(5000000));     // "5M"
console.log(formatCurrencyAbbreviation(-987654321));  // "-987.7M"
console.log(formatCurrencyAbbreviation(0));           // "0"
console.log(formatCurrencyAbbreviation(999));         // "999"

각 숫자는 적절한 단위로 축약되며, 가독성이 뛰어난 형태로 출력됩니다.


성능 및 확장성 고려

이 방식은 O(1) 복잡도로 매우 빠르게 작동하며, 사용자 입력에 실시간 대응하는 UI에도 무리가 없습니다. 또한 단위 배열만 조정하면 "T"(trillion) 등의 확장도 손쉽게 가능합니다.


마무리 및 추천 자료

"K / M / B" 표기법은 대규모 데이터를 사용자 친화적으로 표현할 수 있는 효과적인 방법입니다. 간단한 알고리즘으로도 실무에서 크게 도움이 되는 기능이므로, 다양한 숫자 포맷팅 유틸 함수와 함께 익혀두는 것을 추천합니다.

금액/숫자 처리 함수나 UI 숫자 축약 표기법에 대해 더 배우고 싶다면 다음 리소스를 활용해 보세요:

  • MDN Number.prototype.toFixed()
  • Observable Number Format Examples
  • replit 자바스크립트 실습 환경

실제 서비스에서 숫자를 다루는 컴포넌트를 구현할 때 위와 같은 유틸 함수는 코드 품질과 UX 모두를 향상시킬 수 있습니다.

반응형

'Programing > javascript' 카테고리의 다른 글

JavaScript canvas로 이미지 리사이즈  (1) 2025.06.26
JavaScript로 구현하는 게임 데미지 단위 축약 (A ~ ZZZZ)  (0) 2025.05.27
JavaScript로 구현하는 금액의 영어 단위 변환 (Number to Words)  (0) 2025.05.27
기수 정렬 (Radix Sort) 설명과 JavaScript 예제  (1) 2025.05.22
힙 정렬 (Heap Sort) 설명과 JavaScript 예제  (0) 2025.05.22
JavaScript 비교 연산자  (1) 2025.05.18
JavaScript 조건문  (0) 2025.05.18
JavaScript 반복문  (0) 2025.05.18
'Programing/javascript' 카테고리의 다른 글
  • JavaScript canvas로 이미지 리사이즈
  • JavaScript로 구현하는 게임 데미지 단위 축약 (A ~ ZZZZ)
  • JavaScript로 구현하는 금액의 영어 단위 변환 (Number to Words)
  • 기수 정렬 (Radix Sort) 설명과 JavaScript 예제
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    자바스크립트유틸
    블로그
    자바
    SQL
    JavaScript
    IT·컴퓨터
    자바스크립트
    IT 관련
    It
    php
    IT블로그
    사고 싶은 책
    js패턴
    위시리스트
    Java
    기초
    디자인패턴
    jsp
    읽고 싶은 책
    iT's MY LiFE
Dongkkase
JavaScript로 구현하는 금액 단축 표기 (K / M / B 표기법)
상단으로

티스토리툴바