4 min read

Vercel๋กœ ๋‚˜๋งŒ์˜ ๋ธ”๋กœ๊ทธ ๋š๋”ฑ ๋งŒ๋“ค๊ธฐ

'๋”ธ๊น' ๋ธ”๋กœ๊ทธ 5๋ถ„ ์™„์„ฑ

Table of Contents

5๋ถ„ ์™„์„ฑ ์‹œ์ผœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


๋‚˜๋งŒ์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค! ๊ทผ๋ฐ ํ”ํ•œ๊ฑด ์‹ซ์–ด..

์‰ฌ์šด๊ฑฐ ์ข‹์•„ํ•˜๊ณ  ๊ท€์ฐฎ์€๊ฑฐ ์‹ซ์–ดํ•˜๋Š”๋ฐ ์žˆ์–ด๋ณด์ด๋Š”๊ฑด ์ข‹์•„ํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์—ฌ๋Ÿฌ๋ถ„, ๋ฒ„์…€ ์ข‹์•„ํ•˜์‹œ์ฃ ? ์ €๋„ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.
์ง€๊ธˆ ๋ณด๊ณ  ๊ณ„์‹œ๋Š” ๋ธ”๋กœ๊ทธ๋„ ๋ฒจ๋กœ๊ทธ ๊ฐ€์ž…ํ•˜๋Š” ์†๋„๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(์‚ฌ์‹ค์ƒ) ๋…ธ์ฝ”๋“œ๋กœ ๋ธ”๋กœ๊ทธ ์ œ์ž‘ - ๋ฐฐํฌ - DNS ์—ฐ๊ฒฐ - ์• ๋„๋ฆฌํ‹ฑ์Šค - SEO ์„ค์ •๊นŒ์ง€ ํ•œํ์—
๋ ˆ์ธ ๊ณ .


์‡ผํ•‘ ํ•ฉ์‹œ๋‹ค

์—ฌ๊ธฐ ๋ฒ„์…€ ์›น์‚ฌ์ดํŠธ์— ๋ธ”๋กœ๊ทธ ๊ฐ€ํŒ๋Œ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋…ธ์ฝ”๋“œ ๋ฐ์ด๋‹ˆ๊นŒ ์‡ผํ•‘ํ•˜๋“ฏ ํ•˜๋‚˜ ๊ณจ๋ผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๋”ธ๊น

๊ณจ๋ž๋‚˜์š”? ์ „ ๊ณจ๋ž์Šต๋‹ˆ๋‹ค. Deploy ๋ˆ„๋ฅด๋ฉด ๋ฐฐํฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์ง„์งœ ๋ฉ๋‹ˆ๋‹ค. ๊นƒํ—ˆ๋ธŒ ๊ณ„์ • ์—ฐ๊ฒฐ ํ›„ ๋ ˆํฌ๋„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

์ง„์งœ ๋‹ค ๋์Œโ€ฆ โ€˜๋‚˜๋„ ๊ฐœ๋ฐœ์ž์š”โ€™ ํฌ์—ด ๋Š๋‚„ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.


๋‚ด ๋„๋ฉ”์ธ์ด ์žˆ์œผ๋ฉด .. ์ข‹๊ฒ ๋„ค

๋ธ”๋กœ๊ทธ๋Š” ๋‚ด๊ป€๋ฐ ์ฃผ์†Œ๋Š” vercel.app ์“ฐ๊ณ  ์žˆ์œผ๋ฉด ์กฐ๊ธˆ.. ๋ญ”๊ฐ€.. ๋ญ”๊ฐ€์ž„
์ธํ„ฐ๋„ท ์ฃผ์†Œ ํŒŒ๋Š”๊ณณ ์•„๋ฌด๋ฐ๋‚˜ ๊ฐ€์„œ ๋„๋ฉ”์ธ ํ•˜๋‚˜ ์‚ฌ์˜ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋Œ€์ถฉ ์•„๋ฌด๋ฐ์„œ๋‚˜ ์‚ฌ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ณ ๋Œ€๋”” โ€˜๋‹ค์ด๋‚˜๋ฏน ํ”„๋ผ์ด์‹ฑโ€™ ํ•˜๋Š”๊ฑฐ ์งœ์ฆ๋‚˜์„œ ๊ฐ€๋น„์•„์—์„œ ์ƒ€์Šต๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ๋ถ„์€ ์•„๋ฌด๋ฐ์„œ๋‚˜ ์‚ฌ์„ธ์š” ๋‚ด๋ˆ๋‚ด์‚ฐ์ž„

๋ฒ„์…€์˜ ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€ - Settings - Domains ๋“ค์–ด๊ฐ€์„œ ๋ฐฉ๊ธˆ ์‚ฐ ๋‚ด ๋„๋ฉ”์ธ์„ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค.
์ €๋Š” ๋„๋ฉ”์ธ ๋ฃจํŠธ๋Š” ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์“ธ๊ฑฐ๋ผ ์„œ๋ธŒ๋„๋ฉ”์ธ์— ๋ธ”๋กœ๊ทธ๋ฅผ ๋จน์˜€์Šต๋‹ˆ๋‹ค.
์—๋Ÿฌ๊ฐ€ ๋œฐํ…๋ฐ .. ์ •์ƒ์ž…๋‹ˆ๋‹ค. ๊ฑฑ์ •ใ„ดใ„ด

์œ„์—์„œ ์‹œํ‚ค๋Š” ๋Œ€๋กœ ๋ ˆ์ฝ”๋“œ ํƒ€์ž…์— cname, ํ˜ธ์ŠคํŠธ์— ์„œ๋ธŒ๋„๋ฉ”์ธ ์ด๋ฆ„ (๊ทธ๋ƒฅ ๋„๋ฉ”์ธ ์“ธ๊ฑฐ๋ฉด @), ๊ฐ’์— cname.vercel-dns.com. ๋„ฃ์–ด์ฃผ์„ธ์š”. ๋’ค์— ์  ์žŠ์ง€ ๋ง๊ธฐ
๊ทธ๋Ÿฌ๊ณ  ๋“ฑ๋กํ•˜๋ฉด .. ๋ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด ๋„๋ฉ”์ธ์œผ๋กœ ๋ธ”๋กœ๊ทธ ๋“ค์–ด๊ฐ€์„œ โ€˜๋‚˜๋„ ๊ฐœ๋ฐœ์ž์š” 2โ€™ ์‹œ๊ฐ„ ์ฆ๊ธฐ์‹ญ์‡ผ


๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ๋ญ˜ ์“ฐ๋ฉด ๋ˆ„๊ฐ€ ๋ด?

์ œ ๋ธ”๋กœ๊ทธ๋Š” ์•„์ง ์•„๋ฌด๋„ ์•ˆ๋ณด๋Š”๋ฐ์š”,
๋ฒ„์…€์—์„œ๋Š” ์• ๋„๋ฆฌํ‹ฑ์Šค๋„ ๊ณต์งœ๋กœ ์ค๋‹ˆ๋‹ค โ€ฆ ๋ˆ ๋‚ด๊ณ  ์“ฐ๊ธฐ ์ „๊นŒ์ง€๋Š” ์ฐธ ์ฐฉํ•œ ๋ฒ„์…€

ํ‚ต๋‹ˆ๋‹ค. ํ•œ ๋‹ฌ์— 2500 ์ด๋ฒคํŠธ๊นŒ์ง€ ๋ฌด๋ฃŒ์ธ๋ฐ ์ œ ๋ธ”๋กœ๊ทธ๊ฐ€ 2500 ์ด๋ฒคํŠธ ์ด์ƒ ์ผ์–ด๋‚ ๋ฆฌ ๋งŒ๋ฌดํ•˜๋‹ˆ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
๋งŒ์— ํ•˜๋‚˜ ๋„˜์–ด๋„ ์ถ”๊ฐ€ ๊ณผ๊ธˆ์€ ์—†์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ ์“ฐ๊ณ ์žˆ๋Š” Astro ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ SSG ๋ชจ๋“œ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. SSR ๋ชจ๋“œ๋กœ ์‚ฌ์šฉํ•ด๋„ .. ๋ญ .. ์•„๋งˆ .. ๋ ๊ฑฐ์ž„

npm install @vercel/analytics

๊น”์•„์ค๋‹ˆ๋‹ค.

Layout.astro ํŒŒ์ผ์„ ์ฐพ์•„์„œ ๋ฒ„์…€ ์• ๋„๋ฆฌํ‹ฑ์Šค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹ฌ์–ด์ค๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ .. ๋ฅผ ์‹ฌ๋Š”๊ฒŒ ๋ฌด๊ฒ์ง€ ์•Š๋ƒ? 1.1kB ์ •๋„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ•œ๋ฏผ๊ตญ ํ‘œ์ค€ ํ†ต์‹ ์š”๊ธˆ์ œ๋กœ ๋”ฐ์ง€๋ฉด 0.31์› ์ •๋„ ๋ฉ๋‹ˆ๋‹ค.

<!doctype html>
<html lang="en">
<script>
	import { inject } from "@vercel/analytics";
	inject();
</script>
<Head title={`${title} | ${SITE.TITLE}`} description={description} />
<body>
	<Header />
	... ์ฝ”๋“œ๋“ค ...

๋Œ€์ถฉ ์œ„์— ์‹ฌ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ•˜๊ณ  ๋ฐฐํฌํ•˜๋ฉด ์งœ์ž” ~ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.


๋‚ด๊บผ ๋งŒ๋“ค๊ธฐ

๋ฒ„์…€์—์„œ ๋ฐฐํฌ๋ฅผ ๋ฒ„ํŠผ ํ•˜๋‚˜๋งŒ ๋ˆŒ๋Ÿฌ์„œ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ง€๊ธˆ ์‚ฌ์ดํŠธ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ํด๋ก ํ•ด์˜จ ํ…œํ”Œ๋ฆฟ ๋ฐ”ํƒ•์œผ๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด ๋ธ”๋กœ๊ทธ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์‹ญ์‡ผ

์ง€๊ธˆ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” Astro Micro ํ…œํ”Œ๋ฆฟ์€ giscus ๋Œ“๊ธ€ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ณธ์œผ๋กœ ํƒ‘์žฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ์ƒํŒ ๋ชจ๋ฅด๋Š” ์™ธ๊ตญ์ธํ•œํ…Œ ๋Œ“๊ธ€ ๋‹ฌ๋ฆฌ์ง€ ์•Š๋„๋ก giscus์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐ›์•„์˜ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

giscus <- ์—ฌ๊ธฐ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ public์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  (๋ฒ„์…€์—์„œ ํด๋ก ํ•˜๋ฉด ๊ธฐ๋ณธ์ด private)
  2. ์—ฌ๊ธฐ ์ ‘์†ํ•ด์„œ ๋‚ด ๊นƒ ๋ ˆํฌ์— giscus๋ฅผ ์„ค์น˜ํ•˜๊ณ 
  3. ๋ ˆํฌ - settings - ๊ธฐ๋Šฅ - ํ† ๋ก ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด

ํŽ˜์ด์ง€ ์—ฐ๊ฒฐ์€ ์‚ฌ์ง„์— ๋‚˜์™€์žˆ๋Š” ์ฒซ๋ฒˆ์งธ ์˜ต์…˜์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์–ด์ฐจํ”ผ ํ‰์†Œ์— discussions ์•ˆ ๋งŒ๋“œ๋Š” ๋ ˆํฌ๋ฉด ์ €๋ ‡๊ฒŒ ๋‘์‹ญ์‡ผ โ€ฆ ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์— ๋งž๊ฒŒ ์ž๋™์ƒ์„ฑ ๋ฉ๋‹ˆ๋‹ค.

Giscus.astro ํŒŒ์ผ์„ ์ฐพ์•„์„œ ๋‚ด ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ฐ”๊ฟ”์น˜๊ธฐ ํ•ด์ค๋‹ˆ๋‹ค.

<div class="giscus"></div>
<script
	src="https://giscus.app/client.js"
	data-repo="๋Œ€์ถฉ"
	data-repo-id="๋‚ด ๋ ˆํฌ"
	data-category="Announcements"
	data-category-id="์ž…๋‹ˆ๋‹ค"
	data-mapping="pathname"
	data-strict="0"
	data-reactions-enabled="1"
	data-emit-metadata="0"
	data-input-position="bottom"
	data-theme="preferred_color_scheme"
	data-lang="ko"
	crossorigin="anonymous"
	async></script>

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ”๊พธ๊ธฐ

src/consts.ts ํŒŒ์ผ์„ ์ฐพ์•„์„œ ๋‚ด ๋ธ”๋กœ๊ทธ ์ด๋ฆ„์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•ด์ค๋‹ˆ๋‹ค.
์ด ํ…œํ”Œ๋ฆฟ์—์„œ๋Š” ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ๋„ ์—ฌ๊ธฐ ์ƒ์ˆ˜๋ฅผ ์ฐธ๊ณ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ ํ•˜๋‚˜๋งŒ ๋ฐ”๊พธ๋ฉด ๋ฉ๋‹ˆ๋”.

export const SITE: Site = {
  NAME: "๋ธ”๋กœ๊ทธ ์ด๋ฆ„",
  DESCRIPTION: "๋ธ”๋กœ๊ทธ ์„ค๋ช…",
  EMAIL: "์ด๋ฉ”์ผ",
  NUM_POSTS_ON_HOMEPAGE: ๋ฉ”์ธํŽ˜์ด์ง€์— ๋ธ”๋กœ๊ทธ ๊ธ€ ๋ช‡๊ฐœ ๋ณด์—ฌ์ค„๊ฑด์ง€,
  NUM_PROJECTS_ON_HOMEPAGE: ๋ฉ”์ธํŽ˜์ด์ง€์— ํ”„๋กœ์ ํŠธ ๊ธ€ ๋ช‡๊ฐœ ๋ณด์—ฌ์ค„๊ฑด์ง€,
};

๊ตฌ๊ธ€์•„ ์ด ๊ธ€์„ โ€ฆ ์ฐพ์•„์ค˜

seo ์ข‹์•„ํ•˜์‹œ์ฃ ? ์ €๋„ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

robots.txt ์ถ”๊ฐ€ํ•˜๊ธฐ

astro ์—์„œ ์ •์  ํŒŒ์ผ ๋ฐฐํฌํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. robots.txt๋Š” ๋ฃจํŠธ ๋ฐ”๋กœ ๋ฐ‘์— ๋‘๊ธฐ๋กœ ์•ฝ์†ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—
src/pages/robots.txt.js ํŒŒ์ผ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.

export async function GET({ params, request }) {
  return new Response(
    `User-agent: *
Disallow:
Sitemap: https://blog.luciancah.com/sitemap-index.xml`,
    {
      headers: {
        "content-type": "text/plain",
      },
    },
  );
}

์‚ฌ์ดํŠธ๋งต ์ž๋™์ƒ์„ฑ ์ตœ๊ณ 

astro ์ž์ฒด๊ฐ€ ์ •์  ํŽ˜์ด์ง€ ์ตœ๊ณ ๋ฅผ ํ‘œ๋ฐฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— (์‹ค์ œ๋กœ ํ•œ ๋ง), sitemap ๋„ ์ž์ฒด ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค.
/astro.config.mjs ์ฐพ์•„์„œ ๋‚ด ํŽ˜์ด์ง€ ์ฃผ์†Œ๋งŒ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค.

export default defineConfig({
  site: "https://blog.luciancah.com",
  integrations: [tailwind(), sitemap(), mdx(), pagefind()],
  markdown: {
    shikiConfig: {
      theme: "css-variables",
    },
  },
});

๊ตฌ๊ธ€์•„ ์ง„์งœ ์ฐพ์•„์ค˜โ€ฆ

์ด์ œ ๊ตฌ๊ธ€ํ•œํ…Œ ๋– ๋จน์—ฌ์ค„ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ๊ตฌ๊ธ€ ์›น๋งˆ์Šคํ„ฐ ๋„๊ตฌ <- ๋ ˆ์ธ ๊ณ 

๋„๋ฉ”์ธ์„ ์ƒ€์œผ๋‹ˆ๊นŒ ์™ผ์ชฝ ๋„๋ฉ”์ธ์— ๋ธ”๋กœ๊ทธ ๋งํฌ ์ž…๋ ฅํ•ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ด ๋„๋ฉ”์ธ์˜ ์‹ค ์†Œ์œ ์ฃผ์ธ์ง€ ํ™•์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. TXT ๋ ˆ์ฝ”๋“œ์— ๊ตฌ๊ธ€์—์„œ ์ฃผ๋Š” ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋“ฑ๋ก ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต ๊ตฌ๊ธ€์ด ์ƒ‰์ธ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์ดํ‹€ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.


์ง„์งœ ๋

์ด ๊ณผ์ •์„ ํ†ตํ•ด์„œ ์ฝ”๋“œ ํ•œ์ค„ ์•ˆ์งœ๊ณ  CI/CD, DNS, ์• ๋„๋ฆฌํ‹ฑ์Šค, SEO, ์ •์  ํŽ˜์ด์ง€ ๋ฐฐํฌ ๋ญ ์ข‹์•„ ๋ณด์ด๋Š”๊ฑด ๋‹ค ํ–ˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ๋ถ„๋„ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  ๋Œ“๊ธ€ ํ•œ๋ฒˆ ์จ๋ด์ฃผ์„ธ์š” ใ…ˆใ…‚ ์ €๋„ ์•„์ง ๋˜๋Š”์ง€ ๋ชจ๋ฆ„โ€ฆ