목록 보기
Serverless Postgres Neon으로 Next.js 환경에서 Short-URL 구현하기
프론트엔드

Serverless Postgres Neon으로 Next.js 환경에서 Short-URL 구현하기

스푼랩스
스푼랩스
2025년 3월 14일

두줄요약

Next.js와 Prisma, Neon으로 원본 URL을 숨기는 커스텀 Short-URL 생성·조회 흐름을 구현했습니다. 가벼운 기능 검증에 적합한 Neon의 선택 근거와 운영상 제약도 함께 정리했습니다.

문제 상황

  • 콘텐츠 식별자와 쿼리 파라미터가 외부에 노출되는 길고 가독성 낮은 기존 URL 구조
  • 원본 URL과 외부 노출용 URL 분리를 위한 커스텀 Short-URL 필요

선택 이유

  • Vercel 배포 환경과 네이티브 연동되는 PostgreSQL 기반 서버리스 DB Neon 선택
  • 영구 저장 요구와 구현 범위를 고려해 Upstash와 Supabase 대신 Neon 채택
  • 타입 안정성 및 마이그레이션 지원을 위한 Prisma ORM 적용

구조와 흐름

  • shortId, originalUrl, 생성 시각을 저장하는 Prisma ShortUrl 모델 구성
  • API Route에서 원본 URL의 기존 단축키 조회 후 재사용하거나 nanoid·customId로 생성
  • 동적 라우트 slug가 8자리 숫자가 아닐 때 Neon에서 원본 URL을 조회해 콘텐츠 데이터 요청

성능/운영 포인트

  • Neon의 자동 Sleep에 따른 비용 절감과 활성화 시 콜드 스타트 지연 가능성
  • 자동 확장, DB 브랜칭, 시점 복구, 읽기 전용 복제본 지원
  • 불규칙한 트래픽에서의 응답 속도 저하 및 일부 PostgreSQL 확장 미지원 가능성

다음 읽기

#PostgreSQL 주제를 다룬 다른 회사 글

Sentry를 바로 도입하지 않고 200줄 에러 트래커를 만든 이유

Sentry 대신 필요한 기능만 남긴 작은 에러 트래커를 직접 만들어 운영한 사례를 정리했습니다.재배포 없이 기준을 조정하고 반복 에러만 선별하는 방식의 장단점을 공유했습니다.

여기어때
여기어때
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...