Programing/MySQL

MySQL에서 금액을 한글로 표기하는 방법

2025. 5. 1. 16:11
반응형

연관글

  • 2025.04.18 - [Programing/javascript] - 💰 숫자를 한글로 금액 단위로 표현
  • 2025.04.18 - [Programing/javascript] - 💻 숫자를 한글 숫자 표기로 변환

웹 서비스나 전자문서에서 금액을 숫자가 아닌 한글로 표기해야 하는 경우가 종종 있습니다. 예를 들어 "₩12500"이라는 금액을 "일만이천오백원"과 같이 표기하고자 할 때, MySQL에서 이 기능을 구현하는 방법에 대해 정리합니다.


✅ 기본 전제

MySQL은 기본적으로 숫자를 한글로 변환하는 내장 함수는 제공하지 않습니다. 따라서 다음과 같은 대안 중 하나를 사용해야 합니다:

  1. 애플리케이션 레벨에서 처리 (권장)
  2. 스토어드 함수나 프로시저로 직접 구현

✅ 방법 1: 애플리케이션 레벨 처리 (PHP 예시)

function numberToKorean($number) {
    $unitWords = ['', '만', '억', '조', '경'];
    $splitUnit = ['', '십', '백', '천'];
    $numWords = ['', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구'];
    $result = '';

    $number = (string) $number;
    $length = strlen($number);
    $unitIndex = 0;

    while ($length > 0) {
        $chunk = substr($number, max(0, $length - 4), min(4, $length));
        $chunkLength = strlen($chunk);
        $chunkResult = '';

        for ($i = 0; $i < $chunkLength; $i++) {
            $digit = (int)$chunk[$i];
            if ($digit > 0) {
                $chunkResult .= $numWords[$digit] . $splitUnit[$chunkLength - $i - 1];
            }
        }

        if ($chunkResult !== '') {
            $result = $chunkResult . $unitWords[$unitIndex] . $result;
        }

        $unitIndex++;
        $length -= 4;
    }

    return $result . '원';
}

// 사용 예
echo numberToKorean(12500); // 출력: 일만이천오백원

📌 장점

  • 논리 작성과 디버깅이 쉬움
  • 다양한 언어에서 재사용 가능

📌 단점

  • DB에서 직접 처리할 수 없음

✅ 방법 2: MySQL 스토어드 함수로 구현 (단순 예시)

MySQL에서 한글 변환을 전부 처리하려면, 매우 복잡한 CASE문 또는 루프 기반의 UDF를 작성해야 합니다. 다음은 단순한 자리 수 처리를 위한 개념적 예시입니다.

DELIMITER $$
CREATE FUNCTION number_to_korean(n INT) RETURNS VARCHAR(100)
BEGIN
  DECLARE result VARCHAR(100) DEFAULT '';
  IF n = 10000 THEN
    SET result = '일만원';
  ELSEIF n = 1000 THEN
    SET result = '천원';
  ELSEIF n = 5000 THEN
    SET result = '오천원';
  ELSE
    SET result = CONCAT(n, '원');
  END IF;
  RETURN result;
END$$
DELIMITER ;

📌 비추천 사유

  • 관리 복잡도 증가
  • 숫자 조합이 무한한 점으로 인해 CASE문 확장 불가

✅ 결론

MySQL에서 숫자를 한글 금액으로 표현하고자 한다면, 복잡한 로직과 문자열 연산이 필요한 만큼 DB 내부보다는 애플리케이션 레벨에서 처리하는 것을 권장합니다. PHP, JavaScript, Python 등에서 공통적으로 처리 로직을 작성하여 재사용성을 높이고 유지보수를 단순화하는 것이 가장 현실적인 접근입니다.

반응형

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

MySQL 인덱스: B-Tree, Fulltext, Spatial의 차이와 사용법 (MySQL Index Guide: B-Tree, Fulltext, Spatial)  (5) 2025.06.25
MySQL 속도 측정을 위한 SQL_NO_CACHE  (0) 2021.09.08
mysql strip_tags function / html 제거 후 검색  (1) 2020.10.20
MySQL 변수값 IN() 검색? FIND_IN_SET() 함수 이용  (1) 2018.12.31
MySQL EXPLAIN 사용하여 Query 퍼포먼스 확인.  (0) 2016.09.13
group_concat 다중 레코드를 한개 컬럼으로 출력.  (0) 2013.07.15
MySQL - 초성검색  (0) 2013.02.21
MySQL  (0) 2011.11.14
'Programing/MySQL' 카테고리의 다른 글
  • MySQL 인덱스: B-Tree, Fulltext, Spatial의 차이와 사용법 (MySQL Index Guide: B-Tree, Fulltext, Spatial)
  • MySQL 속도 측정을 위한 SQL_NO_CACHE
  • mysql strip_tags function / html 제거 후 검색
  • MySQL 변수값 IN() 검색? FIND_IN_SET() 함수 이용
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)
  • 인기 글

  • 최근 댓글

  • 태그

    기초
    자바스크립트유틸
    읽고 싶은 책
    IT 관련
    It
    위시리스트
    php
    블로그
    iT's MY LiFE
    Java
    자바
    SQL
    디자인패턴
    자바스크립트
    JavaScript
    IT블로그
    IT·컴퓨터
    사고 싶은 책
    js패턴
    jsp
Dongkkase
MySQL에서 금액을 한글로 표기하는 방법
상단으로

티스토리툴바