링크 단축 앱을 구글 Gemini로 개선하는 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 대상자: 웹 앱 개발자, AI 통합 개발자
- 난이도: 중급 (Node.js, Express, Puppeteer, Google Gemini SDK 사용 경험 필요)
핵심 요약
- Gemini 모델
gemini-2.5-flash
를 사용해 URL을 단축하는 로직 구현 - Puppeteer를 통해 웹 페이지 제목 추출하여 Gemini에 추가 컨텍스트 제공
- JSON 형식의 구조화된 출력(
responseMimeType: "application/json"
)으로 일관된 결과 생성
섹션별 세부 요약
1. Google Gen AI SDK 설치 및 설정
npm install @google/genai
설치 후 API 키 인증GoogleGenAI
인스턴스 생성 (apiKey: process.env.GEMINI_API_KEY
)gemini-2.5-flash
모델 사용 권장
2. Gemini을 활용한 단축 URL 생성
- 프롬프트 예시:
```txt
"You are a link shortener application. Generate a concise, human-readable short URL."
```
- 반환 형식: 단일 문자열(
response.text
) 또는 JSON 객체(JSON.parse(response.text)
)
3. 구조화된 출력 설정
responseMimeType
과responseSchema
설정을 통해 JSON 형식 강제- 예시:
```json
{ "shortUrl": "google-photos-search" }
```
4. Puppeteer로 페이지 제목 추출
puppeteer.launch()
으로 브라우저 인스턴스 생성page.goto()
로 URL 이동 후document.title
추출- 추출된 제목을 Gemini에 추가 컨텍스트로 전달
5. Express 서버 구축 및 API 엔드포인트
express
서버 생성 후/generateShortUrl
엔드포인트 설정req.query.longUrl
을 받아getMetadata
및generateShortUrl
실행- 결과를 JSON 형식으로 반환
6. Gemini Nano 로컬 실행 (실험 단계)
- Chrome 개발자 프로그램의 Early Preview Program(EPP)을 통해 가능
- 클라우드 기반 솔루션을 병행하여 안정성 확보
결론
- Gemini의
responseSchema
를 통해 일관된 단축 URL 생성 가능 - 추상적인 URL의 경우 Puppeteer로 제목 추출 후 Gemini에 추가 정보 제공
- 로컬에서 Gemini Nano 실행 시 클라우드 기반 솔루션으로 대체할 수 있는 백업 전략 필수