URL 단축기 만드는 방법
URL 단축기는 긴 웹 주소를 짧은 코드에 연결해 저장하고, 짧은 링크를 방문하는 모든 사람을 원래 주소로 리디렉션합니다. 핵심은 아주 작습니다. 테이블 하나와 리디렉션 경로 하나면 충분해서 좋은 첫 프로젝트로 자주 쓰입니다. 실제로 쓸 만한 단축기를 만드는 것은 그 나머지입니다. 짧은 도메인, 사용자 지정 슬러그, 클릭 수, 링크 대상 수정, 그리고 스팸 발송자가 내 도메인으로 피싱 링크를 숨기지 못하게 하는 것입니다. 처음에 나만 또는 팀만 쓰는지, 공개로 열 것인지 정하세요. 공개 단축기는 악용을 빠르게 끌어들입니다.
URL 단축기에 필요한 것
데이터
| 테이블 | 필드 |
|---|---|
| 링크 | 짧은 코드, 대상 URL, 소유자, 제목, 생성일, 활성 여부, 선택적 만료일 |
| 클릭 | 링크, 시각, 유입 경로(referrer), 국가, 기기 유형 |
| 도메인(선택) | 사용자 지정 짧은 도메인과 소유자 |
짧은 코드에는 고유 인덱스를 거세요. 같은 코드가 두 개의 링크에 붙는 것은 절대 있어서는 안 되는 유일한 버그입니다.
페이지와 경로
- 리디렉션 경로 —
/{code}가 코드를 찾아 리디렉션합니다. 대부분의 방문자가 접하는 유일한 경로이므로 빨라야 하고, 앱 화면을 절대 보여 주면 안 됩니다. - 링크 생성 — URL을 붙여 넣고, 선택적으로 사용자 지정 슬러그를 고르고, 복사 버튼이 있는 짧은 링크를 받습니다.
- 링크 목록 — 클릭 수, 검색, 켜기/끄기 스위치가 있는 내 링크들.
- 링크 상세 — 시간에 따른 클릭, 상위 유입 경로, 국가, 기기. 대상 수정 가능.
- 찾을 수 없음 페이지 — 알 수 없거나 비활성화된 코드용.
- 링크별 QR 코드 — 추가 비용이 적고 자주 요청되는 기능입니다.
결정과 절충
리디렉션 유형. 301(영구) 리디렉션은 브라우저가 캐시할 수 있어서, 재방문자가 서버를 건너뜁니다. 그러면 클릭을 잃고 그 사람들에게는 대상을 바꿀 수 없습니다. 클릭을 추적하거나 수정을 허용한다면 302나 307을 쓰세요. 대부분의 추적형 단축기가 그렇게 합니다.
짧은 코드. 문자와 숫자로 된 6~7자리 무작위 코드는 추측하기 어렵고 공간도 넉넉합니다. 사람이 직접 링크를 입력한다면 헷갈리는 문자(0과 O, 1과 l)는 피하세요. 순차 코드는 링크가 몇 개인지 알려 주고, 누구나 훑어볼 수 있게 합니다.
사용자 지정 슬러그. /launch가 /x7Kp2q보다 낫습니다. 앱이 쓰는 단어(login, api, admin)는 예약해 두고, 공개 도구라면 부적절한 슬러그를 막으세요. 대소문자를 구분할지도 정하세요. 대소문자를 구분하지 않는 쪽이 친절합니다.
속도. 단축기는 방문마다 한 번의 홉을 더합니다. 리디렉션 경로는 인덱스된 단일 조회로 유지하고, 클릭 기록은 리디렉션을 보낸 후에 하거나 백그라운드에서 처리해서 추적이 방문자를 느리게 만들지 않도록 하세요. 유휴 시 잠드는 호스팅에서는 조용한 기간 뒤 첫 방문이 조금 느릴 수 있습니다. 개인이나 팀용 도구라면 보통 괜찮습니다.
클릭 분석과 개인정보. 클릭, 유입 경로, 대략적인 국가를 세는 것은 일반적입니다. 전체 IP 주소를 저장하고 개인의 프로필을 만드는 것은 개인정보 법이 적용되기 시작하는 지점입니다. 실제로 볼 데이터만 저장하고, 가능하면 집계하세요. 앱에 분석 추가하는 방법을 참고하세요.
도메인. 링크는 도메인만큼만 짧습니다. 짧은 도메인을 사서 앱에 연결하세요. 사용자 지정 도메인 연결 방법을 참고하세요. 많은 호스트는 루트 도메인보다 서브도메인(go.yourbrand.com)을 연결하기 더 단순하다고 여깁니다.
악용. 누구나 링크를 만들 수 있다면 스팸 발송자가 내 도메인으로 피싱과 악성코드를 숨기고, 내 도메인이 차단 목록에 오를 수 있습니다. 공개 단축기라면 계정을 요구하고, 생성 횟수를 제한하고, Google 안전 브라우징 같은 악성 URL 목록으로 대상을 확인하고, 자기 단축기로 가는 링크를 막고(리디렉션 루프 방지), 어떤 링크든 즉시 끌 수 있는 관리자 스위치를 만드세요. 팀 전용 단축기라면 대부분의 문제를 피할 수 있습니다.
잘 작동하는 첫 프롬프트
우리 팀용 URL 단축기 웹 앱을 만들어 줘. 로그인한 사용자가 대상 URL을 붙여 넣으면, 무작위 7자리 코드(0, O, 1, l 제외)로 된 짧은 링크를 받거나 사용자 지정 슬러그를 고를 수 있어야 해. 슬러그는 고유하고 대소문자를 구분하지 않으며, login, api, admin, app, settings는 예약해 줘. 공개 경로 /{code}는 단일 인덱스 쿼리로 코드를 찾아 302 리디렉션을 반환해야 해. 클릭(시각, 유입 경로, 국가, 기기 유형, 전체 IP 주소는 제외)은 리디렉션을 지연시키지 않으면서 기록해 줘. 알 수 없거나 비활성화된 코드는 간단한 찾을 수 없음 페이지를 보여 줘. 사용자는 클릭 수가 있는 링크 목록을 보고, 대상을 수정하고, 링크를 끄고, QR 코드를 내려받고, 일별 클릭, 상위 유입 경로, 국가를 보여 주는 상세 페이지를 열 수 있어야 해. 대상은 http 또는 https URL이어야 하며 이 단축기로 가는 링크는 허용하지 않도록 검증해 줘. 모든 데이터는 데이터베이스에 저장해 줘.
빌드 단계
- 만들기와 리디렉션. 링크를 만들고 비공개 창에서 열어 보세요. 응답이 302인지, 아니면 JavaScript로 다시 리디렉션하는 페이지인지 확인하세요.
- 코드와 슬러그. 중복 슬러그, 예약어, 대소문자가 섞인 슬러그, 아주 긴 URL을 시험해 보세요.
- 클릭 추적. 여러 기기에서 클릭하고 횟수와 유입 경로를 확인하세요.
- 수정과 비활성화. 대상을 바꾸고, 예전 짧은 링크가 새 위치로 가는지 확인하세요. 하나를 끄고 멈추는지 확인하세요.
- 검증.
javascript:링크, 단축기 자신을 가리키는 링크, 잘못된 URL을 시도하세요. 모두 서버에서 거부되어야 합니다. - 도메인. 짧은 도메인을 연결하고 그 도메인의 링크를 테스트하세요.
- 악용 방지(도구를 공개할 경우): 호출 제한, 대상 확인, 최근 링크를 보는 관리자 화면.
흔한 실수
- 클릭 추적과 함께 301 리디렉션 쓰기. 브라우저가 캐시해서 수치가 어긋납니다.
- 페이지 안에서 리디렉션하기. 앱을 불러온 뒤 JavaScript로 리디렉션하면 클릭마다 느리게 느껴집니다. 서버에서 리디렉션하세요.
- 코드에 고유 제약 없음. 충돌은 언젠가 반드시 일어납니다.
- 통제 없는 공개 단축기. 악용될 것이고, 도메인의 평판도 함께 떨어집니다.
- 모든 URL 스킴 허용. http와 https 대상만 허용하세요.
- 도메인을 옮길 때 링크 잃기. 짧은 도메인을 직접 소유해서 호스팅을 바꿔도 링크가 살아남게 하세요.
완성된 제품이 더 나은 경우
검증된 링크 관리 서비스는 브랜드 도메인, 자세한 분석, 팀 기능, QR 코드, 연동, 악용 처리를 기본으로 제공합니다. 링크가 마케팅의 중심이고 유지 관리를 전혀 하고 싶지 않다면 돈을 내고 쓰세요.
직접 만드는 것은 사용자당 요금 없이 내 도메인에서 쓸 간단한 팀 단축기가 필요할 때, 내 제품에 링크를 엮어 넣을 때(공유 링크, 추천 링크, 이메일의 추적 링크), 또는 클릭 데이터를 완전히 통제하고 싶을 때 맞습니다. 좋은 첫 백엔드 프로젝트이기도 합니다. 링크 인 바이오 페이지 만드는 방법과 함께 쓰고, 누구에게든 열기 전에 AI로 만든 앱의 보안 체크리스트를 거치세요.
Mythex로 만들기
Mythex에서는 채팅으로 단축기를 설명하고 라이브 미리보기에서 리디렉션을 테스트합니다. 링크와 클릭이 필요하면 Mythex가 전용 데이터베이스를 추가합니다. 게시된 앱과 데이터베이스는 유휴 시 잠들었다가 다음 방문에 깨어나므로, 조용한 단축기도 운영 비용이 적게 듭니다. mythex.ai 링크로 게시하고, Pro에서는 자체 짧은 도메인을 연결하거나 Mythex 안에서 구입할 수 있습니다(커스텀 도메인 참고). URL 단축기 템플릿에는 사용자 지정 슬러그와 클릭 분석이 담긴 완성된 첫 프롬프트가 있습니다.
자주 묻는 질문
URL 단축기는 301 리디렉션과 302 리디렉션 중 무엇을 써야 하나요?
301은 이동이 영구적이라고 브라우저에 알려서, 브라우저가 이를 캐시하고 다음부터 서버를 건너뛸 수 있습니다. 그러면 클릭을 놓치고 링크 대상을 바꿀 수 없게 됩니다. 클릭을 추적하거나 수정을 허용하는 단축기는 대부분 302나 307 같은 임시 리디렉션을 씁니다.
짧은 코드는 어떻게 만드나요?
문자와 숫자로 이루어진 무작위 문자열을 만들고 기존 코드와 대조하거나, 데이터베이스 ID를 62진수로 인코딩하는 방식이 있습니다. 무작위 코드는 추측하기 어렵고, 순차 코드는 링크가 몇 개인지 드러나고 누구나 순서대로 훑을 수 있습니다. 무작위 6~7자리면 수십억 가지 조합이 나옵니다.
짧은 도메인이 꼭 필요한가요?
동작에는 필요하지 않습니다. 하지만 단축기의 목적은 짧고 신뢰할 수 있는 링크입니다. 직접 소유한 짧은 사용자 지정 도메인이 있으면, 호스팅을 옮겨도 링크가 계속 작동합니다.
공개 URL 단축기가 악용되는 것을 어떻게 막나요?
링크를 만들 때 로그인을 요구하고, 링크 생성 횟수를 제한하고, 대상을 Google 안전 브라우징 같은 악성 URL 목록과 대조하고, 자기 도메인을 대상으로 하는 링크를 막고, 링크를 즉시 끌 수 있는 빠른 수단을 가지세요.