> 백엔드 개발 > Golang > Go의 URL 단축기

Go의 URL 단축기

Mary-Kate Olsen
풀어 주다: 2024-11-30 08:51:10
원래의
467명이 탐색했습니다.

Go에서 URL 단축기 구축: 두 프레임워크 이야기

URL 단축기는 간단한 도구가 얼마나 큰 영향을 미칠 수 있는지 보여주는 전형적인 예입니다. 소셜 미디어에서 링크를 공유하든 텍스트로 보내든 URL이 짧을수록 관리하기 쉽고 깔끔하게 보입니다.

이 블로그 게시물에서는 가볍고 생성 속도가 매우 빠른 두 가지 URL 단축기 프로젝트를 안내하겠습니다. 두 프로젝트 모두 Go가 내장되어 있습니다. 하나는 Gin 프레임워크를 사용하고 다른 하나는 고릴라 먹스를 사용합니다.

각각은 테이블에 고유한 접근 방식을 제공하며 각 기능과 차이점을 강조하겠습니다.

~ 소스코드: 여기


GUI를 갖춘 URL 단축기: 기능이 풍부하고 직관적입니다.

단순한 API를 뛰어넘는 URL 단축기인 첫 번째 프로젝트부터 시작해 보겠습니다. 여기에는 REST API 백엔드데스크톱 GUI 애플리케이션이 모두 포함되어 있어 개발자와 기술 지식이 없는 사용자 모두가 액세스할 수 있습니다. 이 프로젝트는 백엔드에 Gin 프레임워크를 사용하고 GUI에 Fyne을 사용합니다.

주요 특징

  1. REST API 백엔드

    Gin 프레임워크는 URL 단축 및 리디렉션을 위한 빠르고 안정적인 API를 제공합니다. 가벼우면서도 견고하여 이러한 사용 사례에 적합합니다.

  2. 데스크톱 GUI

    Fyne 프레임워크로 구축된 GUI는 깔끔하고 미니멀하며 사용하기 쉽습니다. 사용자가 단말기를 건드릴 필요 없이 URL을 단축할 수 있습니다.

  3. 보안 및 무작위 키

    짧은 URL은 안전한 임의 값을 사용하여 생성되므로 고유성을 보장하고 충돌 가능성을 줄입니다.

  4. 이중 접속

    REST API에 익숙하든, GUI를 선호하든 이 프로젝트가 모든 것을 다룹니다.

시작하기

시작하려면 저장소를 복제하고 필요한 외부 Go 패키지를 설치하세요.

git clone https://github.com/SirTingling/cloudprojects.git
cd url-shortener
go get -u github.com/gin-gonic/gin
go get -u fyne.io/fyne/v2
로그인 후 복사
로그인 후 복사

앱 실행

  • 백엔드 서버

다음을 사용하여 백엔드 서버를 실행합니다.

go run server.go
로그인 후 복사
로그인 후 복사

서버는 http://localhost:8080에서 시작됩니다.

  • 데스크톱 GUI

다음을 사용하여 GUI 애플리케이션을 실행하세요.

go run gui.go
로그인 후 복사
로그인 후 복사

긴 URL을 입력하고 그에 대한 단축 링크를 받을 수 있는 간단한 창이 열립니다.

어떻게 작동하나요?

  • API 엔드포인트:

POST /shorten: 긴 URL을 허용하고 짧은 URL을 반환합니다.
GET /:short: 단축 URL을 원래 URL로 리디렉션합니다.

  • GUI 작업 흐름:
  1. 긴 URL을 입력하세요.
  2. 'URL 단축'을 클릭하세요.
  3. 단축링크를 복사해서 공유해보세요.

GUI가 포함되어 있어 일반적인 백엔드 전용 애플리케이션보다 더 다양한 용도로 사용할 수 있습니다.


URL Shortener V2: 가볍고 간단함

두 번째 프로젝트는 단순성에 관한 것입니다. Gorilla Mux로 구축되어 기본적이면서도 기능적인 URL 단축기를 제공하는 데 중점을 둡니다. 작업을 완료할 수 있는 가벼운 솔루션을 찾고 있다면 바로 이것이다.

주요 특징

  1. 라우팅용 Gorilla Mux

Gorilla Mux는 Go용 강력한 라우터이며 여기서는 모든 HTTP 엔드포인트를 처리하는 데 사용됩니다.

  1. MD5 기반 키 생성

단축 URL은 원래 URL의 MD5 해시를 사용하여 생성됩니다. 예, 무작위 생성만큼 안전하지는 않지만 효율적이고 결정적인 결과를 보장한다는 점에 동의합니다.

  1. 인메모리 스토리지

단축기는 간단한 인메모리 맵을 사용하여 URL을 저장합니다. 이렇게 하면 속도가 빨라지지만 프로덕션 규모의 애플리케이션에는 적합하지 않습니다.

  1. 최소 종속성

Gorilla Mux만 외부 종속성으로 사용하면 이 프로젝트를 쉽게 설정하고 배포할 수 있습니다.

갑시다!

git clone https://github.com/SirTingling/cloudprojects.git
cd url-shortener
go get -u github.com/gin-gonic/gin
go get -u fyne.io/fyne/v2
로그인 후 복사
로그인 후 복사

앱 실행

  • 다음을 사용하여 서버를 시작하세요.
go run server.go
로그인 후 복사
로그인 후 복사

서버는 http://localhost:8080에서 실행됩니다.

작동 방식

  • 단축 URL 만들기:
  1. url 매개변수를 사용하여 /create에 POST 요청을 보냅니다.
go run gui.go
로그인 후 복사
로그인 후 복사
  1. 응답:
git clone <repository-url>
cd url-shortener
go get -u github.com/gorilla/mux
로그인 후 복사
  1. 이동: 단축 URL에 접속
go run main.go
로그인 후 복사

원래 URL로 리디렉션됩니다.

솔직히 구현이 빠르고 학습 프로젝트나 소규모 사용 사례에 적합합니다. 빠른 미니 프로젝트로 마음에 들었습니다.


두 가지 접근 방식 비교

다음은 차이점을 간략하게 정리한 것입니다.

기능 GUI를 사용한 URL 단축기(Gin) URL 단축기 V2(Mux)
Feature URL Shortener with GUI (Gin) URL Shortener V2 (Mux)
Framework Gin Gorilla Mux
Frontend Desktop GUI (Fyne) None
URL Key Generation Secure Random Values MD5 Hash
Storage Not Specified In-Memory
Complexity Moderate Simple
프레임워크 진 고릴라 먹스 프런트엔드 데스크탑 GUI(Fyne) 없음 URL 키 생성 안전한 무작위 값 MD5 해시 저장 지정되지 않음 메모리 내 복잡성 보통 간단

내 개인적인 의견으로는 두 가지 접근 방식을 모두 사용하는 것이 간단했으며 둘 다 URL 단축 이외의 다양한 시나리오에서 사용할 수 있으므로 두 가지 접근 방식을 모두 시도해 보시기 바랍니다.

Gin 기반 솔루션은 사용자 인터페이스가 포함된 올인원 도구를 원하는 사용자에게 이상적인 반면, Mux 기반 버전은 경량의 API 전용 사용 사례에 적합합니다.


Go(그리고 더 많은 언어와 도구)를 사용한 미니 프로젝트 모험에 다시 참여해 주셔서 감사합니다. 다음 편에 여러분을 잡아오겠습니다! 건배!! ?

URL Shortener in Go

위 내용은 Go의 URL 단축기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿