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 페이지 제작.