JView Lab

프로젝트 런치 매뉴얼

클라이언트 사이트 배포 전후 개발자가 처리해야 할 항목 체크리스트입니다. 필수 항목 24개를 모두 완료해야 정식 런치가 가능합니다.

SITE_URL 도메인 업데이트

필수

app/layout.tsx 의 metadataBase, app/sitemap.ts 의 SITE_URL 을 실제 도메인으로 업데이트합니다.

const SITE_URL = "https://실제도메인.co.kr"

카카오 채널 ID 업데이트

필수

클라이언트로부터 카카오 채널 URL(https://pf.kakao.com/_XXXXX)을 받은 후 코드에 반영합니다.

components/floating-buttons.tsx
components/contact-section.tsx
→ kakao: "https://pf.kakao.com/_실제ID"

사업자등록번호 Footer 업데이트

필수

클라이언트로부터 사업자등록번호를 받은 후 components/footer.tsx 에 추가합니다.

<span>사업자등록번호 XXX-XX-XXXXX</span>

OG 이미지 로컬 확인

필수

개발 서버에서 /opengraph-image 경로로 접속하여 1200×630 이미지가 정상 생성되는지 확인합니다.

http://localhost:3000/opengraph-image

sitemap.xml 로컬 확인

필수

개발 서버에서 /sitemap.xml 을 열어 모든 URL이 올바르게 포함되어 있는지 확인합니다.

http://localhost:3000/sitemap.xml

robots.txt 확인

권장

app/robots.ts 에서 disallow 경로(/admin 등)가 올바르게 설정되어 있는지 확인합니다.

Vercel 프로젝트 생성 및 GitHub 연결

필수

vercel.com → New Project → GitHub 저장소 연결. main 브랜치 push 시 자동 배포되도록 설정합니다.

환경변수 등록 (RESEND_API_KEY)

필수

클라이언트로부터 Resend API Key를 받은 후 Vercel → Settings → Environment Variables 에 등록합니다.

RESEND_API_KEY = re_xxxxxxxxxxxx

커스텀 도메인 연결

필수

Vercel → Project → Settings → Domains → 도메인 추가. 도메인 등록 업체(가비아 등) DNS에서 A 레코드 또는 CNAME을 설정합니다.

A 레코드:    76.76.21.21
CNAME:      cname.vercel-dns.com

HTTPS 인증서 자동 발급 확인

필수

도메인 연결 후 Vercel이 자동으로 SSL 인증서를 발급합니다. Domains 탭에서 Valid 상태인지 확인합니다.

전략 C — 정적 자산 캐싱 (전 프로젝트 공통)

필수

/public/images/, /fonts/ 등 변경되지 않는 파일에 적용합니다. 브라우저가 1년간 재요청하지 않아 가장 빠른 로딩을 제공합니다. 파일명 변경 시 캐시가 자동 갱신됩니다.

// next.config.ts → headers()
{
  source: '/images/(.*)',
  headers: [{ key: 'Cache-Control', value: 'public, max-age=31536000, immutable' }],
}

전략 A — 마케팅 페이지 캐싱 (회사 소개·랜딩 사이트)

필수

aci-pureron, ktc-homesys, jyt-ech, jviewlab 등 내용이 가끔 바뀌는 공개 페이지에 적용합니다. CDN이 60초 캐시 후 백그라운드에서 갱신 — 방문자는 항상 즉시 응답을 받습니다. Naver·Google LCP 점수 향상에 직접 기여합니다.

// next.config.ts → headers()
{
  source: '/((?!api|admin).*)',
  headers: [{ key: 'Cache-Control', value: 's-maxage=60, stale-while-revalidate=3600' }],
}

// 또는 페이지 파일 상단:
export const revalidate = 60

전략 B — 동적 데이터 캐싱 최소화 (globit·클리닉 사이트)

필수

globit(논문 상담), 다정외과 등 예약·상담 데이터 정확도가 중요한 사이트에 적용합니다. 동시 접속자가 많아도 DB 요청은 1회만 발생하며, 오래된 데이터가 노출되지 않습니다.

// API·폼 처리 경로
{
  source: '/api/(.*)',
  headers: [{ key: 'Cache-Control', value: 'no-store' }],
}

// 동적 페이지 상단:
export const revalidate = 0

모바일 반응형 확인

필수

Chrome DevTools (Ctrl+Shift+M) 에서 iPhone SE(375px), Galaxy A 계열(360px) 기준으로 전 섹션을 점검합니다.

문의 폼 이메일 발송 테스트

필수

실제 배포 URL에서 문의 폼을 제출하여 클라이언트 수신 이메일로 정상 도착하는지 확인합니다.

외부 링크 및 PDF 전체 확인

필수

제품 사양서 PDF, 카카오맵 링크, 카카오 채널 링크 등 모든 외부 링크가 정상 동작하는지 확인합니다.

홈 화면 아이콘 확인

권장

iOS(Safari → 공유 → 홈 화면에 추가)와 Android(Chrome → 홈 화면에 추가)에서 아이콘이 올바르게 표시되는지 확인합니다.

OG 이미지 소셜 공유 확인

권장

카카오톡 채팅에 URL을 붙여넣어 링크 미리보기 이미지가 정상 표시되는지 확인합니다.

Lighthouse 성능 점수 확인

권장

Chrome DevTools → Lighthouse → 모바일 기준으로 Performance 85+, SEO 95+ 를 목표로 확인합니다.

Google Search Console 속성 추가

필수

search.google.com/search-console → 속성 추가 → URL 접두어 방식 → 실제 도메인 입력. HTML 태그 방식으로 소유권 확인 후 사이트맵 제출.

Naver Search Advisor 사이트 등록

필수

searchadvisor.naver.com → 사이트 추가 → HTML 태그 방식 선택 → 인증 토큰 복사.

Naver 인증 토큰을 코드에 등록 후 재배포

필수

app/layout.tsx 의 other['naver-site-verification'] 값을 발급받은 토큰으로 교체 후 Git push → Vercel 자동 재배포.

other: { "naver-site-verification": "실제토큰값" }

Naver Search Advisor 사이트맵 제출

필수

재배포 완료 후 서치어드바이저 → 요청 → 사이트맵 제출 → https://도메인/sitemap.xml 입력.

Google Search Console 사이트맵 제출

필수

Search Console → Sitemaps → sitemap.xml 입력 후 제출.

Admin 페이지 URL 및 비밀번호 전달

필수

홈페이지 하단 Admin 링크와 비밀번호를 클라이언트에게 전달합니다. 비밀번호는 별도 채널(카카오톡 등)로 안전하게 공유합니다.

Resend 가입 안내 및 API Key 수령

필수

클라이언트에게 resend.com 무료 가입을 안내합니다. API Key 발급 후 전달받아 Vercel 환경변수에 등록합니다.

카카오 채널 URL 수령 및 코드 반영

필수

클라이언트가 카카오 채널 개설 후 URL을 전달받습니다. floating-buttons.tsx 및 contact-section.tsx 업데이트 후 재배포합니다.

사업자등록번호 수령 및 코드 반영

필수

클라이언트로부터 사업자등록번호를 받아 footer.tsx 에 추가 후 재배포합니다.

네이버 스마트플레이스 등록 안내

권장

클라이언트에게 smartplace.naver.com 에서 사업장을 직접 등록하도록 안내합니다.

고객사 사용 사례 콘텐츠 요청

선택

클라이언트에게 고객사 납품 사례(업종, 도입 제품, 배경, 결과)를 정리하여 전달해 달라고 요청합니다. 수령 후 /cases 페이지 제작.