์ฟ ํก ํํธ๋์ค ๋งํฌ ์ ํ์ง ๋ฐฉ์ง ๋ฐ ์์ ํ ๋จ์ถ์ฝ๋ ์ ์ฉ ๋ฐฉ๋ฒ
๋ธ๋ก๊ทธ ์ฟ ํก ํํธ๋์ค ๋งํฌ ์ ํ์ง ๋ฐฉ์ง์ SEO ์ต์ ํ ๋ฐฉ๋ฒ. ๋จ์ถ์ฝ๋ ํ์ฉ์ผ๋ก ๊ฒ์์์ง์๋ ๋ฌด์๋ฏธ ์ฝ๋๋ง ์ธ์, ๋ฐฉ๋ฌธ์๋ ์์ ํ๊ฒ ์ํ ํ์ด์ง ์ด๋ํ๋ ๋ฐฉ๋ฒ
์ฟ ํก ํํธ๋์ค ๋งํฌ๋ฅผ ๊ทธ๋๋ก ๋ธ๋ก๊ทธ์ ๋ฃ์ผ๋ฉด ๊ฒ์์์ง์ด ์์ ์ ๋งํฌ๋ก ํ๋จํด ๋ธ๋ก๊ทธ ์ ์ฒด ํ์ง์ ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ ๋จ์ถ์ฝ๋ ๋ฐฉ์์ ํ์ฉํด ์ ํ์ง ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ณ , ๋ฐฉ๋ฌธ์๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์ํ ํ์ด์ง๋ก ์ด๋ํ๋๋ก ํ๋ ์์ ํ ๋ธ๋ก๊ทธ ์ ์ฉ ๋ฐฉ๋ฒ์ ์์ธํ ์๊ฐํฉ๋๋ค.
์ฟ ํก ํํธ๋์ค ๋งํฌ ์ ์ฉ ์ ๋ฌธ์ ์
์ฟ ํก ํํธ๋์ค ๋งํฌ๋ฅผ ๋ธ๋ก๊ทธ์ ์ ์ฉํ ๋ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ค ํ๋๋ ์ ํด ์ํ ๋งํฌ๊ฐ ๊ทธ๋๋ก ๋ ธ์ถ๋๋ฉด์ ๋ฐ์ํ๋ ์ ํ์ง ๋ธ๋ก๊ทธ ๋ฌธ์ ์ ๋๋ค. ๋จ์ํ ์ฟ ํก ๋งํฌ๋ฅผ ๋ณธ๋ฌธ์ ๋ฃ๋ ๋ฐฉ์์ ๊ฒ์์์ง์ด ์ด๋ฅผ ์์ ์ ๋งํฌ๋ก ํ๋จํ ์ ์์ด ๋ธ๋ก๊ทธ ํ์ง ํ๊ฐ์ ๋ถ์ ์ ์ธ ์ํฅ์ ์ค๋๋ค.
์ด์ ๊ธ์์๋ ์ฟ ํก ์ ํด ๋งํฌ๊ฐ ์ ํ์ง์ ์์ธ์ด ๋๋ ์ด์ ๋ฅผ ๋ถ์ํ๊ณ , ์์ ์ ๋งํฌ๋ฅผ ๋ธ๋ก๊ทธ ๋ณธ๋ฌธ์ ์ง์ ์ฝ์ ํ์ง ์๋ ์ ๋ต์ ์๊ฐํ์ต๋๋ค.
์ฒซ ๋จ๊ณ์์๋ ์ํ ๋งํฌ๋ฅผ ABC001๊ณผ ๊ฐ์ ์๋ฏธ ์๋ ๋จ์ถ ์ฝ๋๋ก ๋ณํํ๊ณ , ์ด๋ฅผ Google Sheet์ Google Apps Script๋ก ์์ ํ๊ฒ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ค์ต๋๋ค.
์ด๋ฒ ๊ธ์ ๋ชฉํ
์ด๋ฒ ๊ธ์ ์ฟ ํก ํํธ๋์ค ๋งํฌ ์ต์ ํ ์๋ฆฌ์ฆ์ ๋ง์ง๋ง ํธ์ผ๋ก, ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ ๋ธ๋ก๊ทธ์ ์ ์ฉํด ๊ฒ์์์ง ํฌ๋กค๋ฌ๋ ๋จ์ถ ์ฝ๋๋ง ์ธ์ํ๊ณ , ๋ฐฉ๋ฌธ์๋ ์์ฐ์ค๋ฝ๊ฒ ์ํ ํ์ด์ง๋ก ์ด๋ํ ์ ์๋๋ก ๊ตฌํํ๋ ์ต์ข ๋ฐฉ๋ฒ์ ์์ธํ ์ค๋ช ํฉ๋๋ค.
๊ฒ์์์ง์ ๋จ์ถ ์ฝ๋๋ง ์ธ์ํ๊ณ , ๋ฐฉ๋ฌธ์๋ ํด๋ฆญ ์ ์ฟ ํก ์ํ ํ์ด์ง๋ก ์ด๋ํ๋ ๋ฐฉ์์ผ๋ก, ๊ฒ์์์ง ์ต์ ํ(SEO), ๋ธ๋ก๊ทธ ์ ํ์ง ๋ฐฉ์ง, ์์ตํ๋ฅผ ํ ๋ฒ์ ์คํํ ์ ์์ต๋๋ค.
์ฟ ํก ํํธ๋์ค ๋งํฌ๋ฅผ ๋จ์ถ ์ฝ๋๋ก ์ ์ฉํ๋ ๋ฐฉ๋ฒ
์ด๋ฒ ๋ฐฉ๋ฒ์ Google Sheet + Google Apps Script๋ฅผ ํ์ฉํ์ฌ ๊ฐ๋จํ URL ๋จ์ถ ์๋ฒ์ฒ๋ผ ๊ตฌ์ฑํ๊ณ , ๋ธ๋ก๊ทธ์ ์ฟ ํก ์ ํด ๋งํฌ๋ฅผ ์๋ฒฝํ๊ฒ ๋ถ๋ฆฌํ๋ ๋ฐฉ์์ ๋๋ค.
๊ตฌ์ฑ ํ๋ฆ

๋ฐฉ๋ฌธ์ ๋ธ๋ก๊ทธ (๋จ์ถ์ฝ๋ ๋ฒํผ ํด๋ฆญ) Google Apps Script
Google Sheet (์๋ณธ URL ์กฐํ) ์๋ณธ ์ฟ ํก ๋งํฌ ๋ฐํ
๋ฐฉ๋ฌธ์ ์ ์ฐฝ์์ ์ฟ ํก ์ํ ํ์ด์ง ์ด๊ธฐ
ํต์ฌ ํฌ์ธํธ
- ๋ธ๋ก๊ทธ ๋ณธ๋ฌธ์๋ ๋จ์ถ ์ฝ๋(Abc011, dL83tV ๋ฑ)๋ง ๋ ธ์ถ
- Google Sheet์์๋ง ์ฟ ํก ์๋ณธ ๋งํฌ ๊ด๋ฆฌ
- ๊ฒ์์์ง์ ๋จ์ถ ์ฝ๋๋ฅผ ์๋ฏธ ์๋ ๋ฌธ์์ด๋ก ์ธ์ ์ ํ์ง ๋ฌธ์ ํด๊ฒฐ
- ์ํ ๋งํฌ ๋ณ๊ฒฝ ์ ๋ณธ๋ฌธ ์์ ์์ด Google Sheet์์๋ง ๊ด๋ฆฌ ๊ฐ๋ฅ
1. ์ฟ ํก ์ํ ๋จ์ถ ์ฝ๋์ ์ด๋ฒคํธ ์ ์ฉ
์ฌ์ฉ์๊ฐ ํด๋ฆญํ๋ฉด ํด๋น ์ฝ๋๊ฐ ์ธ์๋์ด ์ฟ ํก ์ํ ํ์ด์ง๋ก ์ด๋ํ๋๋ก ๋จ์ถ ์ฝ๋ ๋ฒํผ ์ด๋ฒคํธ ์ฐ๊ฒฐ์ด ํ์ํฉ๋๋ค.
์ฆ, Abc001 ๊ฐ์ ๋ฌด์๋ฏธ ์ฝ๋๊ฐ ์ค์ ๋งํฌ ์ญํ ์ ์ํํ๋๋ก ๋ฒํผ ํํ HTML ํ๊ทธ๋ฅผ ์ ์ฉํฉ๋๋ค.
๋ฒํผ ์์
button class="short-link" data-code="5qU0k5"์ํ ๋ณด๊ธฐ/button
์: ์ฟ ํก ๋งํฌ https://link.coupang.com/a/abc123 ๋จ์ถ ์ฝ๋ Abc001 ๋งค์นญ. ๋ธ๋ก๊ทธ์๋ ๋จ์ถ์ฝ๋ ๋ฒํผ๋ง ํ์๋ฉ๋๋ค.
2. Google Apps Script ์ฝ๋ ์ ์ฉ
์๋ ์ฝ๋๋ฅผ Google Apps Script์ ์ ์ฉํฉ๋๋ค.
const SPREADSHEET_URL = "๊ตฌ๊ธ ์ํธ ์ฃผ์";
const SHEET_NAME = "Data";
function doGet(e) {
const ss = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
const sheet = ss.getSheetByName(SHEET_NAME);
const shortCode = e.parameter.u;
if (!shortCode) {
return ContentService.createTextOutput("Missing short code")
.setMimeType(ContentService.MimeType.TEXT);
}
const data = sheet.getDataRange().getValues();
for (let i = 1; i data.length; i++) {
if (data[i][0] === shortCode) {
return ContentService.createTextOutput(
JSON.stringify({
status: "success",
originalUrl: data[i][1]
})
).setMimeType(ContentService.MimeType.JSON);
}
}
return ContentService.createTextOutput(
JSON.stringify({
status: "error",
message: "Not Found"
})
).setMimeType(ContentService.MimeType.JSON);
}
Google Sheet ์์
| A์ด (๋จ์ถ์ฝ๋) | B์ด (์๋ณธ ์ฟ ํก URL) |
|---|---|
| Abc011 | https://link.coupang.com/a/abc123 |
| dL83tV | https://link.coupang.com/a/xyz789 |
Tip: A์ด์ ์๋ฏธ ์๋ ์ฝ๋, B์ด์ ์ค์ ์ฟ ํก ๋งํฌ. ์ํธ ์ด๋ฆ์ Data๋ก ํต์ผ.
3. ์ฟ ํก ๋จ์ถ ์ฝ๋ ๋ธ๋ก๊ทธ ์ ์ฉ ๋ฐฉ๋ฒ
๋ธ๋ก๊ทธ์์ ๋จ์ถ์ฝ๋๋ฅผ ์ ์ฉํ๋ ค๋ฉด, ์ํ ๋งํฌ๋ฅผ ๋ ธ์ถํ๊ณ ์ถ์ ์์น์ ๋ฒํผ ํํ ์ฝ๋๋ฅผ ์ฝ์ ํฉ๋๋ค. ํด๋ฆญ ์ ๋จ์ถ์ฝ๋์ ์ฐ๊ฒฐ๋ ์ฟ ํก ์ํ ํ์ด์ง๊ฐ ์ด๋ฆฌ๋ฉฐ, ๊ฒ์์์ง์๋ ์ฝ๋๋ง ์ธ์๋์ด ์ ํ์ง ๋ฌธ์ ๋ฐฉ์ง๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์ ์ฉ ํ
- ๋ฒํผ์
data-code๊ฐ์ Google Sheet ๋จ์ถ์ฝ๋์ ์ ํํ ์ผ์นํด์ผ ํฉ๋๋ค. - ์ฌ๋ฌ ์์น์ ๋ฒํผ ์ฝ์ ๊ฐ๋ฅ, ์ฌ๋ฌ ๊ฐ๋ ๋์ผ ๋ฐฉ์ ์ ์ฉ.
- ๋ธ๋ก๊ทธ ๋ณธ๋ฌธ์๋ ๋จ์ถ์ฝ๋ ๋ฒํผ๋ง ํ์๋๊ณ , ๋ฐฉ๋ฌธ์๋ ์์ ํ๊ฒ ์ฟ ํก ์ํ ํ์ด์ง๋ก ์ด๋.
button class="short-link" data-code="dL83tV"์ํ ๋ณด๊ธฐ/button
๋์ ๋ฐฉ์
- ์ฌ์ฉ์๊ฐ ์ํ ๋ณด๊ธฐ ๋ฒํผ ํด๋ฆญ
- ๋ฒํผ์
data-code๊ฐ์ Google Script๋ก ์ ์ก - Google Script๊ฐ Google Sheet์์ ์ฝ๋ ๊ฒ์
- ์ฐ๊ฒฐ๋ ์ฟ ํก ๋งํฌ ๋ฐํ
- ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ฐฝ์์ ์ฟ ํก ์ํ ํ์ด์ง ์คํ
4. ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ์ฝ๋ ์ ์ฉ ๋ฐฉ๋ฒ
๋ธ๋ก๊ทธ HTML ํธ์ง๊ธฐ์์ ๋งจ ํ๋จ /body ํ๊ทธ ๋ฐ๋ก ์์ ์๋ ์ฝ๋๋ฅผ ์ฝ์ ํฉ๋๋ค. ํด๋ฆญ ์ ๋จ์ถ์ฝ๋์ ์ฐ๊ฒฐ๋ ์ฟ ํก ์ํ ํ์ด์ง๋ก ์์ ํ๊ฒ ์ด๋ํฉ๋๋ค.
1) ์คํฌ๋ฆฝํธ ์ฝ๋ ์์น
- ๋ธ๋ก๊ทธ ํธ์ง๊ธฐ์์ HTML ๋ชจ๋๋ก ์ ํ
- ํ์ด์ง ๋งจ ์๋, /body ํ๊ทธ ๋ฐ๋ก ์์ ์ฝ๋ ์ฝ์
Tip: Google Apps Script ๋ฐฐํฌ ํ ์์ฑ๋๋ ์น ์ฑ URL์ API_URL์ ์ ํํ ์
๋ ฅํฉ๋๋ค.
document.addEventListener('DOMContentLoaded', function () {
const API_URL = "https://script.google.com/macros/s/์คํฌ๋ฆฝํธID/exec";
document.body.addEventListener('click', async function (e) {
const btn = e.target.closest('button.short-link');
if (!btn) return;
const shortCode = btn.dataset.code;
if (!shortCode) {
alert("๋จ์ถ ์ฝ๋๊ฐ ์์ต๋๋ค.");
return;
}
try {
const response = await fetch(`${API_URL}?u=${encodeURIComponent(shortCode)}`);
const data = await response.json();
if (data.status === "success") {
window.open(data.originalUrl, '_blank');
} else {
alert("์๋ณธ URL์ ์ฐพ์ ์ ์์ต๋๋ค.");
}
} catch (error) {
console.error("์กฐํ ์ค ์ค๋ฅ ๋ฐ์:", error);
alert("๋คํธ์ํฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.");
}
});
});
API_URL ์ค๋ช
- API_URL์ Google Apps Script ์คํ URL
- ๋ธ๋ก๊ทธ์์ ๋จ์ถ์ฝ๋ ์ ์ก Google Sheet์์ ์ฟ ํก ๋งํฌ ์กฐํ
- ์ ์ ์กฐํ ์ ์ ์ฐฝ์์ ์ฟ ํก ์ํ ํ์ด์ง ์ด๋ฆผ, ๊ฒ์์์ง์ ๋จ์ถ์ฝ๋๋ง ์ธ์ ์ ํ์ง ๋ฌธ์ ๋ฐฉ์ง
์ฟ ํก ์ํ ๋ ธ์ถ: ๊ฐ์ ๋ฐฉ์
| ๊ตฌ๋ถ | ๊ธฐ์กด ๋ฐฉ์ | ๊ฐ์ ๋ ๋ฐฉ์ |
|---|---|---|
| ๋ธ๋ก๊ทธ ๋ณธ๋ฌธ | https://link.coupang.com/a/abc123 | Abc011 (๋จ์ถ ์ฝ๋๋ง ๋ ธ์ถ) |
| ๊ฒ์์์ง ์ธ์ | ์์ ์ ์ ํด ๋งํฌ๋ก ๋ฐ๋ก ํ๋จ | ์๋ฏธ ์๋ ์ฝ๋๋ก ์ฒ๋ฆฌ, ์ ๋ณด์ฑ ์ฝํ ์ธ ์ ์ง |
| ๋ธ๋ก๊ทธ ํ๊ฐ | ์ ํ์ง ์ํ ๋์ | ์ ํ์ง ์ํ ๊ฐ์, SEO ์ ์ ์ ์ง |
| ๊ด๋ฆฌ ํธ์์ฑ | ๋ณธ๋ฌธ ์ง์ ์์ ํ์ | Google Sheet์์๋ง ๊ด๋ฆฌ ๊ฐ๋ฅ |
๊ฒฐ๋ก ๋ฐ ์ด์ ํ
์ฟ ํก ํํธ๋์ค ๋งํฌ๋ฅผ ๊ทธ๋๋ก ๋ ธ์ถํ๋ฉด ๋ธ๋ก๊ทธ ์ ํ์ง๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๋จ์ถ์ฝ๋ ๊ธฐ๋ฐ ๋งํฌ ๊ด๋ฆฌ ๋ฐฉ์์ ํ์ฉํ๋ฉด:
- ๊ฒ์์์ง์๋ ์ํ ๋งํฌ๊ฐ ๋ ธ์ถ๋์ง ์์ ์ ํ์ง ๋ฐฉ์ง
- ๋ฐฉ๋ฌธ์๋ ์์ฐ์ค๋ฝ๊ฒ ์ฟ ํก ํ์ด์ง๋ก ์ด๋
- ์ด์์๋ Google Sheet์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅ
๊ฒฐ๋ก : ๋ธ๋ก๊ทธ์ ์์ ์ ๋งํฌ๋ ๋ฐ๋์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ๋ฆฌํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ธ๋ก๊ทธ ๊ฒ์ ๊ฐ์น๋ฅผ ์งํค๊ณ ์ฅ๊ธฐ์ ์ธ ์์ตํ ์ ๋ต์ ์คํํ ์ ์์ต๋๋ค.
์ฟ ํก ํํธ๋์ค ๋งํฌ๋ฅผ ๋ธ๋ก๊ทธ์ ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์?
๊ฒ์์์ง์ด ์์ ์ ๋งํฌ๋ก ํ๋จํด ๋ธ๋ก๊ทธ ์ ์ฒด ํ์ง ํ๊ฐ์ ๋ถ์ ์ ์ธ ์ํฅ์ ์ฃผ๋ฉฐ, ์ ํ์ง ๋ธ๋ก๊ทธ๋ก ๋ถ๋ฅ๋ ์ํ์ด ์์ต๋๋ค.
์ฟ ํก ๋งํฌ๋ฅผ ์ ํ์ง ๋ฌธ์ ์์ด ๋ธ๋ก๊ทธ์ ์ ์ฉํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
์ฟ ํก ์ํ ๋งํฌ๋ฅผ ์ด๋ป๊ฒ ์จ๊ธฐ๋์?
์ฟ ํก ์ํ ๋งํฌ๋ฅผ ์๋ฏธ ์๋ ๋จ์ถ์ฝ๋(์: Abc011)๋ก ๋ณํํ๊ณ , Google Sheet์ Google Apps Script๋ฅผ ํตํด ๊ด๋ฆฌํ์ฌ ๋ธ๋ก๊ทธ์๋ ๋จ์ถ์ฝ๋๋ง ๋ ธ์ถํ๋ฉด ๋ฉ๋๋ค.
๋จ์ถ์ฝ๋ ๋ฒํผ์ ๋ธ๋ก๊ทธ์ ์ ์ฉํ๋ฉด ์ด๋ป๊ฒ ๋์ํ๋์?
์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋จ์ถ์ฝ๋๊ฐ Google Apps Script๋ก ์ ์ก๋๊ณ , Script๊ฐ Google Sheet์์ ์ค์ ์ฟ ํก ๋งํฌ๋ฅผ ์กฐํํ์ฌ ์ ์ฐฝ์์ ์ํ ํ์ด์ง๊ฐ ์ด๋ฆฝ๋๋ค.
๊ธฐ์กด ๋ฐฉ์๊ณผ ๊ฐ์ ๋ ๋ฐฉ์์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
๊ธฐ์กด ๋ฐฉ์์ ๋ธ๋ก๊ทธ ๋ณธ๋ฌธ์ ์ฟ ํก ๋งํฌ๋ฅผ ๊ทธ๋๋ก ์ฝ์ ํ์ฌ ๊ฒ์์์ง์ด ์์ ์ ๋งํฌ๋ก ํ๋จํ๊ณ ๋ธ๋ก๊ทธ ํ์ง ํ๊ฐ์ ๋ถ์ ์ ์ธ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๊ฐ์ ๋ ๋ฐฉ์์ ๋ธ๋ก๊ทธ ๋ณธ๋ฌธ์๋ ๋จ์ถ์ฝ๋๋ง ํ์ํ๊ณ , ์ค์ ์ฟ ํก ๋งํฌ๋ Google Sheet์ Script๋ก ๊ด๋ฆฌํ์ฌ ๊ฒ์์์ง์ด ์ ๋ณด์ฑ ์ฝํ ์ธ ๋ก ์ธ์ํ๊ฒ ๋๊ณ , ์ ํ์ง ์ํ ๊ฐ์์ ๊ด๋ฆฌ ํธ์์ฑ์ด ํจ๊ป ํฅ์๋ฉ๋๋ค.
๋ชจ๋ํฐ