JavaRush /Java Blog /Random-KO /ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด ์žƒ์–ด๋ฒ„๋ฆฐ ์œ ๋ชจ์ฐจ์— ๋Œ€ํ•œ ๋ˆ์„ ๋Œ๋ ค๋ฐ›๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด ์žƒ์–ด๋ฒ„๋ฆฐ ์œ ๋ชจ์ฐจ์— ๋Œ€ํ•œ ๋ˆ์„ ๋Œ๋ ค๋ฐ›๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์›๋ณธ ๊ธฐ์‚ฌ์˜ ์ €์ž์ธ Kristรณf Litavecz ๋Š” 2017๋…„์— ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๊ทธ์˜ ๊ฐœ๋ฐœ์ž ๊ฒฝ๋ ฅ์—๋Š” (์•„์ง!) ํฐ ๋ณ€ํ™”๊ฐ€ ์—†์ง€๋งŒ, ์ด ์ด์•ผ๊ธฐ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด ์ผ์ƒ ์ƒํ™œ์—์„œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ ์ฝ”๋“œ ์ž‘์„ฑ ๋Šฅ๋ ฅ์ด ์ œ4์˜ ๋ฆฌํ„ฐ๋Ÿฌ์‹œ๊ฐ€ ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด ์žƒ์–ด๋ฒ„๋ฆฐ ์œ ๋ชจ์ฐจ์— ๋Œ€ํ•œ ๋ˆ์„ ๋Œ๋ ค๋ฐ›๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๋Š”์ง€ - 1
์ง€๋‚œ ์—ฌ๋ฆ„, ์ œ ์•„๋‚ด์™€ ๋‘ ์ž๋…€๋Š” ์นœ๊ตฌ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด ํ—๊ฐ€๋ฆฌ์—์„œ ์บ˜๋ฆฌํฌ๋‹ˆ์•„๋กœ ๋น„ํ–‰๊ธฐ๋ฅผ ํƒ”์Šต๋‹ˆ๋‹ค. ๋น„ํ–‰์˜ ๋ชจ๋“  โ€‹โ€‹์–ด๋ ค์›€ ์†์—์„œ ์šฐ๋ฆฌ ํ•ญ๊ณต์‚ฌ๋Š” ๋„์ค‘์— ์œ ๋ชจ์ฐจ๋ฅผ ์žƒ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ๋น„์šฉ์„ ์ถฉ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฉ”์ผ, ํŠธ์œ„ํ„ฐ, ์ •์ค‘ํ•˜๊ณ  ๋ฌด๋ก€ํ•œ ์ „ํ™”๋ฅผ ํ†ตํ•ด ํ•ญ๊ณต์‚ฌ์— ์—ฐ๋ฝํ•˜๋ ค๋Š” ์ˆ˜๋งŽ์€ ์‹œ๋„๋Š” ์†Œ์šฉ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ๋‹ค๋ฅด๊ฒŒ ํ–‰๋™ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•ญ๊ณต์‚ฌ ๊ณ„์ •์˜ ๋ชจ๋“  ํŠธ์œ—์— ์‘๋‹ตํ•˜์—ฌ ์ด๋ฏธ 3๊ฐœ์›” ๋™์•ˆ ๊ณ„๋ฅ˜ ์ค‘์ธ ์šฐ๋ฆฌ ์‚ฌ๊ฑด์„ ์ƒ๊ธฐ์‹œํ‚ค๋Š” ํŠธ์œ„ํ„ฐ ๋ด‡์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ณด๋ณต์ด๋‚˜ ๋ˆ์„ ๊ฐˆ์ทจํ•  ๋ชฉ์ ์œผ๋กœ ์ด ์ผ์„ ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์•„๋‹ˆ, ์–ด๋– ํ•œ ๊ฒฝ์šฐ์—๋„ ๊ทธ๋Ÿฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์žƒ์–ด๋ฒ„๋ฆฐ ์œ ๋ชจ์ฐจ์— ๋Œ€ํ•œ ์ •์˜์™€ ๋ณด์ƒ์„ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ์ €๋Š” ์•ฝ 1๋…„ ๋™์•ˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์—ˆ์œผ๋ฉฐ ์ง€์›๊ณผ ์˜๊ฐ์„ ์–ป๊ธฐ ์œ„ํ•ด freeCodeCamp ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•œ ๊ฒƒ
  1. ์ €๋Š” Cloud9 ๊ฐœ๋ฐœ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค( CS50 ๊ณผ์ •์„ ์ˆ˜๊ฐ•ํ–ˆ๋‹ค๋ฉด ์ต์ˆ™ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค - ํŽธ์ง‘์ž ์ฃผ ).
  2. ํŠธ์œ„ํ„ฐ์— ๊ณ„์ •์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
  3. Node.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ Twitter ๋ด‡์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
  4. ๋‚˜๋Š” ๋งค ์‹œ๊ฐ„๋งˆ๋‹ค 10๊ฐœ์˜ ์•Œ๋ฆผ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฌด์ž‘์œ„๋กœ ํŠธ์œ—ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  5. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Š” ๊ทธ๊ฒƒ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ผ์ฃผ์ผ ๋ฐ˜ ํ›„์— ๋‚ด ๊ณ„์ขŒ์— ๋ˆ์ด ๋“ค์–ด์˜ค๊ณ  ์ƒˆ ์œ ๋ชจ์ฐจ๋ฅผ ์ƒ€์Šต๋‹ˆ๋‹ค. ๋‚ด ์ฝ”๋“œ๋ฅผ GitHub ์ €์žฅ์†Œ ์— ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค . ๊ทธ๋Ÿฌ๋‹ˆ ๊ฐ‘์ž๊ธฐ ๋น„์Šทํ•œ ์ƒํ™ฉ์— ์ฒ˜ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ํ™œ์šฉํ•ด๋ณด์„ธ์š”.

๊ทธ๊ฒƒ์„ํ•˜๋Š” ๋ฐฉ๋ฒ•

1๋‹จ๊ณ„. Cloud9 IDE์—์„œ ์ƒˆ ํ™˜๊ฒฝ ์ƒ์„ฑ Cloud9 ์— ๋กœ๊ทธ์ธ ํ•˜๊ณ  ์ƒˆ ์ž‘์—… ๊ณต๊ฐ„์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Node.js๋ฅผ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด ์žƒ์–ด๋ฒ„๋ฆฐ ์œ ๋ชจ์ฐจ์— ๋Œ€ํ•œ ๋ˆ์„ ๋Œ๋ ค๋ฐ›๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๋Š”์ง€ - 2
๋‚ด ๋ด‡์„ ๋ณต์‚ฌํ•˜๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์— ๋‹ค์Œ ์ค„์„ ์ž…๋ ฅํ•˜์—ฌ ๋‚ด ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. git clone https://github.com/krizsoo/twitterbot 2๋‹จ๊ณ„: Twitter ๊ณ„์ • ๋ฐ Twitter ์•ฑ ๋งŒ๋“ค๊ธฐ ์•„์ง ๋งŒ๋“ค์ง€ ์•Š์€ ๊ฒฝ์šฐ ํŠธ์œ„ํ„ฐ ๊ณ„์ •์ด ์žˆ์œผ๋ฉด ๋งŒ๋“œ์„ธ์š” . ์ผ๋‹จ ๊ฐ€์ž…ํ•˜๋ฉด Twitter API์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ํŠธ์œ—์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด ์žƒ์–ด๋ฒ„๋ฆฐ ์œ ๋ชจ์ฐจ์— ๋Œ€ํ•œ ๋ˆ์„ ๋Œ๋ ค๋ฐ›๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๋Š”์ง€ - 3
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ตฌ์„ฑ๋˜๋ฉด API์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ 4๊ฐœ์˜ ๋ณด์•ˆ ํ‚ค๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด ์žƒ์–ด๋ฒ„๋ฆฐ ์œ ๋ชจ์ฐจ์— ๋Œ€ํ•œ ๋ˆ์„ ๋Œ๋ ค๋ฐ›๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๋Š”์ง€ - 4
  • ์†Œ๋น„์ž ํ‚ค(API ํ‚ค) - ์†Œ๋น„์ž ํ‚ค
  • ์†Œ๋น„์ž ๋น„๋ฐ€(API ๋น„๋ฐ€)์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ผ์ข…์˜ "๋กœ๊ทธ์ธ + ๋น„๋ฐ€๋ฒˆํ˜ธ"์ž…๋‹ˆ๋‹ค.
  • ์•ก์„ธ์Šค ํ† ํฐ - ์•ก์„ธ์Šค ํ† ํฐ
  • ์•ก์„ธ์Šค ํ† ํฐ ๋น„๋ฐ€ - ์•ก์„ธ์Šค ํ† ํฐ ๋น„๋ฐ€
์œ„์˜ ๋ชจ๋“  ํ‚ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด config.js ํŒŒ์ผ์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด ์žƒ์–ด๋ฒ„๋ฆฐ ์œ ๋ชจ์ฐจ์— ๋Œ€ํ•œ ๋ˆ์„ ๋Œ๋ ค๋ฐ›๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๋Š”์ง€ - 5
3๋‹จ๊ณ„: Twitter Bot ์„ค์ • Bot์ด ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ์„ ์กฐ์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  1. Node.js ์ข…์†์„ฑ ์„ค์น˜

    npm install --save twitter

  2. ๊ฒ€์ƒ‰์–ด ์„ค์ •
Bot์ด ์‘๋‹ตํ•˜๋Š” ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” โ€œapp.jsโ€ ํŒŒ์ผ๋กœ ๊ฐ€์„œ ๊ฒ€์ƒ‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • q- ํ‚ค์›Œ๋“œ;
  • countโ€” ์š”์ฒญ์ด ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋Š” ํŠธ์œ— ์ˆ˜
  • result_typeโ€” ์ •๋ ฌ ๋…ผ๋ฆฌ, ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์ตœ๊ทผ ํŠธ์œ—์„ ๋จผ์ € ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • lang์–ธ์–ด(์˜ˆ: ์˜์–ด)์ž…๋‹ˆ๋‹ค.
์•„๋ž˜ ๊ตฌ์„ฑ์€ "@lostbabystroller"๊ฐ€ ํฌํ•จ๋œ ๊ฐ€์žฅ ์ตœ๊ทผ ํŠธ์œ—์— ์ž๋™์œผ๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.
// Set up your search parameters
var params = {
  q: '@lostbabystroller',
  count: 1,
  result_type: 'recent',
  lang: 'en'
};
4๋‹จ๊ณ„: ํŠธ์œ— ์„ค์ • ๋ด‡์€ ๋งค ์‹œ๊ฐ„๋งˆ๋‹ค ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ ํ•ญ์ƒ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํŠธ์œ—์„ 10๊ฐœ ์ •๋„ ๋งŒ๋“ค์—ˆ๊ณ , ๋งค๋ฒˆ ๋ด‡์ด ๋ฌด์ž‘์œ„๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ: Johnny Asmar๋Š” ๋‹ต๋ณ€์— ์‚ฌ๋žŒ์„ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŠธ์œ„ํ„ฐ์˜ TOS์— ์œ„๋ฐฐ๋ฉ๋‹ˆ๋‹ค. 5๋‹จ๊ณ„. ํŠธ์œ— ๋นˆ๋„ ์„ค์ • ๋งค ์‹œ๊ฐ„๋งˆ๋‹ค ๋ด‡์ด ์‹คํ–‰๋˜๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์‹œ๊ฐ„์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
//ะทะฐะดะฐะฝะธะต ะฒั€ะตะผะตะฝะฝะพะณะพ ะธะฝั‚ะตั€ะฒะฐะปะฐ ั‚ะฒะธั‚ะพะฒ
var INTERVAL = 1*60*60*1000;
๊ทธ๋Ÿฐ ๋‹ค์Œ Bot์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹œ์ž‘๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
// Start bot and timer
BotStart();
setInterval(BotStart, INTERVAL);
6๋‹จ๊ณ„. Bot ์‹œ์ž‘ ๋ชจ๋“  ๊ฒƒ์ด ์„ค์ •๋˜๋ฉด Bot์„ ์‹œ์ž‘ํ•˜๊ณ  ์ฐธ์„์„ฑ ์žˆ๊ฒŒ ๊ธฐ๋‹ค๋ ธ์Šต๋‹ˆ๋‹ค.
npm run serve

์ด ๋ชจ๋“  ๊ฒƒ์—์„œ ๋‚˜๋Š” ์–ด๋–ค ๊ตํ›ˆ์„ ๋ฐฐ์› ์Šต๋‹ˆ๊นŒ?

๋†€๋ž๊ฒŒ๋„ ๊ณ ๊ฐ ์„œ๋น„์Šค ๋‹ด๋‹น์ž๊ฐ€ 24์‹œ๊ฐ„ ์ด๋‚ด์— ๋‚˜์—๊ฒŒ ์—ฐ๋ฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์†ก๊ธˆ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. 1๋…„ ์ „๋งŒ ํ•ด๋„ ๋‚˜๋Š” ์ด๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†์—ˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž‘์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ๊ทธ๊ฒƒ์€ ์Šน๋ฆฌ์˜€์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณตํ•ด์„œ ๋„ˆ๋ฌด ๊ธฐ๋ป์„œ! ๋ชจ๋“  ์ดˆ๋ณด์ž๋“ค์ด ์ œ ์ด์•ผ๊ธฐ์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐค์— ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์— ์—ด์ค‘ํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋กœ ๊ฒฝ๋ ฅ์„ ์Œ“๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ปดํ“จํ„ฐ ์–ธ์–ด๋ฅผ ์ดํ•ดํ•˜๋ฉด ์–ธ์  ๊ฐ€๋Š” ํ™•์‹คํžˆ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ์˜ ๋ง ์ด ๊ฒŒ์‹œ๋ฌผ์€ freeCodeCamp ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ CS50 ํŒ€์ด ์—†์—ˆ๋‹ค๋ฉด ์ž‘์„ฑ๋˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ์ง€์›์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ž์„ธํ•œ Twitter Bot ํŠœํ† ๋ฆฌ์–ผ์„ ์ž‘์„ฑํ•ด์ฃผ์‹  Brandon Morelli์™€ Scott Spence์—๊ฒŒ๋„ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค: https://codeburst.io/build-a-simple-twitter-bot-with-node-js-in-just-38-lines-of- ์ฝ”๋“œ -ed92db9eb078 https://medium.freecodecamp.org/easily-set-up-your-own-twitter-bot-4aeed5e61f7f ์†Œ์Šค ๋งํฌ: https://medium.freecodecamp.org/how-i-used-my-programming -์œ ๋ชจ์ฐจ ๊ตฌ์ž… ๊ธฐ์ˆ -2778cb85e8b2
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION