Go에서 URL 단축기 구축: 두 프레임워크 이야기
URL 단축기는 간단한 도구가 얼마나 큰 영향을 미칠 수 있는지 보여주는 전형적인 예입니다. 소셜 미디어에서 링크를 공유하든 텍스트로 보내든 URL이 짧을수록 관리하기 쉽고 깔끔하게 보입니다.
이 블로그 게시물에서는 가볍고 생성 속도가 매우 빠른 두 가지 URL 단축기 프로젝트를 안내하겠습니다. 두 프로젝트 모두 Go가 내장되어 있습니다. 하나는 Gin 프레임워크를 사용하고 다른 하나는 고릴라 먹스를 사용합니다.
각각은 테이블에 고유한 접근 방식을 제공하며 각 기능과 차이점을 강조하겠습니다.
~ 소스코드: 여기
GUI를 갖춘 URL 단축기: 기능이 풍부하고 직관적입니다.
단순한 API를 뛰어넘는 URL 단축기인 첫 번째 프로젝트부터 시작해 보겠습니다. 여기에는 REST API 백엔드와 데스크톱 GUI 애플리케이션이 모두 포함되어 있어 개발자와 기술 지식이 없는 사용자 모두가 액세스할 수 있습니다. 이 프로젝트는 백엔드에 Gin 프레임워크를 사용하고 GUI에 Fyne을 사용합니다.
주요 특징
REST API 백엔드
Gin 프레임워크는 URL 단축 및 리디렉션을 위한 빠르고 안정적인 API를 제공합니다. 가벼우면서도 견고하여 이러한 사용 사례에 적합합니다.데스크톱 GUI
Fyne 프레임워크로 구축된 GUI는 깔끔하고 미니멀하며 사용하기 쉽습니다. 사용자가 단말기를 건드릴 필요 없이 URL을 단축할 수 있습니다.보안 및 무작위 키
짧은 URL은 안전한 임의 값을 사용하여 생성되므로 고유성을 보장하고 충돌 가능성을 줄입니다.이중 접속
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 작업 흐름:
- 긴 URL을 입력하세요.
- 'URL 단축'을 클릭하세요.
- 단축링크를 복사해서 공유해보세요.
GUI가 포함되어 있어 일반적인 백엔드 전용 애플리케이션보다 더 다양한 용도로 사용할 수 있습니다.
URL Shortener V2: 가볍고 간단함
두 번째 프로젝트는 단순성에 관한 것입니다. Gorilla Mux로 구축되어 기본적이면서도 기능적인 URL 단축기를 제공하는 데 중점을 둡니다. 작업을 완료할 수 있는 가벼운 솔루션을 찾고 있다면 바로 이것이다.
주요 특징
- 라우팅용 Gorilla Mux
Gorilla Mux는 Go용 강력한 라우터이며 여기서는 모든 HTTP 엔드포인트를 처리하는 데 사용됩니다.
- MD5 기반 키 생성
단축 URL은 원래 URL의 MD5 해시를 사용하여 생성됩니다. 예, 무작위 생성만큼 안전하지는 않지만 효율적이고 결정적인 결과를 보장한다는 점에 동의합니다.
- 인메모리 스토리지
단축기는 간단한 인메모리 맵을 사용하여 URL을 저장합니다. 이렇게 하면 속도가 빨라지지만 프로덕션 규모의 애플리케이션에는 적합하지 않습니다.
- 최소 종속성
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 만들기:
- url 매개변수를 사용하여 /create에 POST 요청을 보냅니다.
go run gui.go
- 응답:
git clone <repository-url> cd url-shortener go get -u github.com/gorilla/mux </repository-url>
- 이동: 단축 URL에 접속
go run main.go
원래 URL로 리디렉션됩니다.
솔직히 구현이 빠르고 학습 프로젝트나 소규모 사용 사례에 적합합니다. 빠른 미니 프로젝트로 마음에 들었습니다.
두 가지 접근 방식 비교
다음은 차이점을 간략하게 정리한 것입니다.
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 |
내 개인적인 의견으로는 두 가지 접근 방식을 모두 사용하는 것이 간단했으며 둘 다 URL 단축 이외의 다양한 시나리오에서 사용할 수 있으므로 두 가지 접근 방식을 모두 시도해 보시기 바랍니다.
Gin 기반 솔루션은 사용자 인터페이스가 포함된 올인원 도구를 원하는 사용자에게 이상적인 반면, Mux 기반 버전은 경량의 API 전용 사용 사례에 적합합니다.
Go(그리고 더 많은 언어와 도구)를 사용한 미니 프로젝트 모험에 다시 참여해 주셔서 감사합니다. 다음 편에 여러분을 잡아오겠습니다! 건배!! ?
위 내용은 Go의 URL 단축기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

gohandlesinterfacesandtypeassertionsefectively, codeflexibleandrobustness.1) typeSertionsOncaLownallowRuntImeTypeChecking, asseengehapeInterfaceAndCircLetype.2) TypeStwitchEshandleMultipleTypesePesePesePesePesePese -pervariousShapesimplementing Gry

GO 언어 오류 처리는 오류와 오류를 통해 더욱 유연하고 읽을 수 있습니다. 1.Errors.is는 오류가 지정된 오류와 동일한 지 확인하는 데 사용되며 오류 체인의 처리에 적합합니다. 2. 오류. 오류 유형을 확인할 수있을뿐만 아니라 오류를 특정 유형으로 변환 할 수 있으며 오류 정보 추출에 편리합니다. 이러한 기능을 사용하면 오류 처리 로직을 단순화 할 수 있지만 오류 체인의 올바른 전달에주의를 기울이고 코드 복잡성을 방지하기 위해 과도한 의존성을 피하십시오.

TomakeGoApplicationSRUNFASTERONDERFISTING, 사용 프로파일 링 툴, leverageConcurrency, andManageMemoryEffice.1) usepprofforcpuandMemoryProfingToIndifyBottLenecks.2) UtizeGoroutinesandChannelStoparAllelizetAskSandimProvePercormance.3) 3)

GO'SFUTUREISBRIGHTWITHTRENTRENDIMPROVENTTOOLING, 제네릭, 클라우드-나비 탑 션, 퍼포먼스 엔지니즘 및 WebassemBlyIntegration, butchAllEngesIncludEmainingSimplicityAndIndimprovingErrorHandling.

GOROUTINESAREFUCTIONSORMETHODSTRUCHURNINGINGONO, ENABLEGINGEFICENDSTRUCHERTHENCERENCY.1) thearManagedBy 'sruntimeusingmultiplexing, 2) GoroutinesImprovePperformanceSytaskParallelizationAndeff

theinitfunctioningoistoinitializevariable, setupconfigurations, orperformnecessarysetupbeforethemainfunecutes.useinitecutes.useinitby : 1) placingItinyOUrCodetorUnaUtomalityBeforeMain, 2) KAIGITSHORTANDFOCUSEDONSIMPLETASKS, 3)

grointerfacesaremethodsignatures thattypesmustimplement, modularCode를 통해 polymorphism, modularCode.theyareimply에 만족하고, 유용한 ortoflexeApisandDecoupling, butrequeRecarefulusetoavoidRuntimeErrorsAndeAntorsAntafeTeAfer.

PANIC에서 복구로 이동하는 복구 () 함수를 사용하십시오. 구체적인 방법은 다음과 같습니다. 1) reygre ()를 사용하여 프로그램 충돌을 피하기 위해 연기 기능에서 공황을 포착하십시오. 2) 디버깅에 대한 자세한 오류 정보를 기록합니다. 3) 특정 상황에 따라 프로그램 실행을 재개할지 여부를 결정합니다. 4) 성능에 영향을 미치지 않도록주의해서 사용하십시오.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
