연관글
- 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로 구현하는 금액 단축 표기 (K / M / B 표기법)
- 2025.05.27 - [Programing/javascript] - JavaScript로 구현하는 게임 데미지 단위 축약 (A ~ ZZZZ)
많은 직장인과 문서 실무자들이 "한글 표기법"을 선호하는 이유는 단순한 미관이나 언어 취향을 넘어서, 실제 문서 작성에서 요구되는 표준과 깊은 관련이 있기 때문입니다. 예를 들어, 세금계산서, 법률 문서, 공공기관 제출용 행정서류, 건물 조회 및 유지관리 문서 등에서는 숫자를 아라비아 숫자 그대로 사용하는 것보다, "일백만 원", "이천오백삼십만 원"과 같은 한글 표기로 표기하는 것이 더 정확하고 명확한 의사 전달에 적합하다는 평가를 받고 있습니다. 이는 숫자에 익숙하지 않은 사람이나 고연령층에게도 혼동 없이 의미를 전달하기에 용이하며, 금전 관련 문서에서 발생할 수 있는 숫자 위·변조를 방지하는 효과도 기대할 수 있습니다. 또한 국세청이나 지자체 등에서 요구하는 문서 포맷 중 일부는 한글 금액 표기를 필수로 요구하는 경우가 많아, 이러한 변환 기능은 업무 효율성과 문서의 신뢰도를 동시에 높여주는 중요한 요소로 작용합니다.
기능 소개
Windows용 Excel, Mac용 Excel, Google 스프레드시트, Apple Numbers, Microsoft Office Online에서 아래와 같은 기능을 사용할 수 있는 방법에 대해 알아보겠습니다.
- 숫자를 한글 금액 단위로 표현 -
formatKoreanCurrency- 123456789 → 1억 2,345만 6,789원
- ₩98,765,432,100원 → 987억 6,543만 2,100원
- 1,234만원 → 1,234만원
- 1000000000000 → 1조원
- 💵123억 45만💰 → 123억 45만원
- 숫자를 한글 숫자 표기로 변환 -
numberToHan- 123456789 → 일억이천삼백사십오만육천칠백팔십구
- 1,002,003,000 → 일십억이백만삼천
- 000123456 → 십이만삼천사백오십육
- 12억3천만원 → 일십이억삼천만원
- 금액의 영어 단위 변환 -
numberToWords- 101 → One Hundred One
- 0 → Zero
- 1000000 → One Million
- 금액 단축 표기(K/M/B) -
formatCurrencyAbbreviation- 1,000 → "K" (Thousand)
- 1,000,000 → "M" (Million)
- 1,000,000,000 → "B" (Billion)
Windows용 Excel
엑셀에서 위 4가지 기능(formatKoreanCurrency, numberToHan, numberToWords, formatCurrencyAbbreviation)을 사용하려면 VBA 사용자 정의 함수(UDF)로 구현해야 합니다. 아래는 각 기능을 엑셀에서 사용할 수 있도록 변환한 VBA 코드입니다.
숫자를 한글 금액 단위로 표현 - formatKoreanCurrency
Function FormatKoreanCurrency(ByVal input As Variant) As String
Dim num As Double
Dim unitNames As Variant
Dim result As String
Dim unitIndex As Integer
Dim value As Double
Dim chunk As Double
On Error GoTo Invalid
num = CDbl(Replace(input, ",", ""))
If num < 0 Then FormatKoreanCurrency = "0원": Exit Function
If num = 0 Then FormatKoreanCurrency = "0원": Exit Function
unitNames = Array("", "만", "억", "조", "경", "해")
unitIndex = 0
value = num
result = ""
Do While value > 0
chunk = value Mod 10000
If chunk > 0 Then
result = Format(chunk, "#,##0") & unitNames(unitIndex) & " " & result
End If
value = Int(value / 10000)
unitIndex = unitIndex + 1
Loop
FormatKoreanCurrency = Trim(result) & "원"
Exit Function
Invalid:
FormatKoreanCurrency = "0원"
End Function
숫자를 한글 숫자 표기로 변환 - numberToHan
Function NumberToHan(ByVal input As Variant) As String
Dim hanNum As Variant: hanNum = Array("", "일", "이", "삼", "사", "오", "육", "칠", "팔", "구")
Dim unit1 As Variant: unit1 = Array("", "십", "백", "천")
Dim unit4 As Variant: unit4 = Array("", "만", "억", "조", "경")
Dim numStr As String, result As String
Dim i As Integer, j As Integer
Dim chunk As String, digit As Integer, part As String
input = Replace(CStr(input), ",", "")
If Not IsNumeric(input) Then NumberToHan = "": Exit Function
numStr = StrReverse(input)
result = ""
For i = 0 To Len(numStr) \ 4
part = ""
chunk = Mid(numStr, i * 4 + 1, 4)
For j = 1 To Len(chunk)
digit = Mid(chunk, j, 1)
If Val(digit) > 0 Then
part = hanNum(Val(digit)) & unit1(j - 1) & part
End If
Next j
If Len(part) > 0 Then
result = part & unit4(i) & result
End If
Next i
NumberToHan = result
End Function
금액의 영어 단위 변환 - numberToWords
Function NumberToWords(ByVal num As Double) As String
Dim below20 As Variant
below20 = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", _
"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", _
"Seventeen", "Eighteen", "Nineteen")
Dim tens As Variant
tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
Dim thousands As Variant
thousands = Array("", "Thousand", "Million", "Billion")
If num = 0 Then NumberToWords = "Zero": Exit Function
Dim result As String: result = ""
Dim i As Integer
For i = 0 To 3
Dim n As Long: n = num Mod 1000
If n > 0 Then
result = HelperWords(n, below20, tens) & thousands(i) & " " & result
End If
num = Int(num / 1000)
Next i
NumberToWords = Application.WorksheetFunction.Trim(result)
End Function
Private Function HelperWords(ByVal n As Long, below20 As Variant, tens As Variant) As String
If n = 0 Then
HelperWords = ""
ElseIf n < 20 Then
HelperWords = below20(n) & " "
ElseIf n < 100 Then
HelperWords = tens(Int(n / 10)) & " " & HelperWords(n Mod 10, below20, tens)
Else
HelperWords = below20(Int(n / 100)) & " Hundred " & HelperWords(n Mod 100, below20, tens)
End If
End Function
금액 단축 표기(K/M/B) - formatCurrencyAbbreviation
Function FormatCurrencyAbbreviation(ByVal num As Double, Optional digits As Integer = 1) As String
Dim absNum As Double: absNum = Abs(num)
Dim sign As String: sign = IIf(num < 0, "-", "")
If absNum >= 1000000000# Then
FormatCurrencyAbbreviation = sign & Round(absNum / 1000000000#, digits) & "B"
ElseIf absNum >= 1000000 Then
FormatCurrencyAbbreviation = sign & Round(absNum / 1000000, digits) & "M"
ElseIf absNum >= 1000 Then
FormatCurrencyAbbreviation = sign & Round(absNum / 1000, digits) & "K"
Else
FormatCurrencyAbbreviation = sign & CStr(absNum)
End If
End Function
사용 방법
- 엑셀 실행 >
Alt + F11(VBA 편집기 열기) 삽입 > 모듈선택- 위 코드들을 각각 복사해서 붙여넣기
- 엑셀 시트로 돌아가서 아래처럼 사용:
=FormatKoreanCurrency(12345678) → "1234만 5678원"
=NumberToHan(123456789) → "일억이천삼백사십오만육천칠백팔십구"
=NumberToWords(123456789) → "One Hundred Twenty Three Million Four Hundred Fifty Six Thousand Seven Hundred Eighty Nine"
=FormatCurrencyAbbreviation(1234567) → "1.2M"
Mac용 Excel
Mac용 엑셀에서도 위에서 제공한 VBA 사용자 정의 함수(UDF)를 그대로 사용할 수 있습니다. 다만, 몇 가지 주의사항과 단계별 설명이 필요합니다. 아래 순서대로 따라 하시면 됩니다.
Mac용 Excel에서 VBA 함수 사용하는 방법
1. 엑셀 열기 > VBA 편집기 진입
- 엑셀을 열고
Cmd + Option + F11(또는 메뉴:도구 > 매크로 > Visual Basic Editor) - 왼쪽 탐색기에서 원하는 워크북(예: ThisWorkbook) 아래에 있는
Modules를 확인하거나, 없으면 새로 생성합니다.
2. 모듈 삽입
- 메뉴에서
삽입 > 모듈선택 - 새 모듈(Module1 등)에 이전에 제공한 코드를 복사하여 붙여넣기
- 예:
Function FormatKoreanCurrency(...),Function NumberToHan(...)등
3. 저장
- 파일 저장 시
.xlsm또는.xlsb포맷으로 저장해야 매크로 기능이 활성화됩니다.
(.xlsx는 VBA 포함 불가)
Mac Excel 사용 시 주의사항
| 항목 | 설명 |
|---|---|
| 버전 | Microsoft 365 / Office 2016 이상 권장 (그 이하에선 일부 기능 제한) |
| 보안 설정 | 메뉴 Excel > 환경설정 > 보안 및 개인 정보 보호에서 매크로 사용 허용으로 설정해야 함 |
| 함수 자동 완성 | Mac에서는 사용자 정의 함수(UDF)가 자동완성 목록에 보이지 않지만 직접 입력하면 동작 |
| VBA 디버깅 | 오류 발생 시, VBA 편집기에서 중단점을 걸거나 MsgBox, Debug.Print 등으로 추적 가능 |
Google 스프레디시트
Apps Script를 활용해 사용자 정의 함수를 만들 수 있습니다.
- 상단 메뉴 → 확장 프로그램 → Apps Script 진입
- 아래 스크립트를 복사 후 붙여 넣기
Drive 에 프로젝트 저장버튼 클릭(저장 아이콘으로 표기되어 있음)
숫자를 한글 금액 단위로 표현 - formatKoreanCurrency
function formatKoreanCurrency(input) {
let numeric = typeof input === "string" ? input.replace(/[^\d]/g, "") : input;
const amount = Number(numeric);
if (isNaN(amount) || amount < 0) return "0원";
if (amount === 0) return "0원";
const unitNames = ["", "만", "억", "조", "경", "해"];
const result = [];
let value = amount;
let unitIndex = 0;
while (value > 0) {
const chunk = value % 10000;
if (chunk > 0) {
result.unshift(`${chunk.toLocaleString()}${unitNames[unitIndex]}`);
}
value = Math.floor(value / 10000);
unitIndex++;
}
return result.join(" ") + "원";
}
숫자를 한글 숫자 표기로 변환 - numberToHan
function numberToHan(input) {
const hanNum = ['', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구'];
const unit1 = ['', '십', '백', '천'];
const unit4 = ['', '만', '억', '조', '경'];
// 한글 금액을 숫자로 변환 (예: "12억3천만원" → 123000000)
function parseKoreanAmountToNumber(str) {
if (typeof str !== 'string') return Number(str);
let total = 0;
let temp = 0;
const units = {
'해': 100000000000000000000,
'경': 10000000000000000,
'조': 1000000000000,
'억': 100000000,
'만': 10000,
'천': 1000,
'백': 100,
'십': 10
};
str = str.replace(/[^\d가-힣]/g, '');
const regex = /(\d+)(해|경|조|억|만|천|백|십)?/g;
let match;
while ((match = regex.exec(str)) !== null) {
const num = parseInt(match[1]);
const unit = match[2];
if (unit && units[unit]) {
total += num * units[unit];
} else {
temp += num;
}
}
return total + temp;
}
let num = parseKoreanAmountToNumber(input);
if (!num || isNaN(num)) return '';
num = String(num);
const reversed = num.split('').reverse().join('');
const split4 = [];
for (let i = 0; i < reversed.length; i += 4) {
split4.push(reversed.substring(i, i + 4));
}
const result = [];
for (let i = 0; i < split4.length; i++) {
const chunk = split4[i].split('');
const temp = [];
for (let j = 0; j < chunk.length; j++) {
const digit = parseInt(chunk[j]);
if (digit > 0) {
temp.unshift(hanNum[digit] + unit1[j]);
}
}
if (temp.length > 0) {
result.unshift(temp.join('') + unit4[i]);
}
}
return result.join('');
}
금액의 영어 단위 변환 - numberToWords
function numberToWords(num) {
if (Number(num) === 0) return "Zero";
num = Number(num);
const below20 = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten",
"Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen",
"Seventeen", "Eighteen", "Nineteen"];
const tens = ["", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"];
const thousands = ["", "Thousand", "Million", "Billion"];
function helper(n) {
if (n === 0) return "";
else if (n < 20) return below20[n] + " ";
else if (n < 100) return tens[Math.floor(n / 10)] + " " + helper(n % 10);
else return below20[Math.floor(n / 100)] + " Hundred " + helper(n % 100);
}
let word = "";
let i = 0;
while (num > 0) {
if (num % 1000 !== 0) {
word = helper(num % 1000) + thousands[i] + " " + word;
}
num = Math.floor(num / 1000);
i++;
}
return word.trim();
}
금액 단축 표기(K/M/B) - formatCurrencyAbbreviation
function formatCurrencyAbbreviation(num, digits = 1) {
if (Number(num) === 0) return "0";
const units = [
{ value: 1000000000, symbol: "B" },
{ value: 1000000, symbol: "M" },
{ value: 1000, 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();
}
Apple Numbers
Apple Numbers는 매우 제한적인 기능만 제공하기 때문에, JavaScript, VBA, Apps Script처럼 사용자 정의 함수(Custom Function)를 직접 만들 수 없습니다.
따라서 다음과 같이 가능한 기능은 수식으로, 불가능한 기능은 우회 방식으로 처리해야 합니다.
| 함수 이름 | 기능 설명 | Numbers에서 가능 여부 | 대체 방법 |
|---|---|---|---|
formatKoreanCurrency |
숫자 → "1억 2,345만 6,789원" | ⚠️ 부분 가능 | 수식 조합 |
numberToHan |
숫자 → 한글 읽기 (일억이천...) | ❌ 불가 | 수작업 또는 외부 변환 |
numberToWords |
숫자 → 영어 단어 (One Hundred...) | ❌ 불가 | 외부 변환 (예: 웹) |
formatCurrencyAbbreviation |
숫자 → K/M/B 단위 축약 | ✅ 가능 | 사용자 지정 서식 or 수식 |
숫자를 한글 금액 단위로 표현 - formatKoreanCurrency
Numbers는 텍스트 조합 수식만 지원하므로 아래와 같이 구성하세요:
IF(A2 ≥ 100000000,
INT(A2 / 100000000) & "억 " & INT(MOD(A2, 100000000) / 10000) & "만 " & MOD(A2, 10000) & "원",
IF(A2 ≥ 10000,
INT(A2 / 10000) & "만 " & MOD(A2, 10000) & "원",
A2 & "원"
)
)
결과 예시:
| A2 값 | 출력 |
|---|---|
| 123456789 | 1억 2345만 6789원 |
| 9999 | 9999원 |
| 10000 | 1만 0원 |
숫자를 한글 숫자 표기로 변환 - numberToHan
- Google 스프레드시트 또는 웹 API로 변환 후 결과를 붙여 넣기
금액의 영어 단위 변환 - numberToWords
- Google 스프레드시트 또는 웹 API로 변환 후 결과를 붙여 넣기
금액 단축 표기(K/M/B) - formatCurrencyAbbreviation
수식 예시 (B → M → K):
IF(A2 ≥ 1000000000,
ROUND(A2 / 1000000000, 1) & "B",
IF(A2 ≥ 1000000,
ROUND(A2 / 1000000, 1) & "M",
IF(A2 ≥ 1000,
ROUND(A2 / 1000, 1) & "K",
A2
)
)
)
결과 예시:
| A2 값 | 출력 |
|---|---|
| 1500 | 1.5K |
| 1250000 | 1.3M |
| 2000000000 | 2.0B |
요약
| 함수명 | Numbers 가능 여부 | 구현 방식 |
|---|---|---|
formatKoreanCurrency |
⚠️ 가능 (억/만까지만) | 수식 조합 |
numberToHan |
❌ 불가 | Google Sheets 등 외부 사용 후 복사 |
numberToWords |
❌ 불가 | 외부 웹 또는 Google Sheets 사용 |
formatCurrencyAbbreviation |
✅ 가능 | 조건 수식 활용 |
제안
Apple Numbers는 기능 제약이 심하므로, 아래 중 하나를 권장드립니다:
- Google 스프레드시트 + Apps Script로 처리 후 복사
- Mac용 Excel (또는 Excel Online) + Office Script 사용
- macOS Shortcuts 또는 Python으로 Numbers 연동 자동화 (고급 사용 시)
Microsoft Office Online
Excel Online은 일반 셀 함수 수준의 커스터마이징은 어렵지만, Microsoft 365 Business 이상 계정 사용자라면 Office Script로 충분히 강력한 자동화를 구현할 수 있습니다.
만약 Google Sheets 환경을 선호한다면 Apps Script 또는 외부 API를 통해 동일한 결과를 얻을 수 있으며, 오히려 셀 함수로도 직접 호출이 가능하다는 장점이 있습니다.
만약 메뉴 → 자동화 → 스크립트 작성기 메뉴가 없다면 Microsoft 365 Business 또는 Education 계정으로 로그인해서 진행해야합니다.
1) Excel Online 열기
- 웹 브라우저에서 https://excel.office.com 접속
- Microsoft 365 Business 또는 Education 계정으로 로그인
2) 자동화 메뉴 확인
- 엑셀 상단 메뉴에 "자동화" 탭이 있는지 확인
- "자동화 → 코드 편집기 열기"를 선택하여 스크립트 작성기 실행
3) 스크립트 작성 및 함수 등록
- 스크립트 편집기에 위 4개 함수를 하나의 Office Script로 등록합니다.
- 예시: A2:A10 셀의 입력값을 기준으로, B2:E10 셀에 각 함수의 결과 출력
4) 통합 스크립트
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const inputRange = sheet.getRange("A2:A10").getValues();
const output: string[][] = [];
for (let i = 0; i < inputRange.length; i++) {
const value = inputRange[i][0];
const formatted = formatKoreanCurrency(value);
const han = numberToHan(value);
const eng = numberToWords(Number(value));
const abbr = formatCurrencyAbbreviation(Number(value));
output.push([formatted, han, eng, abbr]);
}
sheet.getRange("B2:E10").setValues(output);
}
function formatKoreanCurrency(input: any): string {
let numeric = typeof input === "string" ? input.replace(/[^\d]/g, "") : input;
const amount = Number(numeric);
if (isNaN(amount) || amount < 0) return "0원";
if (amount === 0) return "0원";
const unitNames = ["", "만", "억", "조", "경", "해"];
const result = [];
let value = amount;
let unitIndex = 0;
while (value > 0) {
const chunk = value % 10000;
if (chunk > 0) {
result.unshift(chunk.toLocaleString() + unitNames[unitIndex]);
}
value = Math.floor(value / 10000);
unitIndex++;
}
return result.join(" ") + "원";
}
function numberToHan(input: any): string {
const hanNum = ['', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구'];
const unit1 = ['', '십', '백', '천'];
const unit4 = ['', '만', '억', '조', '경'];
function parseKoreanAmountToNumber(str: string): number {
if (typeof str !== 'string') return Number(str);
let total = 0;
let temp = 0;
const units: { [key: string]: number } = {
'해': 1e20,
'경': 1e16,
'조': 1e12,
'억': 1e8,
'만': 1e4,
'천': 1e3,
'백': 1e2,
'십': 1e1
};
str = str.replace(/[^\d가-힣]/g, '');
const regex = /(\d+)(해|경|조|억|만|천|백|십)?/g;
let match: RegExpExecArray | null;
while ((match = regex.exec(str)) !== null) {
const num = parseInt(match[1]);
const unit = match[2];
if (unit && units[unit]) {
total += num * units[unit];
} else {
temp += num;
}
}
return total + temp;
}
let num = parseKoreanAmountToNumber(String(input));
if (!num || isNaN(num)) return '';
num = Number(num).toString();
const reversed = num.split('').reverse().join('');
const split4 = [];
for (let i = 0; i < reversed.length; i += 4) {
split4.push(reversed.substring(i, i + 4));
}
const result = [];
for (let i = 0; i < split4.length; i++) {
const chunk = split4[i].split('');
const temp = [];
for (let j = 0; j < chunk.length; j++) {
const digit = parseInt(chunk[j]);
if (digit > 0) {
temp.unshift(hanNum[digit] + unit1[j]);
}
}
if (temp.length > 0) {
result.unshift(temp.join('') + unit4[i]);
}
}
return result.join('');
}
function numberToWords(num: number): string {
if (num === 0) return "Zero";
const below20 = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten",
"Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen",
"Seventeen", "Eighteen", "Nineteen"];
const tens = ["", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"];
const thousands = ["", "Thousand", "Million", "Billion"];
function helper(n: number): string {
if (n === 0) return "";
else if (n < 20) return below20[n] + " ";
else if (n < 100) return tens[Math.floor(n / 10)] + " " + helper(n % 10);
else return below20[Math.floor(n / 100)] + " Hundred " + helper(n % 100);
}
let word = "";
let i = 0;
while (num > 0) {
if (num % 1000 !== 0) {
word = helper(num % 1000) + thousands[i] + " " + word;
}
num = Math.floor(num / 1000);
i++;
}
return word.trim();
}
function formatCurrencyAbbreviation(num: number, digits: number = 1): string {
if (num === 0) return "0";
const units = [
{ value: 1000000000, symbol: "B" },
{ value: 1000000, symbol: "M" },
{ value: 1000, 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();
}
주의사항 및 사용 팁
- Office Script는 셀에서 직접
**=함수()**로 사용할 수 없습니다. - 대신, "자동화 → 코드 편집기"에서 스크립트를 실행하면 지정한 셀 범위에 결과를 자동 입력할 수 있습니다.
- A열에 입력값을 배치하고, B~E열에 결과를 출력하는 구조로 구성하는 것이 일반적입니다.
'Programing' 카테고리의 다른 글
| 개발 중 자주 만나는 CORS 오류와 해결법 정리 (CORS Error in Web Development) (0) | 2025.06.10 |
|---|---|
| 리팩토링의 원칙과 사례 (Refactoring) (0) | 2025.06.02 |
| 게시판 페이징 처리 (PHP예제) (1) | 2025.05.18 |
| 웹 성능 측정 지표 (LCP, FID 등)과 JS 최적화 방법 (0) | 2025.04.29 |
| 브라우저 렌더링 최적화를 위한 비동기 패턴 정리 (1) | 2025.04.29 |
| Form 입력 유효성 검사 및 실시간 피드백 구현 가이드 (0) | 2025.04.29 |
| 퍼센트 계산, 백분율 계산 방식 (0) | 2015.06.11 |
| PHP, MySQL 및 Google 지도를 사용하여 매장 검색기 만들기 (0) | 2012.06.13 |