๋ธ”๋กœ๊ทธ์— ๋Œ“๊ธ€๊ธฐ๋Šฅ ๋‹ฌ์•„์ฃผ๊ธฐ (ft.Disqus ๋ถ™์ด๊ธฐ)

๊ฐœ์ธ ๋น„(Gatsby) ๋ธ”๋กœ๊ทธ์— ๋Œ“๊ธ€ ๊ธฐ๋Šฅ์„ ๋‹ฌ์•„์ฃผ์ž.

์ง€๊ธˆ๊นŒ์ง€ ๊ฐœ์ธ ๋น„(Gatsby)๋กœ ์ž์‹ ๋งŒ์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ๊ตฌ์ถ•ํ•ด ๋ณด์•˜๋‹ค. Gatsby๋ฅผ ๋‹ค์šด๋ฐ›์•„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜์—ฌ ๋นŒ๋“œ(Build)ํ•˜๊ณ , Github์— ์˜ฌ๋ ค์„œ Git Page๋กœ ์ž์‹ ๋งŒ์˜ ๋ธ”๋กœ๊ทธ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ๋ธ”๋กœ๊ทธ ์•„์ด์ฝ˜๋„ ๋ณ€๊ฒฝ ํ•ด ์ฃผ์—ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ๋‹ค์‹œ ์ƒ๊ฐํ•ด ๋ณด์ž. ๊ฐœ์ธ ๋น„(Gatsby)๋Š” ์ •์  ์›น์‚ฌ์ดํŠธ ์ƒ์„ฑ๊ธฐ(JAM Stack)์ด๋‹ค. ์ด ๋ง์€, ์ •์  HTML๋กœ ๋งŒ๋“ค์–ด์„œ ๋‹จ์ˆœํžˆ ๋„คํŠธ์›Œํฌ ์Šคํ† ๋ฆฌ์ง€์™€ ๊ฐ™์€ ์ €์žฅ์†Œ์—์„œ ๋ถˆ๋Ÿฌ์™€์„œ ์›น๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ๋งŒ ํ•œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์›น์‚ฌ์ดํŠธ์ฒ˜๋Ÿผ ์ •๋ณด๋ฅผ ๋ฐ›์•„์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ดํŠธ(DB)์— ์ €์žฅํ•˜๋Š” ๋“ฑ์˜ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋‹จ์ˆœํ•˜๊ฒŒ๋Š”, ์ด์›ƒ์˜ ๋Œ“๊ธ€, ์ข‹์•„์š” ๋“ฑ์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ตœ๊ทผ ์ •์ • ์‚ฌ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์ด ๋งŽ์•„์ง์— ๋”ฐ๋ผ์„œ, ๋Œ“๊ธ€ ๋“ฑ์˜ ๋ฐฉ๋ฌธ์ž ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๋Š” ๋Œ“๊ธ€ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ๋ณ„๋„์˜ ์„œ๋น„์Šค๋กœ ์šด์˜๋˜๊ณ  ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๋””์Šค์ปค์Šค(Disqus), ๋ผ์ด๋ธŒ๋ฆฌ(livere) ๋“ฑ์ด ์žˆ๋‹ค. ์ตœ๊ทผ์—๋Š” ๋„ค์ด๋ฒ„์—์„œ ์œ ์‚ฌ์„œ๋น„์Šค๋ฅผ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์ œ๊ณต์„ ํ•˜๋Š”๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์œผ๋‚˜, ๋ฒ”์šฉ์„ฑ์ด ๋‚ฎ์•„์„œ ๋Œ€์ƒ์—์„œ ์ œ์™ธํ•œ๋‹ค.

์—ฌํ•˜ํŠผ, Gatsby์—์„œ๋Š” Disqus์— ๋Œ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋ณ„๋„๋กœ ์ œ๊ณต๋˜๊ณ  ์žˆ์œผ๋ฉฐ ์œ ์‚ฌ ์„œ๋น„์Šค์ค‘ ๊ฐ€์žฅ ์ต์ˆ™ํ•˜๋ฏ€๋กœ Disqus๊ฐ€ ๋ฌด๋‚œํ•˜๋‹ค ํ•˜๊ฒ ๋‹ค. ์•„๋ž˜๋Š” ์ด๋ฒˆ ๊ธ€์—์„œ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์ตœ์ข… ์•„์›ƒํ’‹์ด๋‹ค. ์ •์ ์›น์‚ฌ์ดํŠธ ๋ธ”๋กœ๊ทธ์— Disus ๋Œ“๊ธ€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค.

image-20210531170006905


๋””์Šค์ปค์Šค (Disqus) ์„ค์ •ํ•˜๊ธฐ

๋‹ค์Œ์€ Disqus ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€ ์ด๋‹ค. ๊ณต์‹์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ GET STARTED ๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ์‹œ์ž‘ํ•˜์ž.

Disqus ๊ณต์‹ ์›น์‚ฌ์ดํŠธ ์ฒ˜์Œ์—๋Š” ์‚ฌ์ดํŠธ ์ƒ์„ฑ๋ถ€ํ„ฐ ์ง„ํ–‰ํ•œ๋‹ค.
img img

๊ตฌ๊ธ€, FACEBOOK ๋“ฑ ์†Œ์…œ ๋กœ๊ทธ์ธ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ๊ฐ€์ž… ๊ณผ์ •์€ ์ƒ๋žตํ•œ๋‹ค.

GET STARTED ๋ฅผ ๋ˆ„๋ฅด๋ฉด 2๊ฐœ์˜ ๋ฉ”๋‰ด๊ฐ€ ๋‚˜์˜จ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ฒ˜์Œ ์ข€ ๋‹นํ™ฉํ–ˆ์—ˆ๋‹ค. ์ฒซ ๋ฉ”๋‰ด๋Š” ๊ทธ๋Ÿฐ๊ฐ€ ๋ณด๋‹ค ํ–ˆ๋Š”๋ฐ, ๋‘๋ฒˆ์งธ ๋ฉ”๋‰ด์—์„œ ์„ค์น˜๋ฅผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๋ฌด์Šจ ์†Œ๋ฆฌ์ธ๊ฐ€? ์„ค์น˜๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค๊ณ ? ์„ค๋งˆ ๋กœ์ปฌ์ด๋‚˜ ์›น์„œ๋ฒ„์— ๋ญ”๊ฐ€๋ฅผ ์„ค์น˜ํ•ด์•ผํ•˜๋‚˜? ๊ทธ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์ดํ•ดํ•˜์ž๋ฉด Configure์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์„ Install ๋กœ ํ‘œ๊ธฐ๋ฅผ ํ•ด๋†จ๋‹ค. ๋†€๋ผ์ง€ ๋ง์ž.

๋‘๋ฒˆ์งธ ๋ฉ”๋‰ด (install)์„ ์„ ํƒํ•˜๋ฉด, ์›น์‚ฌ์ดํŠธ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ๊ฒƒ์€ Website Name ์ด๋‹ค. ์—ฌ๊ธฐ ํ‘œ๊ธฐํ•˜๋Š” name์ด ์ถ”ํ›„์— Disqus๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” shortname์ด ๋˜๋ฏ€๋กœ ์ด ๊ฐ’์€ ๊ณ ์œ ํ•œ ๊ฐ’์ด์–ด์•ผ ํ•˜๋ฉฐ, ๋‚˜์ค‘์— ์›น์‚ฌ์ดํŠธ์— ์ ์šฉํ•˜๋Š” ์„ค์ •๊ฐ’์—๋„ ์ฐธ์กฐ ๋˜๋Š” ๊ฐ’์ด๋‹ค. ๋‚˜๋จธ์ง€ ์ •๋ณด๋Š” ๋Œ€์ถฉ ๋ณธ์ธ์— ๋งž๊ฒŒ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

์ฐธ๊ณ ๋กœ, ์ฒ˜์Œ ๋ฉ”๋‰ด๋Š” ์ด๋ฏธ ์„ค์ •์ด ๋˜์–ด ์žˆ์„ ๋•Œ (๊ธฐ์กด ์‚ฌ์šฉ์ž)๊ฐ€ ๋Œ“๊ธ€์„ ํ™•์ธํ•˜๊ณ  ๋Œ€์‘ ํ•˜๋Š” ๋ฉ”๋‰ด์ด๋‹ค. ์ฒ˜์Œ ๊ฐ€์ž…/์ ‘์†์ž๋Š” 2๋ฒˆ์งธ ๋ฉ”๋‰ด๋กœ ๋“ค์–ด๊ฐ€์„œ, Disqus๋ฅผ ์„ค์ •๋ถ€ํ„ฐ ํ•ด์•ผ ํ•œ๋‹ค.

Get Started Comment on Sites (์ฒซ๋ฒˆ์งธ ๋ฉ”๋‰ด)
img Disqus ์ฒซ๋ฒˆ์งธ ๋ฉ”๋‰ด

Disqus ์„ค์ • (Install ?)

Disqus ์„ค์ •์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ ˆ์ฐจ๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค. ์–ด๋ ต๊ฒŒ ์„ค๋ช… ๋˜์–ด ์žˆ์ง€๋งŒ ์‚ฌ์‹ค์€ ์š”๊ธˆ์ œ๋ฅผ ์„ค์ •ํ•˜๊ณ  2๋ฒˆ์งธ ๋‹จ๊ณ„๋งŒ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

  • Select Plan
  • Install Disqus
  • Configure Disqus
  • Setup Moderation

1๋‹จ๊ณ„. Select Plan.

์ผ๋‹จ, ๋ฌด๋ฃŒ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๊ฐ€์žฅ ์•„๋ž˜์ชฝ์— ๋ณ„๋กœ๋กœ ๋งˆ๋ จ๋˜์–ด ์žˆ๋‹ค. ์ข€ ๋” ๊ณ ๊ธ‰์‚ฌ์šฉ์ž๋Š” ๊ฐ€๊ฒฉ ์ •์ฑ…์— ๋งž๊ฒŒ ์‚ฌ์šฉ์„ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค.

img

2๋‹จ๊ณ„. Install Disqus

2๋‹จ๊ณ„๋Š” ๋‹ค์‹œ 2๊ฐœ์˜ ์ ˆ์ฐจ๋กœ ๋‚˜๋‰œ๋‹ค. 1) ํ”Œ๋žซํผ ์„ ํƒ, 2) ์‹ค์ œ์ ์ธ ์›น์‚ฌ์ดํŠธ ์„ค์ •.

์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ง€์›ํ•˜๋Š” ํ”Œ๋žซํผ์ด ๋‚˜์˜ค๋Š”๋ฐ, ์‚ฌ์‹ค ์ด ํ”Œ๋žซํผ์— ๋งž๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ์€ ๋ณ„๋กœ ์—†๋‹ค. ํ”Œ๋žซํผ์— ๋”ฐ๋ผ์„œ Disqus๋ฅผ ์‚ฌ์šฉ/์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅธ๋ฐ, ๊ทธ ๊ฐ€์ด๋“œ๊ฐ€ ๋‹ค๋ฅผ ๋ฟ์ด๋‹ค. ์‚ฌ์‹ค, ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ธ”๋กœ๊ทธ๋‚˜ CMS๋ฅผ ์ž˜ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด, ์ด๋ฏธ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•Œ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์•„๋ฌดํŠผ, ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ Gatsby๋กœ ๋ธ”๋กœ๊ทธ๋ฅผ ๊ตฌ์„ฑํ•˜์˜€์œผ๋‚˜, Gatsby๋ฅผ ์„ ํƒํ•ด ์ฃผ๋„๋ก ํ•˜์ž.

img

Gatsby๋ฅผ ์„ ํƒํ•ด ์ฃผ๋ฉด, ์ด์ œ Gatsby์— Disqus๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ์ถœ๋ ฅ ๋œ๋‹ค. Gatsby๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์น˜๋ฅผ ์ง„ํ–‰ ํ•œ๋‹ค.

  1. Gatsby-plugin-disqus ์„ค์น˜
npm install --save gatsby-plugin-disqus
  1. Gatsby-config.js์— plugin์„ ์„ค์ •ํ•œ๋‹ค. (Gatsby์—์„œ ๋‹ค๋ฅธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค. ) ์—ฌ๊ธฐ์— ์ดˆ๊ธฐ ์›น์‚ฌ์ดํŠธ ๋“ฑ๋ก ๊ณผ์ •์—์„œ ์ž…๋ ฅํ•œ short name ์„ ์ž…๋ ฅํ•˜์—ฌ ์ค€๋‹ค. ์ด ๊ณผ์ •์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ณผ์ •์ค‘ ํ•˜๋‚˜ ์ด๋‹ค.
// gatsby-config.js
module.exports = {
    plugins: [
        {
            resolve: `gatsby-plugin-disqus`,
            options: {
                shortname: `your short name`
            }
        },
    ]
}
  1. ์‹ค์ œ ์›นํŽ˜์ด์ง€ ์ ์šฉํ•˜๊ธฐ

์‹ค์ œ ์›นํŽ˜์ด์ง€์— ์ ์šฉํ•œ๋‹ค. Gatsby๋Š” ReactJS๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Disqus React Componet๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์•„๋ž˜ ๊ณต์‹ ๊ฐ€์ด๋“œ์—๋Š” Template ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋˜์–ด ์žˆ์ง€๋งŒ, ๊ธฐ์กด Template์— <Disqus/> ์ปดํฌ๋„ŒํŠธ๋งŒ ์ถ”๊ฐ€/์‚ฝ์ž… ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” identifier ์ด๋‹ค.

import { Disqus } from 'gatsby-plugin-disqus';

const Template = () => (
    /* Page contents */

    <Disqus
        config={
            /* Replace PAGE_URL with your post's canonical URL variable */
            url: 'PAGE_URL',
            /* Replace PAGE_IDENTIFIER with your page's unique identifier variable */
            identifier: 'PAGE_IDENTIFIER',
            /* Replace PAGE_TITLE with the title of the page */
            title: 'PAGE_TITLE',
        }
    />
);

ํ•„์ž์˜ ๊ฒฝ์šฐ, identifier์— slug ๊ฐ’์„ ๋„ฃ์–ด ์ฃผ์—ˆ๋‹ค. ์–ด์ฐจํ”ผ slug ๋Š” ๊ณ ์œ ๊ฐ’์ด ์•„๋‹ˆ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋˜ํ•œ ํŒŒ์ผ ์ƒ์„ฑ๋‹จ์œ„๋„ slug ์ด๋ฏ€๋กœ Gatsby๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด slug ๊ฐ’์„ id๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋˜๊ฒ ๋‹ค.

์ตœ๊ทผ ๋งŽ์€ Theme์—์„œ Disqus๋ฅผ ๊ธฐ๋ณธ ํƒ‘์žฌ ํ•˜๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ผ๋ถ€ Theme๋Š” config.js ๋“ฑ์˜ ํŒŒ์ผ์— Disqus shortname์„ ํ‘œ๊ธฐํ•˜๋ฉด Disqus๊ฐ€ ์ž๋™์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

ยฉ 2021 S.J.Lee, Built with Gatsby