Discord.js๋ก Bot๐พ ๋ง๋ค๊ธฐ
์๋ก
discord.js
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค๊ฒ ์๊ฐํ ๊ณ๊ธฐ๋ ์น๊ตฌ์ ๊ฒ์ ์ด์ผ๊ธฐ๋ฅผ ํ๋ค๊ฐ ์ด๋ฐ ๋ด์ด ์์์ผ๋ฉด ์ข๊ฒ ๋ค๊ณ ์น๊ตฌ๊ฐ ์ธ๊ธ์ ํ์๋ค. (๊ทธ ๋น์ ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ๊ณ ์ ์๊ฐํ๋ ๋ด์ด ์คํ๋ ๊ฒ์ ์์๋ค.) ๊ทธ๋์ ํ ๋ฒ ํด๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ ํ๊ณ , ํ ๋ฌ ์ ๋ ๋ฆ์ฅ์ ๋ถ๋ฆฌ๋ค๊ฐ ์์์ ํ๊ฒ ๋์๋ค.
๊ทธ๋ฐ๋ฐ ๋ง์ ํ๊ณ ๋ณด๋ discord.js
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ํธํ๊ฒ ๋์ด์์ด์ ์์ฝ๊ฒ ํ๋กํ ํ์
์ ๋ง๋ค ์ ์์๊ณ , ์ค์ ๊ฒ์ ๊ธธ๋ ๋์ค์ฝ๋์ ์ ์ฉํด์ ์ฌ์ฉํ๊ณ ์๋ ์ค์ด๋ค. ์ฒ์์๋ ๊ฐ๋จํ๊ฒ ์ฐ์ต์ฉ์ผ๋ก ๋ง๋ ๋ด์ด๋ผ ๊ตฌ์กฐ์ ๋ง์ ์ ๊ฒฝ์ ์ฐ์ง ์์๋ค. ํ์ง๋ง ๋ง๋ค๊ณ ๋ณด๋ ์์ฌํ ์๊ฒจ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ๊ฐ์ ํ๊ณ ์๋๋ฐ ๊ตฌ์กฐ๋ ์กฐ๊ธ์ฉ ๋ค๋ฌ์ผ๋ฉด ์ข์ ๋ด์ด ๋์ง ์์๊น ์๊ฐํ๋ค.
discord.js
๊ฐ๋ฐ์ ์ฐธ๊ณ ํ ๋ฌธ์๋ ๋จ์ฐ์ฝ discord.js ๊ฐ๋ฐ์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์๋ค.
๋ณธ๋ก
๐ด discord.js ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ
์ฌ์ ์ค๋น
์ฐ์ ๋ด๊ฐ ๊ฐ๋ฐ์ ์ฌ์ฉํ ์คํ์ ๋ค์๊ณผ ๊ฐ๋ค.
IDE
: Visual Studio Code
Libaraies
: discord.js, axios, cheerio, nodemon
- Javascript๋ ES5 ๋ฌธ๋ฒ์ผ๋ก ์ฌ์ฉํ์ต๋๋ค.
๋จผ์ ๋์ค์ฝ๋ ๋ด์ ๋ง๋ค๊ณ ํ ์คํธ ํ๊ธฐ ์ํด์๋ ๋์ค์ฝ๋ ํ์๊ฐ์ ์ ์งํํด์ผํ๋ค.
๋์ค์ฝ๋ ๊ณต์ ํํ์ด์ง์ ์ ์ํด์ ์ฑ์ ๋ค์ด๋ก๋ ํ๊ณ ๋น ๋ฅด๊ฒ ํ์๊ฐ์ ์ ์งํํ๊ณ ์จ๋ค.
๊ฐ๋ฐ์ฉ ๋ด ์์ฑํ๊ธฐ
์ฐ์ ๋์ค์ฝ๋ ํ์๊ฐ์ ๋ ํ๊ณ ์ฑ๋ ๋ค์ด๋ก๋๋ฅผ ํ๋ค๋ฉด ์ค์ ๋ก ํ ์คํธํ ๋ด์ ์์ฑํด์ผ ํ๋ค.
๋ด ์์ฑ ํํ์ด์ง๋ ๋์ค์ฝ๋ ๊ฐ๋ฐ์ ํฌํธ์์ ์งํํ๋๋ก ํ๋ค. ํํ์ด์ง์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ ๋ง์ดํ ์ ์๋ค.
๋๋ ์ง๊ธ 2๊ฐ์ง์ ๋ด์ ๋ง๋ค์ด์ ์ฌ์ฉ์ค์ธ๋ฐ ๊น๊ฟ์ ์ค์ ๋ก ๊ธธ๋ ๋์ฝ ์๋ฒ์์ ์ฌ์ฉ์ค์ธ ๋ด์ด๊ณ ๊น๊ฟ ์๋ค์ ๊ฐ๋ฐํ ๋ ๋ฏธ๋ฆฌ ํ
์คํธํ๋ ๋ด์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ์ด ๋ด์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. New Application ํด๋ฆญ ํ ์ฑ ์์ฑ
์์ ์ฌ์ง์ฒ๋ผ New Application
์ ํด๋ฆญํ๋ค. ๊ทธ๋ฌ๋ฉด ๋ค์ด์ผ๋ก๊ทธ ์ฐฝ์ด ๋จ๋๋ฐ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฆ์ ์ ๋๋ค. (๋ด ์ด๋ฆ์ ๋ฐ๋ก ์ง์ ํ ์ ์์ผ๋ ์ด๋ป๊ฒ ๋ณด๋ฉด ํ๋ก์ ํธ ์ด๋ฆ ์ค์ ํ๋ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.) ๊ทธ๋ฆฌ๊ณ Create
๋ฒํผ์ ๋๋ฌ์ค๋ค.
๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ผ๋ก ์ด๋์ด ๋๋๋ฐ ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๋ณด๋ฅผ ์ ๋ ๋ถ๋ถ์ธ๋ฐ ๋๋ ๋ค๋ฅธ๊ฑด ์ ๋ชฐ๋ผ์ ๋ฑํ ์ค์ ํ์ง ์์๋ค...๐
2. Bot ๋ฉ๋ด๋ฅผ ์ด์ฉํด์ ๋ด ์์ฑํ๊ธฐ.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ์๊ฒ ์ค์ํ ๋ถ๋ถ์ ๋ค๋น๊ฒ์ด์
๋ฐ์ ์๋ Bot
์ด๋ผ๋ ๋ฉ๋ด์ด๋ค. ํด๋น ๋ฉ๋ด๋ฅผ ๋๋ฅด๋ฉด ๋ค์ ํ๋ฉด์ด ๋ฌ๋ค.
์ฌ๊ธฐ์๋ ๋ค๋ฅธ ์ค์ ๊ฐ์ ์ ๋ชฐ๋ผ์ ๋ด ์ด๋ฆ๋ง ์ค์ ํด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ค์ ์ฝ๋์์ ํด๋น ๋ด์ ์ ๊ทผํ๊ธฐ ์ํด์ ํ ํฐ๊ฐ์ ์
๋ ฅํด์ฃผ์ด์ผ ํ๋๋ฐ ์ด๋ฆ ์๋ ๋ณด๋ผ์ Copy
๋ฒํผ์ ๋๋ฌ์ ํ ํฐ์ ์ป์ผ๋ฉด ๋๋ค.
3. ์์ฑํ ๋ด์ ๋์ค์ฝ๋ ์ฑ๋์ ์ด๋ํ๊ธฐ
์ด๋ ๊ฒ ๋ด ์์ฑ๊น์ง ์๋ฃ๊ฐ ๋์๋ค. ๊ทธ๋ผ ํด๋น ๋ด์ ๋ด๊ฐ ํ
์คํธํ ๋์ค์ฝ๋ ์ฑ๋์ ์ด๋ํด์ ์ํ๋ ๋ด์ ์์ฑํ ์ ์๋๋ก ์ด๋ํด๋ณด๋๋ก ํ์.
์์ ์ฌ์ง์ ์ฐธ๊ณ ํด์ ์ผ์ชฝ ๋ค๋น๋ฐ์์ OAuth2
์ ๋๋ฌ์ ํ๋ฉด์ ์ด๋ํ๊ณ ๋ฐ์ผ๋ก ์คํฌ๋กค์ ๋ด๋ฆฌ๋ฉด ๋ด์ Scope
๋ฅผ ์ค์ ํ ์ ์๋๋ฐ ์ฐ๋ฆฌ๋ ๋ด์ผ๋ก ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ด์ ์ฒดํฌํ๋ค. (๋ค๋ฅธ Scope
๋ฅผ ์ํ๋ฉด ์ค๋ณต์ผ๋ก ์ฒดํฌํ๋ฉด ๋๋ค. ์ ์ ๋ชฐ๋ผ์...๋ด๋ง...๐)
๊ทธ๋ฌ๋ฉด ํ๋จ์ URL
์ด ์์ฑ๋๋๋ฐ ์ค๋ฅธ์ชฝ์ ๋ณด๋ผ์ Copy
๋ฒํผ์ ๋๋ฅด๋ฉด ๋งํฌ๊ฐ ๋ณต์ฌ๊ฐ ๋๊ณ ํด๋น ๋งํฌ๋ฅผ Browser
์ ๋ถ์ฌ๋ฃ์ผ๋ฉด ๋ด ์ถ๊ฐ ํ๋ฉด์ด ๋จ๊ฒ ๋๋ค.
์ฌ๊ธฐ์ ์์ ์ด ํ ์คํธ ํ๊ธฐ๋ฅผ ์ํ๋ ์๋ฒ๋ฅผ ์ ํํ๋ฉด ๋๋๋ฐ ์๋ก ๊ฐ์ ํด์ ์๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ ๋์ค์ฝ๋ ์ฑ์ผ๋ก ๋ค์ด๊ฐ์ ์๋ฒ๋ฅผ ์์ฑํด์ฃผ๋ฉด ๋๋๋ฐ ํด๋น ๋ธ๋ก๊ทธ ์ฐธ๊ณ ํด์ ์์ฑํ๊ณ ๋์์ค๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์๋ฒ๋ฅผ ํ๋ ์ ํํ๋ฉด ํ๋จ์ ๋ณด๋ผ์ Authorize
๋ฒํผ์ด ํ์ฑํ๊ฐ ๋๊ณ ํด๋ฆญํ๋ฉด ํด๋น ์๋ฒ๋ก ๋ด์ด ์ถ๊ฐ๊ฐ ์๋ฃ๋๋ค.
๋๋ ์ด๋ฏธ ๊น๊ฟ ์๋ค๐พ ์ ์ด๋ํด๋ ์ํ๊ณ , ๋ฒจ๋ก๊ทธ ๋ด๐พ ์ด ํ๋จ์ ์คํ๋ผ์ธ์ผ๋ก ์ถ๊ฐ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.
์ฌ๊ธฐ๊น์ง ์์ผ๋ฉด ์ผ๋จ ๊ธฐ๋ณธ์ ์ธ ์ค์ ์ ๋๋ ์ํ๋ค! ๋ฐ๋ผ์ ์ด์ ๋ ๋๋ง์ ์๋ํฐ๋ฅผ ์ผ์ ์ฝ๋ฉ์ ํ๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๋๋ก ํ๊ฒ ๋ค. ์ฐ์ ์ ๊ฐ๋จํ๊ฒ ์๊ฐ๋ฅผ ํ๊ณ ๋ค์ ํฌ์คํ ์์๋ ํ์ด ์๋ค๋ฉด ํ์ ์๊ฐํด๋ณด๋๋ก ํ ์์ ์ด๋ค.
๐ discord.js๋ฅผ ์ด์ฉํด์ ๋ด๊ณผ ์ํตํ๊ธฐ
์ฐ์ discord.js
๋ฅผ ์ด์ฉํ๋ ๋งํผ javascript (Node.js)
๋ฅผ ์ด์ฉํ ์์ ์ด๊ณ , ๋ฌธ๋ฒ์ ES5
๋ฌธ๋ฒ์ ์ฌ์ฉํ ์์ ์ด๋ค. ๋ฐ๋ผ์ ๋จผ์ npm init
์ ์ด์ฉํด์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค.
1. npm init ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด Node.js ํ๋ก์ ํธ ์์ฑํ๊ธฐ
ํ์๋ ์ด์์ฒด์ ๋ฅผ ์๋์ฐ๋ฅผ ์ฌ์ฉ์ค์ด๊ธฐ์ cmd
๋ฅผ ์ผ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋๋ก ํ๊ฒ ๋ค. (6์ WWDC์์ ๋งฅ๋ถ 14์ธ์น ๊ณต๊ฐ์ข ํด์ฃผ์ธ์...ใ
ใ
)
์ฌ๊ธฐ์ ํ๊ฐ์ง ๋ง์ ์ฌ๋๋ค์ด ์๋ ๊ฟํ์ผ ์ ์๋๋ฐ ์๋์ฐ์ ๊ฒฝ์ฐ ํด๋ ๊ฒฝ๋ก ๋ถ๋ถ์
cmd
๋ฅผ ์น๋ฉด ํด๋น ๊ฒฝ๋ก์ ์ ์๋ ๋ช ๋ น ํ๋กฌํํธ๋ฅผ ์ป์ ์ ์๋ค.
์ฌ๊ธฐ์ npm init
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์๋๋ก ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํ๋ค.
Microsoft Windows [Version 10.0.19042.985]
(c) Microsoft Corporation. All rights reserved.
C:\Users\junsugi\Desktop\react-workspace>cd velogbot
C:\Users\junsugi\Desktop\react-workspace\velogbot>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help init` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (velogbot) velogbot # ํ๋ก์ ํธ๋ช
(์๋ฌธ์๋ก๋ง ์์ฑ)
version: (1.0.0) 0.0.1 # ์ฑ ๋ฒ์ (์ ํญ์ 0.0.1 ๋ถํฐ ์์)
description: ๋ฒจ๋ก๊ทธ ๋ด # ์ฑ ์ค๋ช
(์์ ๋กญ๊ฒ ์ ์ผ๋ฉด ๋ฉ๋๋ค.)
entry point: (discord.js) index.js # ์ฑ์ ์คํํ๋ฉด ๊ฐ์ฅ ๋จผ์ ์ฝํ ํ์ผ (Java๋ก ์น๋ฉด main ํจ์๋ฅผ ์ง์ )
test command:
git repository:
keywords:
author: junsugi # ์ ์๋ช
license: (ISC)
About to write to C:\Users\junsugi\Desktop\react-workspace\velogbot\package.json:
{
"name": "velogbot",
"version": "0.0.1",
"description": "๋ฒจ๋ก๊ทธ ๋ด",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "junsugi",
"license": "ISC"
}
Is this OK? (yes) yes
์์ ์ค์ ๊ฐ๋ค์ ์ ๋ถ ์์ฑ๋ package.json
์์ ์ธ์ ๋ ์ง ์์ ํ ์ ์๋ค.
2. npm install์ ์ด์ฉํด ๊ธฐ๋ณธ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์นํ๊ธฐ
๋ฐ๋ผ์ package.json
์ด ์กด์ฌํ๋ ํด๋์์ ๋ช
๋ น ํ๋กฌํํธ์ฐฝ์ npm install
์ ์
๋ ฅํ๋ค.
C:\Users\junsugi\Desktop\react-workspace\velogbot>npm install
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] No repository field.
up to date in 0.964s
found 0 vulnerabilities
๋ค์๊ณผ ๊ฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ค์น๊ฐ ๋๊ณ node_modules
๋ผ๋ ํด๋๊ฐ ์์ฑ๋์์ผ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋ค์ด๋ก๋๊ฐ ๋์์ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ํด๋น ํด๋์๋ ์ฐ๋ฆฌ๊ฐ node.js
๋ฅผ ์ด์ฉํ ๋ ์ฌ์ฉํ ๊ธฐ๋ณธ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋ด๊ฒจ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ง์ discord.js
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์
๋ ฅํด์ ๋ค์ด๋ก๋ ํ ์ ์๋๋ก ํ๋ค.
๋ค์ด๋ก๋ ๋ช
๋ น์ด๋ ๋ค์๊ณผ ๊ฐ๋ค. npm install discord.js --save
C:\Users\junsugi\Desktop\react-workspace\velogbot>npm install discord.js --save
npm WARN [email protected] No repository field.
+ [email protected]
added 15 packages from 17 contributors and audited 15 packages in 1.658s
found 0 vulnerabilities
3. discord.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ๊ธฐ
์ด์ ๋ ์๋ํฐ๋ฅผ ์ผ์ discord.js
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด๋ณด๋๋ก ํ๊ฒ ๋ค. ์์ ์ฝ๋๋ discord.js
๊ฐ๋ฐ์ ํฌํธ์ ์๋๋ฐ ์ ๋์์๋ค. (์๋ก ์ ๋งํฌ๋ ํ์ด์ง์ ๋์ผ)
ํํ์ด์ง์ ์ ์ํด์ ์ผ์ชฝ์ ๋ค๋น๋ฐ์ ๋ค์ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ์ ์์ ์ฝ๋๋ฅผ ๋ณต์ฌํ ์ ์๋๋ก ํ๋ค.
Creating Your Bot > Getting your bot up & running > Logging in to Discord
- ํด๋ฆญ์ ํด๋น ํ์ด์ง๋ก ๋ฐ๋ก ์ ์ํ ์ ์์ต๋๋ค.
ํด๋น ํ์ด์ง์ ๋ค์ด๊ฐ์ง ์์๋ ๋ด๊ฐ ๋ณต์ฌํด์๋ค! ํน์ ํ์ด์ง์ ๋ค์ด๊ฐ๋ณด๊ณ ์ถ์ผ๋ฉด ๋ค์ด๊ฐ๋ณด๋๋ก ํ์!
const Discord = require('discord.js'); // discord.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์ถ
const client = new Discord.Client(); // Client ๊ฐ์ฒด ์์ฑ
// discord ๋ด์ด ์คํ๋ ๋ ๋ฑ ํ ๋ฒ ์คํํ ์ฝ๋๋ฅผ ์ ๋ ๋ถ๋ถ
client.once('ready', () => {
console.log('Ready!');
});
// ๋ด๊ณผ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๋ถ๋ถ
client.login('your-token-goes-here');
๋ฐ๋ผ์ ์๊น ํ ํฐ์ ๊ฐ์ง๊ณ ์์ client.login()
๊ดํธ ์์ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค. (๊น๋จน์์ผ๋ฉด ๋ค์ ํ์ธํ๊ธฐ!)
๋ฃ์ด์ฃผ๊ณ package.json
ํ์ผ๋ก ๋ค์ด๊ฐ์ scripts
์น์
์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ถ๊ฐํด์ค๋ค.
"scripts": {
"start": "node index.js"
"test": "echo \"Error: no test specified\" && exit 1"
},
scripts
๋ถ๋ถ์ ์ ํ ๋ช
๋ น์ด๋ ๋ช
๋ น ํ๋กฌํํธ์์ npm run
๋ช
๋ น์ด์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค. ๋ฐ๋ผ์ ์ง๊ธ ์ ์ start
๋ผ๋ ๋ช
๋ น์ด๋ index.js
๋ฅผ ์คํ์์ผ์ฃผ๋ ๋ช
๋ น์ด์ด๋ค.
4. ๋ด ์คํ์ํค๊ณ ๋ฉ์์ง ํ์ธํ๊ธฐ!
์ฐ์ ์คํ์ํค๊ธฐ ์ ์ ์์ ์์ฑํ ์ฝ๋์ ๋ค์ ์ฝ๋๋ฅผ ์ถ๊ฐํ ์ ์๋๋ก ํ๋ค.
// ๋์ค์ฝ๋ ์๋ฒ์ ์์ฑ๋๋ ๋ชจ๋ ๋ฉ์์ง๋ฅผ ์์ ํ๋ ๋ฆฌ์ค๋
client.on('message', message => {
console.log(message.content);
});
ํด๋น ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค๋ฉด package.json
์ด ์กด์ฌํ๋ ํด๋์์ ๋ช
๋ น ํ๋กฌํํธ๋ฅผ ์ผ๊ณ npm run start
๋ฅผ ์ ์ด์ค๋ค. ๊ทธ๋ฌ๋ฉด Ready!
๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์ฝ์์ ์ถ๋ ฅ๋๋๋ฐ ๊ทธ๋ ๊ฒ ๋๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋ด๊ณผ ์ฐ๊ฒฐ์ด ๋ ๊ฒ์ด๋ค. (๋ช ์ด ์ ๋ ์๊ฐ์ด ์์๋ ์ ์์ต๋๋ค.)
C:\Users\junsugi\Desktop\react-workspace\velogbot>npm run start
> [email protected] start C:\Users\junsugi\Desktop\react-workspace\velogbot
> node index.js
Ready! # ํด๋น ๋ก๊ทธ๊ฐ ๋ด๋ค๋ฉด ์ฑ๊ณต!
๊ทธ๋ฆฌ๊ณ ๋์ค์ฝ๋๋ฅผ ํ์ธํด๋ณด๋ฉด ๋ฒจ๋ก๊ทธ๋ด(์์ ์ ๋ด)์ด ์จ๋ผ์ธ์ด ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋น ์ฑ๋์ ์ฑํ
์ ์
๋ ฅํด๋ณด๋๋ก ํ์ (์ผ์ชฝ ๋ค๋น๋ฐ์ ์ฑํ
์ฑ๋์ด ์๋ค๋ฉด + ๋ฒํผ์ ๋๋ฌ์ ์ฑํ
์ฑ๋ ํ๋๋ฅผ ์์ฑํด์ฃผ๋๋ก ํ์!)
๋๋ ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํด์ฃผ์๊ณ ์ฝ์์ฐฝ์ ๋ณด๋ฉด ํด๋น ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒํด์ discord.js
๋ฅผ ์ฌ์ฉํ ์ค๋น๋ ๋ชจ๋ ๋ง๋ฌด๋ฆฌ๊ฐ ๋์๊ณ ๊ฐ๋จํ ํํ ๋ฆฌ์ผ๊น์ง ์งํํด๋ณด์๋ค.
๊ฒฐ๋ก
๋ญ๊ฐ ๋๊ฒ ๊ฑฐ์ฐฝํ๊ณ ์ด๋ ค์ ๋ณด์ผ ์๋ ์์ ์ ์๋ค. ํ์ง๋ง javascript
๋ง ์๊ณ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ค๋ฉด ์ค์ ๋ก ๊ฐ๋ฐ์ ์ฒ์ ์์ํ๋ ๋ถ๋ค๋ ์ฌ๋ฐ๊ฒ ์
๋ฌธํ ์ ์๋ ๋ถ์ผ๋ผ๊ณ ์๊ฐํ๋ค.
๋งค๋ฒ ์ฝ๋ฉ์ ์
๋ฌธ์ด ์น ๋ง๋ค๊ธฐ๋ ๋๋ฌด ์ง๋ฃจํ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋์ ํด๋น ํฌ์คํ
์ ์ฌ๋ฆฌ๊ฒ ๋ ๊ณ๊ธฐ๋ ์๊ณ , ๋ง๋ค๊ณ ๋ณด๋๊น ๋ฟ๋ฏํ๊ณ ๊ฒฐ๊ณผ๋ฌผ๋ ๋น ๋ฅด๊ฒ ๋ฐ์๋ณผ ์ ์์ด์ ์ฌ๋ฐ์๋ค. ๋ค์ ํฌ์คํ
์๋ ์ด์ cheerio
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ axios
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ ์น ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์ถ๋ ฅํด์ค ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณผ ์์ ์ด๋ค.
๊ทธ๋ผ ์ค๋์ ์ฌ๊ธฐ๊น์ง!
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(Discord.js๋ก Bot๐พ ๋ง๋ค๊ธฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@junsugi/Discord.js๋ก-Bot-๋ง๋ค๊ธฐ์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค