๐Ÿ”Ž ์œ ํŠœ๋ธŒ ๋Œ“๊ธ€์—์„œ ํ•œ๊ตญ์ธ ์ฐพ๊ธฐ

  • ์ด ๊ธ€์€ ๊ฐœ์ธ์ ์ธ ๋ถ„์„์ด๋ฉฐ YouTube๊ฐ€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์ด ๊ธ€์„ ๊ฒ€์ฆํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ์  ์œ ๋…ํ•˜์‹œ๊ณ  ๊ธ€์„ ์ฝ์–ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํ•œ๊ตญ ๊ฐ€์ˆ˜๊ฐ€ ํ•œ๊ตญ ๋ฐฉ์†ก์—์„œ ํ•œ๊ตญ ๋…ธ๋ž˜ ๋ถ€๋ฅด๋Š”๋ฐ ํ•œ๊ตญ์–ด ๋Œ“๊ธ€๋งŒ ์—†๋Š” ๋ฌ˜ํ•œ ๋™์˜์ƒ ํ”Œ๋žซํผ YouTube

YouTube๋Š” ์–ธ์–ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋Œ“๊ธ€์„ ๋ณด๋Š” ๊ธฐ๋Šฅ์ด ์—†๋‹ค. ์ด ๊ธ€์€ ๊ทธ ๋ถˆํŽธํ•จ์„ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœํ•œ "YouTube ๋Œ“๊ธ€ ์–ธ์–ด ํ•„ํ„ฐ"์˜ ์•ŒํŒŒ, ๋ฒ ํƒ€, ๊ทธ๋ฆฌ๊ณ  ์ •์‹ ์ถœ์‹œ ๋ฒ„์ „๊นŒ์ง€์˜ ๊ฐœ๋ฐœ ์ด์•ผ๊ธฐ๋ฅผ ๋‹ด์•˜๋‹ค.

anaclumos/youtube-comment-language-filter


0. ๊ตฌ์ƒ

ํ•˜๋ฃจ๋Š” ๋ถˆํŽธํ•จ์„ ๋А๋ผ๋˜ ์™€์ค‘ ํ˜ธ๊ธฐ์‹ฌ์ด ๋“ค์–ด YouTube์˜ ๋Œ“๊ธ€ HTML์ด ์–ด๋–ป๊ฒŒ ๋ฌถ์—ฌ์žˆ๋Š”์ง€ ๋œฏ์–ด๋ณด์•˜๋‹ค. console์—์„œ ์ด๋Ÿฐ์ €๋Ÿฐ ๊ฐ’๋“ค์„ ์ž…๋ ฅํ•ด๋ณด๋‹ค๊ฐ€ ํ•œ๊ธ€์ด ํฌํ•จ๋œ ๋Œ“๊ธ€๋งŒ ๋‚จ๊ธฐ๊ณ  ์‹น ์ง€์›Œ์ฃผ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ณผ๊ฑฐ ํ•œ๊ธ€๊ณผ ์œ ๋‹ˆ์ฝ”๋“œ ๊ทœ์น™์— ๊ด€๋ จ๋œ ํ•œ๊ธ€๊นจ๊ธฐ.py๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋˜ ๊ฒฝํ—˜์ด ๋„์›€์ด ๋๋‹ค.

๐Ÿงผ ์ดˆ๊ธฐ ํ•„ํ„ฐ ์Šคํฌ๋ฆฝํŠธ. YouTube ๋Œ“๊ธ€์—์„œ ํ•œ๊ธ€์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ๊ทธ ๋Œ“๊ธ€์„ ์ง€์›Œ๋ฒ„๋ฆฌ๋Š” ์›๋ฆฌ์ด๋‹ค. GitHub ์ €์žฅ์†Œ์˜ ์ฒซ ์ปค๋ฐ‹์—๋„ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

var commentList = document.getElementsByTagName('ytd-comment-thread-renderer')
var comment

function containsUnicode(str, startUnicode, endUnicode) {
  for (var i = 0; i < str.length; i++) {
    if (startUnicode.charCodeAt(0) <= str.charCodeAt(i) && str.charCodeAt(i) <= endUnicode.charCodeAt(0)) {
      return true
    }
  }
  return false
}

for (var x = 0; x < commentList.length; x++) {
  comment = commentList[x].childNodes[1].childNodes[1].childNodes[3].childNodes[3].innerText
  if (containsUnicode(comment, '๊ฐ€', 'ํžฃ')) {
    // comment = "ํ•œ๊ธ€์ž„ \n" + comment;
  } else {
    // console.log(typeof commentList[x]);
    commentList[x].parentNode.removeChild(commentList[x])
    x--
  }
}

for (var x = 0; x < commentList.length; x++) {
  console.log(commentList[x].childNodes[1].childNodes[1].childNodes[3].childNodes[1].innerText)
  // ์ž‘์„ฑ์ž ์ด๋ฆ„๊ณผ ์ž‘์„ฑ๋‚ ์งœ๊ฐ€ ๊ฐ™์ด ๋ฌถ์—ฌ์žˆ๋‹ค. "์ด๋ฆ„\n์ž‘์„ฑ๋‚ ์งœ"

  console.log(commentList[x].childNodes[1].childNodes[1].childNodes[3].childNodes[3].innerText)
  // ๋Œ“๊ธ€!
}
// End of code

/* ์ฐธ๊ณ : ์ด ์ฝ”๋“œ๋Š” ์ดˆ๊ธฐ ์ฝ”๋“œ์ด๋ฉฐ, ์ผ๋ถ€ ๊ฒฝ์šฐ์—์„œ๋Š” ์ •์ƒ ๋™์ž‘ํ•˜์ง€๋งŒ
 * ์—ฌ๋Ÿฌ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.
 * ๋””๋ฒ„๊น…๊ณผ ์„ฑ๋Šฅ ๊ฐœ์„  ์ž‘์—…์ด ์ง„ํ–‰๋œ ์ฝ”๋“œ๋Š” GitHub์— ์—…๋กœ๋“œ๋˜์–ด ์žˆ๋‹ค.
 */

์ด๋•Œ ์ด ์ฝ”๋“œ๋ฅผ ํ”„๋กœ์ ํŠธ๋กœ ํ‚ค์šธ ์ˆ˜ ์žˆ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์žˆ์—ˆ๋‹ค.

  • ์šฐ์„  ์ฝ˜์†”์—์„œ ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ ๋„ฃ์–ด์•ผ ํ•˜๋‹ˆ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์“ฐ๊ธฐ ์–ด๋ ต๊ณ  ๋ถˆํŽธํ–ˆ๋‹ค.
  • ์ž๋™์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๊ธฐ์— ๋Œ“๊ธ€์ด ์ƒˆ๋กœ ๋กœ๋”ฉ๋˜๋ฉด ์ฝ˜์†”์—์„œ ๋‹ค์‹œ ์‹คํ–‰ํ•ด์•ผ ํ–ˆ๋‹ค.
  • ํ•œ๊ธ€๋งŒ ๊ฑธ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์šฉ๋„๊ฐ€ ๋ฌด์ฒ™ ์ œํ•œ์ ์ด์—ˆ๊ณ , ์‹คํ–‰ ์†๋„๊ฐ€ ๋А๋ ธ๋‹ค.

์ด ๋ฌธ์ œ์ ๋“ค์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ž์—ฐ์Šค๋Ÿฌ์šด ๊ฐœ๋ฐœ ๋ชฉํ‘œ๊ฐ€ ๋˜์—ˆ๋‹ค. ์šฐ์„  ํฌ๋กฌ ์ต์Šคํ…์…˜์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํŽธ๋ฆฌํ•  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๋‹ค.

  • ์—ฃ์ง€๋‚˜ ์›จ์ผ๋„ ํฌ๋กœ๋ฏธ์›€ ๊ธฐ๋ฐ˜์ด๋ฉฐ ํŒŒ์ด์–ดํญ์Šค ์• ๋“œ์˜จ๋„ ํฌ๋กฌ ์ต์Šคํ…์…˜์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ์‚ฌํŒŒ๋ฆฌ๋Š” YouTube 4K ๋™์˜์ƒ ์žฌ์ƒ์ด ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌํŒŒ๋ฆฌ ์‚ฌ์šฉ์ž๋“ค๋„ YouTube๋ฅผ ๋ณผ ๋•Œ ํฌ๋กœ๋ฏธ์›€์„ ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
  • ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ๋Š” YouTube ์ง€์›์ด ๋Š๊ฒผ๋‹ค.

๋˜ํ•œ ์ปดํ“จํ„ฐ๋ฅผ ์ž˜ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋“ค๋„ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๋ ค๋ฉด "YouTube์˜ ๊ธฐ๋Šฅ์ธ ๊ฒƒ์ฒ˜๋Ÿผ" ๋™์˜์ƒ๊ณผ ๋Œ“๊ธ€ ์‚ฌ์ด ์œ„์น˜ํ•ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์•ผ๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค ์ปค์„œ๋ฅผ ๋™์˜์ƒ์—์„œ ๋Œ“๊ธ€๋กœ ์˜ฎ๊ฒจ๊ฐ€๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ํฌ๋กฌ ์ต์Šคํ…์…˜์—๋Š” ๋ณ„๋‹ค๋ฅธ ๊ธฐ๋Šฅ์ด ์—†๊ณ  YouTube ํ™”๋ฉด ์ž์ฒด์— ์ง์ ‘ ๋ฉ”๋‰ด๋ฅผ ์‚ฝ์ž…ํ•˜๋„๋ก ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๋‹ค.

์šฐ๋ฆฌ ์ค‘์— ์ŠคํŒŒ์ด๊ฐ€ ์žˆ์–ด..

์ด์ œ ๋ชฉํ‘œ๊ฐ€ ๊ตฌ์ฒดํ™”๋˜์—ˆ๋‹ค.

  • ์ด ํฌ๋กฌ ์ต์Šคํ…์…˜์€ ๋™์˜์ƒ๊ณผ ๋Œ“๊ธ€ ์‚ฌ์ด์— ์–ธ์–ด๋ฅผ ์ปจํŠธ๋กคํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฝ์ž…ํ•  ๊ฒƒ์ด๋‹ค.
  • ๊ทธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๋Œ“๊ธ€์ด ์ž๋™์ ์œผ๋กœ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋Œ“๊ธ€์„ ๋” ๋ถˆ๋Ÿฌ์™€๋„ ๊ณ„์† ๊ทธ๋Œ€๋กœ ์ž‘๋™ํ•  ๊ฒƒ์ด๋‹ค.
  • ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ํฐ ์–ด๋ ค์›€์ด ์—†๋„๋ก ํ™•์žฅ์„ฑ์„ ๊ฐ–์ถฐ์•ผ ํ•œ๋‹ค.
  • ๋‚ฉ๋“ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ๋นจ๋ผ์•ผ ํ•œ๋‹ค.

์ฐธ๊ณ : versioning

๋ฒ„์ „ ์ˆซ์ž๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹์€ ์‚ฌ๋žŒ๋งˆ๋‹ค, ๋‹จ์ฒด๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถ„๋ฅ˜๋ฅผ ๋”ฐ๋ฅธ๋‹ค.

  • ์ผ์˜ ์ž๋ฆฌ๋Š” ๋ฉ”์ด์ € ์—…๋ฐ์ดํŠธ๋ฅผ ๋œปํ•œ๋‹ค.
  • ์ฒซ ๋ฒˆ์งธ ์†Œ์ˆ˜์ ์€ ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€, ๋‘ ๋ฒˆ์งธ ์†Œ์ˆ˜์ ์€ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ๋œปํ•œ๋‹ค.
  • ์„ธ ๋ฒˆ์งธ ์†Œ์ˆ˜์ ์€ ์ฝ”๋“œ ์ƒ์˜ ์ˆ˜์ • ์—†์ด ์Šคํ† ์–ด์— ์žฌ์—…๋กœ๋“œ๋ฅผ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
์ด๋ฆ„๋ฒ„์ „์„ค๋ช…
์•ŒํŒŒ0.1+์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ, ์†Œ์ˆ˜์—๊ฒŒ ๋ฐฐํฌ/ํ”ผ๋“œ๋ฐฑ
๋ฒ ํƒ€0.9+์ตœ์ดˆ ๊ตฌ์ƒ ๋Œ€๋ถ€๋ถ„ ๊ตฌํ˜„, ๋‹ค์ˆ˜์—๊ฒŒ ๋ฐฐํฌ/ํ”ผ๋“œ๋ฐฑ
์ •์‹1+์ง€์†์  ๊ฐœ์„ , ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๋ฐฐํฌ/ํ”ผ๋“œ๋ฐฑ

1. ์•ŒํŒŒ ๋ฒ„์ „์€ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ

์•ŒํŒŒ ๋ฒ„์ „(๋” ์ •ํ™•ํ•˜๊ฒŒ๋Š” Minimum Viable Product)์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ตœ์†Œํ•œ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค. ๋” ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” ๋‹ค์Œ ๋ชฉํ‘œ๊ฐ€ ๋‹ฌ์„ฑ๋˜์–ด์•ผ ํ–ˆ๋‹ค.

  1. ๋Œ“๊ธ€์ด ์ƒˆ๋กœ ๋กœ๋”ฉ๋  ๋•Œ๋งˆ๋‹ค ์ž๋™์ ์œผ๋กœ ์žฌ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.
  2. ์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ ์ „์ฒด ๋Œ“๊ธ€์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  3. ์›ํด๋ฆญ ์„ค์น˜๋ฅผ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๊ฐ€์žฅ ๋จผ์ € "์–ด๋–ป๊ฒŒ ์ž๋™์ ์œผ๋กœ ์žฌ์‹คํ–‰๋˜๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ธ๊ฐ€"๋ฅผ ๊ณ ๋ฏผํ–ˆ๋‹ค.

๋ฐฉ๋ฒ• 1. ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ์ž๋™ ์žฌ์‹คํ–‰

ํ•˜์ง€๋งŒ YouTube ๋™์˜์ƒ์„ ์ผœ์ž๋งˆ์ž ๋™์˜์ƒ๋งŒ ๊ฐ์ƒํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์„ฑ๋Šฅ์˜ ๋‚ญ๋น„์ผ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ์žฌ์‹คํ–‰ ๊ฐ„๊ฒฉ์ด ๋„ˆ๋ฌด ๊ธธ๋ฉด ๋Œ“๊ธ€์„ ์ฝ์„ ๋•Œ ๋ถˆํŽธํ•จ์ด ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค. ๊ฐ€์žฅ ๋จผ์ € ๋– ์˜ฌ๋ ธ์ง€๋งŒ ๊ฐ€์žฅ ๋จผ์ € ์ ‘์€ ๋ฐฉ๋ฒ•์ด๋‹ค.

๋ฐฉ๋ฒ• 2. YouTube์˜ ๋กœ๋”ฉ ์•„์ด์ฝ˜ ๊ฐ์ง€

YouTube์˜ ๋กœ๋”ฉ ์•„์ด์ฝ˜

ํ™•์ธํ•ด๋ณด๋‹ˆ ๋กœ๋”ฉ ์•„์ด์ฝ˜์ด ์ƒ๊ธธ ๋•Œ๋งˆ๋‹ค ๋Œ“๊ธ€ ์•„๋ž˜์— <can-show-more> ํƒœ๊ทธ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๋‹ค ์‚ฌ๋ผ์กŒ๋‹ค. ์ฆ‰ ๋‚œ๋…ํ™”๋œ YouTube์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ <can-show-more> ํƒœ๊ทธ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ์ˆœ๊ฐ„์„ ํฌ์ฐฉํ•˜์—ฌ ๊ฐ™์ด ํ•„ํ„ฐ๊ฐ€ ์žฌ์‹คํ–‰๋˜๋„๋ก ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚œ๋…ํ™”์˜ ๋œป์ด ๋ฌด์—‡์ธ์ง€ ๊นŒ๋จน์—ˆ๊ธฐ์— ๊ทธ๋Ÿฐ ๋ฐœ์ƒ์„ ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค... ๋ช‡ ์‹œ๊ฐ„์˜ ์‚ฌํˆฌ ๋์— ํฌ๊ธฐํ–ˆ๋‹ค.

๋ฐฉ๋ฒ• 3. MutationObserver

์ดํ›„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ MutationObserver๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ด€์ฐฐ ๋Œ€์ƒ์ธ target๊ณผ ๊ด€์ฐฐ ์กฐ๊ฑด์ธ config๋ฅผ ์„ค์ •ํ•œ ํ›„ config์— ๋งž๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ผ์–ด๋‚˜๋ฉด callback ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. YouTube ๋Œ“๊ธ€ HTML์„ target์œผ๋กœ ์‚ผ์•˜๊ณ , HTML ๋‚ด์˜ childNodes์™€ attributes์˜ ๋ณ€๊ฒฝ์— ๋ฐ˜์‘ํ•˜๋„๋ก ํ–ˆ๋‹ค. ์›ํ–ˆ๋˜ ๋Œ€๋กœ ๋Œ“๊ธ€์ด ๋กœ๋”ฉ๋  ๋•Œ๋งˆ๋‹ค ์žฌ์‹คํ–‰๋˜์—ˆ๋‹ค. 1๋ฒˆ ํ•ด๊ฒฐ.

ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ๋–จ์–ด์กŒ๋‹ค. ์šฐ์„  console.log๊ฐ€ ์ˆ˜๋งŒ ๋ฒˆ ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ์ด๋ฅผ ์ง€์šฐ๋‹ˆ ์“ธ๋งŒํ•  ์ •๋„๋กœ ๋นจ๋ผ์กŒ๋‹ค. ์†๋„๋ฅผ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋งค๋ฒˆ ๋Œ“๊ธ€์˜ ์–ธ์–ด ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋Œ€์‹  ๋Œ“๊ธ€์„ display:none;์œผ๋กœ ๊ฐ€๋ฆฌ๊ณ  HTML ํƒœ๊ทธ๋กœ ํŒ์ • ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•ด๋†“๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ „์ฒด ๋Œ“๊ธ€์„ ๋ณด๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด display:none;์„ ์—†์• ๋„๋ก ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ๋‹ค์‹œ ์žฌ์‹คํ–‰ํ•˜๋ฉด ์•ž์„œ ๊ธฐ๋กํ•ด๋‘” ํƒœ๊ทธ๋งŒ์œผ๋กœ ํŒ๋‹จํ–ˆ๋‹ค. 2๋ฒˆ ํ•ด๊ฒฐ. (๋‚˜์ค‘์—์•ผ ์•Œ์•˜์ง€๋งŒ ์˜จ์ „ํ•œ ํ•ด๊ฒฐ์ด ์•ˆ ๋˜์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ annotation์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์†๋„๋ฅผ ๋ณ„๋กœ ๊ฐœ์„ ํ•˜์ง€ ์•Š์•˜๊ณ  ๋ฌธ์ œ๋งŒ ๋” ๋งŒ๋“ค์—ˆ๋‹ค. ๋ฒ ํƒ€ ๋ฒ„์ „ ์ค‘ 2๋ฒˆ YouTube์˜ SPA์Šค๋Ÿฌ์›€ ์ฐธ๊ณ .)

์ดํ›„ 3์ผ ๋™์•ˆ ํฌ๋กฌ ์ต์Šคํ…์…˜์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šฐ๋ฉด์„œ ํฌ๋กฌ ์ต์Šคํ…์…˜์˜ ํ‹€ ์•ˆ์— ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ด์‹ํ•˜๋Š” ์ž‘์—…์„ ํ–ˆ๋‹ค. ํฌ๋กฌ ์ต์Šคํ…์…˜์˜ ๊ณต์‹ ๋ฌธ์„œ, ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ, ๊ทธ๋ฆฌ๊ณ  ํฌ๋กฌ ์ต์Šคํ…์…˜์— ๋Œ€ํ•œ Udemy ๊ฐ•์˜๋ฅผ ์ฃผ๋กœ ์ฐธ๊ณ ํ–ˆ๋‹ค. 3๋ฒˆ ํ•ด๊ฒฐ.

์•ŒํŒŒ ๋ฒ„์ „ ์™„์„ฑ

์•ŒํŒŒ ๋ฒ„์ „์˜ ์‚ฌ์šฉ์ž ๋ฆฌ๋ทฐ. "์„ฑ๋Šฅ์€ ๋А๋ฆฌ์ง€๋งŒ ์ผ๋‹จ ๋™์ž‘ํ•˜๊ธด ํ•œ๋‹ค"๋Š” ์•ŒํŒŒ ๋ฒ„์ „์˜ ํŠน์ง•์„ ์ •ํ™•ํ•˜๊ฒŒ ๋ฌ˜์‚ฌํ•œ ๋ฆฌ๋ทฐ์ด๋‹ค.

์ด๋ ‡๊ฒŒ 2020๋…„ 3์›” 6์ผ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•ด์„œ 3์›” 11์ผ์— ์ฒซ ์•ŒํŒŒ ๋ฒ„์ „ ๊ฐœ๋ฐœ์ด ๋๋‚ฌ๋‹ค. ์†Œ๊ทœ๋ชจ์˜ ํ…Œ์Šคํ„ฐ๋“ค์—๊ฒŒ ์•ŒํŒŒ ๋ฒ„์ „์„ ๊ณต์œ ํ–ˆ์œผ๋ฉฐ ์•ฝ ์ผ์ฃผ์ผ ๋™์•ˆ ์‚ฌ์šฉ์ž ๋ฆฌ๋ทฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋ฉด์„œ ๊ฐœ์„ ์ ๊ณผ ๋ฒ„๊ทธ๋ฅผ ์—ฐ๊ตฌํ–ˆ๋‹ค.

์•ŒํŒŒ ๋ฒ„์ „ ๋‹น์‹œ ์Šคํฌ๋ฆฐ์ƒท. ์•ŒํŒŒ ๋ฒ„์ „์—๋Š” ํ•œ๊ธ€/์ „์ฒด ๋Œ“๊ธ€์„ ์ „ํ™˜ํ•˜๋Š” ๋ฒ„ํŠผ์ด ์žˆ์—ˆ๋‹ค.

2. ๋ฒ ํƒ€ ๋ฒ„์ „

์•ŒํŒŒ ๋ฒ„์ „์—์„œ ์—ฌ๋Ÿฌ ๋ฌธ์ œ์ ์„ ์ฐพ์•„ ๊ฐœ์„ ํ–ˆ๋‹ค.

โ‘  YouTube์˜ Lazy Loading ๋ฌธ์ œ

YouTube๋Š” ์ฝ˜ํ…์ธ ๋ฅผ Lazy Load ํ•œ๋‹ค. Lazy Loading์€ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ•œ ๋ฒˆ์— ๋ถˆ๋Ÿฌ์˜ค์ง€ ์•Š๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋‹ค, ์ •๋ณด๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ๋œปํ•œ๋‹ค. Lazy Loading์€ ์šฉ๋Ÿ‰์ด ํฐ ์ด๋ฏธ์ง€์— ์ฃผ๋กœ ์ ์šฉํ•˜์ง€๋งŒ, YouTube๋Š” ํ•œ ๋ฐœ ๋” ๋‚˜์•„๊ฐ€ HTML ์ž์ฒด๋ฅผ Lazy Load ํ–ˆ๋‹ค! (์ •ํ™•ํ•œ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊ฐœ๋ฐœ ๋‹น์‹œ ๊ทธ๋ ‡๊ฒŒ ํ™•์ธํ–ˆ๋‹ค.)

๋™์˜์ƒ ํŽ˜์ด์ง€์— ์ฒ˜์Œ ๋“ค์–ด์˜ฌ ๋•Œ ๋Œ“๊ธ€ ์ธํ„ฐํŽ˜์ด์Šค์— ํ•ด๋‹นํ•˜๋Š” HTML์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ“๊ธ€์„ ๋ณด๋ ค ์Šคํฌ๋กค์„ ์‹œ์ž‘ํ•˜๋ฉด ๊ทธ์ œ์„œ์•ผ ํšŒ์ƒ‰ ๋กœ๋”ฉ ์•„์ด์ฝ˜์ด ๋ณด์ด๋ฉด์„œ ๋Œ“๊ธ€ HTML์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. (์™œ? ๊ทธ๋ž˜์•ผ ๋Œ“๊ธ€ DB ์ฟผ๋ฆฌ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—. ์˜๋ฆฌํ•œ ํ•ด๊ฒฐ์ฑ… ๊ฐ™์•˜๋‹ค.) ์ฆ‰ ์ต์Šคํ…์…˜์ด ์‹คํ–‰๋˜๋Š” document_end ์‹œ์ ์—๋Š” ๋Œ“๊ธ€ HTML์ด ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ต์Šคํ…์…˜์ด ์˜ค๋ฅ˜๋ฅผ ๋‚ธ ๋’ค ๊ณง๋ฐ”๋กœ ์ข…๋ฃŒ๋˜์—ˆ๋‹ค.

YouTube์˜ Lazy Loading

ํ•ด๊ฒฐ์ฑ…

YouTube์˜ Lazy Loading์œผ๋กœ ๋Œ“๊ธ€์˜ ๋‚ด์šฉ์€ ๋ณด์ด์ง€ ์•Š๋”๋ผ๋„ ๋Œ“๊ธ€ ์ฐฝ ์ž์ฒด์— ํ•„ํ„ฐ ๋ฉ”๋‰ด๋ฅผ ์‚ฝ์ž…ํ•ด ๋†“์œผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ–ˆ๋‹ค. ๋‹คํ–‰ํžˆ๋„ ๋Œ“๊ธ€ ์ฐฝ์€ ๋„ํ๋จผํŠธ๊ฐ€ ๋กœ๋”ฉ์ด ๋œ ํ›„ (document_end ์‹œ์ ) ์ž ์‹œ ๋’ค ๊ณง๋ฐ”๋กœ ๋กœ๋”ฉ์ด ๋˜์—ˆ๋‹ค. ๋•Œ๋ฌธ์— ๋Œ“๊ธ€ HTML์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ 0.5์ดˆ๋งˆ๋‹ค ๋Œ“๊ธ€ ์ฐฝ์„ Xpath๋กœ ์žฌ๊ฒ€์ƒ‰ํ•˜๋„๋ก ์„ค์ •ํ–ˆ๋‹ค.

์•ž์„œ ์ผ์ •ํ•œ ์‹œ๊ฐ„๋งˆ๋‹ค ์žฌ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์€ ์—ฐ์‚ฐ ๋‚ญ๋น„๋ผ์„œ ๋ฐฐ์ œํ–ˆ๊ธฐ์— ์กฐ๊ธˆ ์˜์•„ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ์•ž์˜ ๊ฒฝ์šฐ๋Š” ์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ๋Œ“๊ธ€์„ ์žฌ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ์ด๊ธฐ์— ํƒ€์ด๋จธ๊ฐ€ ๋ฌดํ•œํžˆ ๋ฐ˜๋ณต๋˜๋Š” ๋ฐ˜๋ฉด ์ด ๊ฒฝ์šฐ๋Š” ๋Œ“๊ธ€ ์ฐฝ์ด ๋กœ๋”ฉ๋  ๋•Œ๊นŒ์ง€๋งŒ ์žฌ์‹œ๋„ํ•œ๋‹ค. ์‹ค์ œ๋กœ ์ด ํ•ด๊ฒฐ์ฑ…์€ 1~2์ฐจ๋ก€ ์žฌ์‹œ๋„์— ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋œ๋‹ค. ๊ทธ๋ณด๋‹ค ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด YouTube ์ž์ฒด๋ฅผ ๋ชป ๋ณผ ์ •๋„๋กœ ์ธํ„ฐ๋„ท์ด ๋А๋ฆฐ ๊ฒƒ์ด๋‹ค.

YouTube์˜ Lazy Loading ์šฐํšŒ

์ดํ›„ ๋ถ€์ฐจ์ ์ธ ๋ฒ„๊ทธ๋“ค์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ๋‹ค๋ฃจ์ง€ ๋ชปํ–ˆ๊ธฐ์— ํŠน์ • ํ•จ์ˆ˜๋ฅผ ์ผ์ • ์‹œ๊ฐ„ ๋’ค์— ํšจ์œจ์ ์œผ๋กœ ์žฌ์‹œ๋„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ž๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋™์˜์ƒ URL๋กœ ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ YouTube ๋™์˜์ƒ์œผ๋กœ ๊ณง๋ฐ”๋กœ ์ ‘๊ทผํ•˜๋ฉด YouTube๊ฐ€ ๋ฌดํ•œ ๋กœ๋”ฉ๋˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ๊ฐ„ํ˜น ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด์œ ๋ฅผ ์•Œ๊ณ  ๋ณด๋‹ˆ JS๋ฅผ ์ผ์ • ์‹œ๊ฐ„ ๋’ค์— ์žฌ์‹œ๋„ํ•˜๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ ์ผ์ • ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆฌ๋„๋ก ๋งŒ๋“ค๋ฉด์„œ ๋‹ค๋ฅธ JS์˜ ์‹คํ–‰์„ ๋ง‰์•˜๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ์ด ๋ฒ„๊ทธ๋Š” GitHub Issue #4์—์„œ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ v1.1.4์—์„œ ์ตœ์ข…์ ์œผ๋กœ ์ˆ˜์ •๋˜์—ˆ๋‹ค. (๋ฒ„๊ทธ๊ฐ€ 20๋ฒˆ์— ํ•œ๋ฒˆ ๊ผด๋กœ ๋‚˜ํƒ€๋‚ฌ๋‹ค. ์˜ค๋ฅ˜ ์ƒํ™ฉ์—์„œ ๋ฒ„๊ทธ๋ฅผ ์ฐพ๋Š” ๊ฒƒ๋ณด๋‹ค ์˜ค๋ฅ˜ ์ƒํ™ฉ ์ž์ฒด๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ์–ด๋ ค์› ๋‹ค.)

โ‘ก YouTube์˜ HTML ์ปดํฌ๋„ŒํŠธ ์žฌํ™œ์šฉ ๋ฌธ์ œ

ํฌ๋กฌ ์ต์Šคํ…์…˜์ด ์›น์‚ฌ์ดํŠธ์— ์ ‘๊ทผํ•˜์—ฌ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„  manifest.json์— ์ต์Šคํ…์…˜์ด ์ ‘๊ทผํ•  ์ฃผ์†Œ๋ฅผ ๋ชจ๋‘ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋™์˜์ƒ ํŽ˜์ด์ง€์—์„œ๋งŒ ์‹คํ–‰๋˜๋ฉด ๋  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๊ธฐ์— https://*.youtube.com/watch*๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ YouTube ํ™ˆ ํ™”๋ฉด์œผ๋กœ ๋“ค์–ด์™€ ๋™์˜์ƒ์œผ๋กœ ์ ‘๊ทผํ•  ๊ฒฝ์šฐ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

YouTube๋Š” HTML์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค์ˆ˜ ์žฌํ™œ์šฉํ•œ๋‹ค. YouTube ๋™์˜์ƒ์„ ๋ณด๋‹ค๊ฐ€ i ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฏธ๋‹ˆํ”Œ๋ ˆ์ด์–ด๋ฅผ ์‹คํ–‰ํ•ด๋ณธ ์ ์ด ์žˆ๋‹ค๋ฉด ๋ˆˆ์น˜์ฑŒ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. YouTube๋Š” ๋™์˜์ƒ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‹จ์ง€ โ‘  ๊ธฐ์กด ํ™”๋ฉด์„ ๊ฐ€๋ฆฌ๊ณ  โ‘ก ์ƒˆ ํŽ˜์ด์ง€๋ฅผ ์œ„์— ๋„์šด ๋’ค โ‘ข ์›น ์ฃผ์†Œ์ฐฝ์˜ ์ฃผ์†Œ๋งŒ ๋ฐ”๊พธ์–ด ๋†“๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๋‹น์—ฐํžˆ i ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฏธ๋‹ˆํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋„์šฐ๋ฉด ๋™์˜์ƒ์„ ์žฌ์ƒํ•˜๊ธฐ ์ „์— ๋ณธ ์ฐฝ์ด ๊ทธ๋Œ€๋กœ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๊ณ  manifest.json์— https://*.youtube.com/*๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ“๊ธ€ ์ฐฝ์ด ์—†๋Š” ํŽ˜์ด์ง€์—์„œ๋„ ์—‰๋šฑํ•œ ๊ณณ์— ํ•„ํ„ฐ ๋ฉ”๋‰ด๊ฐ€ ์‚ฝ์ž…๋˜์—ˆ๋‹ค.

์•„๋ฌด๋ž˜๋„ ํฌ๋กฌ ์ต์Šคํ…์…˜์€ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋”ฉ๋  ๋•Œ๋งŒ ๋„๋ฉ”์ธ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค.

๋˜ํ•œ ๋™์˜์ƒ ํŽ˜์ด์ง€์—์„œ ์ •์ƒ์ ์œผ๋กœ ํ•„ํ„ฐ ๋ฉ”๋‰ด๊ฐ€ ์‚ฝ์ž…๋˜์—ˆ๋”๋ผ๋„ ํ•„ํ„ฐ๋ฅผ ์ผ  ์ฑ„ ๋‹ค๋ฅธ ๋™์˜์ƒ์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋˜๋ฉด "์ด์ „ ๋™์˜์ƒ์˜ ๋Œ“๊ธ€์˜ ์–ธ์–ด"์— ๋งž์ถ”์–ด "ํ˜„์žฌ ๋™์˜์ƒ์˜ ๋Œ“๊ธ€"์„ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๊ฐ„ํ˜น ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด ๋˜ํ•œ YouTube์˜ ๋Œ“๊ธ€ ์ปดํฌ๋„ŒํŠธ ์žฌํ™œ์šฉ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ๋ฌธ์ œ ๊ฐ™์•˜๋‹ค. ์•„๊นŒ ์†๋„ ๊ฐœ์„ ์„ ์œ„ํ•ด ๋Œ“๊ธ€ HTML์— ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจํ•ด๋‘์—ˆ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ์ด ๊ฒฐ๊ณผ ๋˜ํ•œ ๋’ค์ฃฝ๋ฐ•์ฃฝ ์„ž์—ฌ ์˜ค๋ฅ˜๋ฅผ ๋” ํฌ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…

์ต์Šคํ…์…˜์ด ์›น์‚ฌ์ดํŠธ ์ ‘์†์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•œ๋‹ค. ์ ‘์†ํ•˜๋Š” ๋„๋ฉ”์ธ์ด YouTube๋ผ๋ฉด ํ•„ํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ์ค€๋น„๋ฅผ ํ•˜๊ณ , ๋„๋ฉ”์ธ์„ ๊ทธ๋•Œ๊ทธ๋•Œ ์ˆ˜๋™์œผ๋กœ ๊ฒ€์‚ฌํ•˜์—ฌ youtube.com/watch๋ผ๋ฉด ๊ทธ๋•Œ ํ•„ํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.

YouTube๋Š” SPA๋‹ค

์ด ๊ฒฝ์šฐ ์ต์Šคํ…์…˜์„ ์„ค์น˜ํ•  ๋•Œ "์‚ฌ์šฉ์ž์˜ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์„ ์ฝ์„ ์ˆ˜ ์žˆ์Œ" ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋‹ค. ์ด ๋•Œ๋ฌธ์— ํ•ด๋‹น ์ปค๋ฐ‹๊ณผ ์„ค์น˜ ์™„๋ฃŒ ํŽ˜์ด์ง€์— ์‚ฌ์šฉํ•˜๋Š” ๊ถŒํ•œ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…์„ ์ ์–ด๋‘์—ˆ๋‹ค. GitHub ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์€ ์™ธ๋ถ€๋กœ ์ „์†ก๋˜์ง€ ์•Š๋Š”๋‹ค.

๋˜ํ•œ ํ•„ํ„ฐ๋ฅผ ์ผ  ์ฑ„ ํŽ˜์ด์ง€๊ฐ€ ๋„˜์–ด๊ฐˆ ๋•Œ๋„ ์ •์ƒ์ ์œผ๋กœ ํ•„ํ„ฐ๋ง ๋  ์ˆ˜ ์žˆ๋„๋ก โ‘  ํŽ˜์ด์ง€๊ฐ€ ๋„˜์–ด๊ฐ€๋ฉด โ‘ก ๋ชจ๋“  ํ•„ํ„ฐ์™€ ํ•„ํ„ฐ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  โ‘ข ์ด๋™ํ•œ ํŽ˜์ด์ง€์˜ ๋Œ“๊ธ€์„ ์ƒˆ๋กœ ๋ถˆ๋Ÿฌ์™€ โ‘ฃ ๋Œ€๊ธฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด ์ฃผ์—ˆ๋‹ค.

๊ฐ€๋” ๋ฌธ์ œ๊ฐ€ ์žฌ๋ฐœํ•˜๊ธด ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ์˜คํžˆ๋ ค YouTube ์ž์ฒด์˜ ๋ฒ„๊ทธ์ธ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ์ด ์ต์Šคํ…์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ YouTube ์›น์˜ ๋Œ“๊ธ€ ์‹œ์Šคํ…œ์€ ์ž˜๋ชป๋œ ๋Œ“๊ธ€์ด ๋‚˜ํƒ€๋‚˜๊ฑฐ๋‚˜ ์˜์ƒ์˜ ๋Œ“๊ธ€์ด ์„œ๋กœ ์„ž์ด๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฒ„๊ทธ๋กœ ์•…๋ช…์ด ๋†’๋‹ค. ์ด ๊ฒฝ์šฐ ์ƒˆ๋กœ ๊ณ ์นจ์„ ํ•˜๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค.

โ‘ข ์†๋„์— ๊ด€ํ•œ ๋ฌธ์ œ

์•ŒํŒŒ ๋ฒ„์ „์—์„œ ํ•„ํ„ฐ ์„ฑ๋Šฅ์ด ๋ฌด์ฒ™ ์•ˆ ์ข‹์•˜๋‹ค๊ฐ€ console.log๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์œ ์˜๋ฏธํ•œ ์†๋„ ๊ฐœ์„ ์ด ์žˆ์—ˆ๋‹ค๊ณ  ํ–ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ“๊ธ€์„ ์ฝ๋Š” ์‹œ๊ฐ„๋ณด๋‹ค๋งŒ ํ•„ํ„ฐ ์†๋„๊ฐ€ ๋น ๋ฅด๋ฉด ์‚ฌ์šฉ์— ๋ฌด๋ฆฌ๊ฐ€ ์—†์—ˆ๊ธฐ์— ์†๋„ ๊ฐœ์„ ๋ณด๋‹ค ์œ„์˜ ๋ฌธ์ œ๋“ค์„ ๊ณ ์น˜๋Š” ๊ฒƒ์ด ์šฐ์„ ์ด์—ˆ๋Š”๋ฐ, ๋‚˜์ค‘์— ํ™•์ธํ•˜๋‹ˆ ์ด๋Ÿฐ ๋ฌธ์ œ์˜€๋‹ค.

for (var comment of commentList) {
  if (comment.id === '') {
    var commentString = comment.childNodes[1].childNodes[1].childNodes[3].childNodes[3].childNodes[1].innerText
    if (containsSelectedLang(commentString)) {
      comment.id = 'contains-SelectedLang'
    } else {
      comment.id = 'no-SelectedLang'
    }
  }
  if (comment.id === 'no-SelectedLang') {
    comment.style = 'display: none'
  }
}

commentString์˜ comment ์ฃผ์†Œ๋Š” YouTube์˜ ์—…๋ฐ์ดํŠธ๋กœ ๋ช‡ ์ฐจ๋ก€ ๋ฐ”๋€Œ์—ˆ๊ธฐ์— ํ˜„์žฌ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํ•ด๊ฒฐ์ฑ…

๋ฌธ์ œ์ ์€ ์ฒซ ์ค„์˜ var comment of commentList์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 80๊ฐœ์˜ ๋Œ“๊ธ€์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ๋งˆ์ณค๊ณ  20๊ฐœ์˜ ๋Œ“๊ธ€์„ ์ƒˆ๋กœ ๋กœ๋”ฉํ–ˆ๋‹ค๊ณ  ํ•  ๋•Œ ์œ„ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด 80๊ฐœ ๋Œ“๊ธ€๋„ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์™€ ์žฌ๊ฒ€์‚ฌํ•œ๋‹ค. ์–ด๋””๊นŒ์ง€ ๊ฒ€์‚ฌํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

var commentNum = 0
var shownCommentNum = 0
// ...
for (var i = commentNum; i < commentList.length; i++) {
  commentNum++
  CLFFooter.textContent = commentNum + ' comments analyzed, ' + shownCommentNum + ' comments shown.'
  var commentString = commentList[i].childNodes[2].childNodes[2].childNodes[3].childNodes[3].innerText
  if (!containsSelectedLang(commentString, StartCharset, EndCharset)) {
    commentList[i].style = 'display: none'
  } else {
    shownCommentNum++
  }
}

๋ฐฉ๊ธˆ ์ฝ”๋“œ์™€ ์•ฝ๊ฐ„์˜ ๋””ํ…Œ์ผ์ด ๋‹ค๋ฅด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋‹ค๋ฅธ ๋ถ€๋ถ„๋ณด๋‹ค ๋„ค ๋ฒˆ์งธ ์ค„์˜ for ๊ตฌ์กฐ ๋ณ€๊ฒฝ์ด ์ œ์ผ ์ค‘์š”ํ•˜๋‹ค.

๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ annotation์„ ์ด์šฉํ•œ ์†๋„ ๊ฐœ์„  ์ฝ”๋“œ๋Š” YouTube์—์„œ ๋™์˜์ƒ์„ ๋„˜๋‚˜๋“ค ๋•Œ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๋Š” ๋ฐ”๋žŒ์— ์ „๋ถ€ ์‚ญ์ œํ–ˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์†๋„๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ๋‚˜๋‹ˆ ๋ถˆํŽธํ•จ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ–ˆ๋‹ค.

HTML ๋ฒ„ํŠผ์˜ ์†๋„ ๋ฌธ์ œ

๋˜ํ•œ ์•ŒํŒŒ ๋ฒ„์ „์—์„œ๋Š” ๋ฒ„ํŠผ์„ ํ™œ์šฉํ–ˆ๋Š”๋ฐ, ์ด๋ฅผ HTML Select๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค. ์ด๋Š” ๋‹ค๊ตญ์–ด ์ง€์›์˜ ๊ธฐ๋ฐ˜์„ ๋งˆ๋ จํ•˜๊ธฐ ์œ„ํ•จ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฒ„ํŠผ์˜ ๋А๋ฆฐ ๋ฐ˜์‘ ์†๋„์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด์—ˆ๋‹ค. ๊ธฐ์กด์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์‹ค์ œ ์‹คํ–‰์ด ๋  ๋•Œ๊นŒ์ง€ ์•ฝ 0.2์ดˆ๊ฐ€๋Ÿ‰์˜ ์—ฐ์‚ฐ ์‹œ๊ฐ„์ด ์žˆ์—ˆ๋‹ค. ์ด ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ๋ฒ„ํŠผ์„ ์—ฐํƒ€ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐ˜๋ณต์ ์œผ๋กœ ํ•„ํ„ฐ๊ฐ€ ๊บผ์กŒ๋‹ค ์ผœ์ง€๋Š” ๋ฐ”๋žŒ์— YouTube๊ฐ€ ๋ฉˆ์ถ”๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. HTML Select๋ฅผ ํ™œ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์—ฐํƒ€๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง€๋ฉฐ 0.2์ดˆ ์•ˆ์— Select Value๋ฅผ ์—ฌ๋Ÿฌ ์ฐจ๋ก€ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ์–ด๋ ค์šฐ๋ฏ€๋กœ UI ์ ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์ œ์‹œํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

โ‘ฃ ๊ธ€์ž ํŒ๋ณ„์˜ ์‹ ๋ขฐ์„ฑ์— ๊ด€ํ•œ ๋ฌธ์ œ

์—„๋ฐ€ํ•˜๊ฒŒ ์ด์•ผ๊ธฐํ•  ๋•Œ ์ด ์ต์Šคํ…์…˜์€ ์–ธ์–ด ํŒ๋ณ„์ด ์•„๋‹Œ ๊ธ€์ž ํŒ๋ณ„์„ ์‚ฌ์šฉํ•œ๋‹ค. ํ•œ๊ธ€ ๋ฐ–์— ํŒ๋ณ„ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ๋‹จ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ ํƒ€ ๋ฒ„์ „์—์„œ ์œ ๋‹ˆ์ฝ”๋“œ ์˜์—ญ์œผ๋กœ ๊ธ€์ž ๊ตฌ๋ณ„์ด ์‰ฌ์šด CJK (ํ•œ์ž, ๊ฐ€๋‚˜, ํ•œ๊ธ€) ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์ •๋ง ์ค‘๊ตญ์ธ๊ณผ ์ผ๋ณธ์ธ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค๊ธฐ๋ณด๋‹ค๋Š” ํŒ๋ณ„ ์–ธ์–ด๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ทธ ํ™•์žฅ์„ฑ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•จ์ด์—ˆ๋‹ค.

๋˜ํ•œ "๊ธ€์ž ์ง‘ํ•ฉ ์ค‘ ํ•œ ๊ธ€์ž๋ผ๋„ ํฌํ•จํ•˜๋ฉด ํ†ต๊ณผ"๋ผ๋Š” ๊ทœ์น™์„ ์ ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธ€์ž ํŒ๋ณ„์— ์˜ค๋ฅ˜๊ฐ€ ์žฆ๊ฒŒ ๋ฐœ์ƒํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด...

I like the performance! This video is ์ตœ๊ณ !

...์™€ ๊ฐ™์€ ๋ฌธ์žฅ์€ "์˜์–ด"๋กœ ํŒ๋ณ„๋˜์–ด์•ผ ํ•˜๋‚˜, "ํ•œ๊ตญ์–ด"์™€ "์˜์–ด"๋กœ ๋™์‹œ์— ํŒ๋ณ„๋œ๋‹ค. ๋•Œ๋ฌธ์— ์ด๋ฆ„ ๋“ฑ์˜ ๊ณ ์œ ๋ช…์‚ฌ๊ฐ€ ์ง€์†์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ์ ๋‹นํ•˜๊ฒŒ ํ•„ํ„ฐ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ํ•œ๊ธ€ ๋ฌธ์žฅ์— ์˜๋‹จ์–ด ํ•œ ๊ธ€์ž๋ผ๋„ ํฌํ•จ๋˜๋ฉด ์˜์–ด๋กœ ํŒ๋ณ„๋˜๊ณ , ์ผ๋ณธ์–ด ๋ฌธ์žฅ์— ํ•œ์ž๊ฐ€ ํ•œ ๊ธ€์ž๋ผ๋„ ์žˆ์œผ๋ฉด ์ค‘๊ตญ์–ด๋กœ ํŒ๋ณ„๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…..?

์•„์ง ์™„๋ฒฝํ•˜๊ฒŒ ๊ณ ์น˜์ง€ ๋ชปํ–ˆ๋‹ค. ์ผ๋‹จ ๊ธ€์ž ํŒ๋ณ„์ด๋ผ๋Š” ํŠน์ง•์„ ๋ณด๋‹ค ๋ช…ํ™•ํžˆ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด v1.2์—์„œ๋Š” ์–ธ์–ด์˜ ์ด๋ฆ„์ด ์•„๋‹Œ ๊ธ€์ž์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •ํ•˜์˜€๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ๋ชจ๋“ˆ์„ ํƒ‘์žฌํ•  ๊ณ„ํš์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํฌ๋กฌ ์ต์Šคํ…์…˜์˜ ์ •์ฑ… ๋ฌธ์ œ๋กœ ์ด๋Ÿฐ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ง€๊ธˆ ์ฝ”๋“œ์˜ ์ƒ๋‹น ๋ถ€๋ถ„์„ ๋œฏ์–ด๊ณ ์ณ์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ ์ด๋ฅผ ์—ฐ๊ตฌํ•˜๋Š” ์ค‘์ด๋‹ค.

3. ์ •์‹ ๋ฒ„์ „

ํ•„ํ„ฐ ๊ทธ ์ž์ฒด์˜ ์„ฑ๋Šฅ์ด๋‚˜ ๊ธฐ๋Šฅ์˜ ๊ฐœ์„ ์€ ์—†์ง€๋งŒ ์ต์Šคํ…์…˜ ๋ถ€๋ถ„์—์„œ ์‚ฌ์šฉ์„ฑ์„ ๊ฐœ์„ ํ–ˆ๋‹ค. ์„ค์ • ์ฐฝ์„ ์ œ์ž‘ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์–ธ์–ด๋“ค์„ ๊ฐ์ถœ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์œผ๋ฉฐ ์„ค์น˜ ์งํ›„ ์—ด๋ฆด ๋žœ๋”ฉ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ๋ฒ„๊ทธ ์ œ๋ณด๋ฅผ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ์•ˆ๋‚ด๋ฌธ๋„ ์ œ์ž‘ํ•ด๋‘์—ˆ๋‹ค. ํ”„๋กœ๋ชจ์…˜ ์ด๋ฏธ์ง€๋„ ๋‹ค์‹œ ์ œ์ž‘ํ–ˆ๋‹ค.

๋ฌด์˜๋ฏธํ•œ ์ž‘์—…์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์˜ˆ์ƒ์™ธ๋กœ ํ›จ์”ฌ ๋งŽ์€ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ์–ด๋ชจ์œผ๋Š” ๊ธฐํŠนํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.

์˜ˆ์ „์— ์ž‘์€ ์‹คํ—˜์„ ํ•ด๋ณด์•˜๋Š”๋ฐ, ํ”„๋กœ๋ชจ์…˜ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์„ ๋•Œ์™€ ์—†์„ ๋•Œ ์œ ์ž… ๊ด€๊ฐ ์ˆ˜๋Š” ์•ฝ 4๋ฐฐ ์ •๋„ ์ฐจ์ด๊ฐ€ ๋‚ฌ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ํฌ๋กฌ ์ต์Šคํ…์…˜์„ ํŒŒ์ด์–ดํญ์Šค ์• ๋“œ์˜จ์œผ๋กœ ์ด์‹ํ–ˆ๋‹ค. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์ด์ „์— ์ž‘์„ฑํ•œ Porting a Chrome Extension to Firefox Add-on ๊ธ€์—์„œ ํ•œ ์ฐจ๋ก€ ๋‹ค๋ฃฌ ์ ์ด ์žˆ๋‹ค.

v1์— ๋Œ€ํ•œ ์ดํ‰

v1๊นŒ์ง€ ์ถœ์‹œ๋ฅผ ํ•˜๋ฉฐ ์—ผ๋‘์— ๋‘” ๊ฒƒ์€ ์•„๋ฌด ์ƒ๊ฐ ์—†์ด ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์ต์Šคํ…์…˜์ด ๋„์ค‘์— ๋ฒ„๊ทธ๋ฅผ ์ผ์œผ์ผœ์„œ ์˜คํžˆ๋ ค ์ต์Šคํ…์…˜์— ์‹ ๊ฒฝ์„ ์“ฐ๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด YouTube ๋ณด๋Š” ํฅ์ด ๋‹ค ๊นจ์ ธ๋ฒ„๋ฆฐ๋‹ค.

ํ•˜์ง€๋งŒ ์ง€๊ธˆ์˜ v1์€ ํฅ์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ƒฅ ์•„๋ฌด ์ƒ๊ฐ ์—†์ด ๋ง‰ ์จ๋„ ์ž˜ ์ž‘๋™ํ•œ๋‹ค. (It just all... works!)

๋ฒ ํƒ€ ๋ฒ„์ „๋ถ€ํ„ฐ ์‚ฌ์šฉํ•œ ์นœ๊ตฌ์˜ ๋ฆฌ๋ทฐ

๋”๋ถˆ์–ด์„œ ์ตœ์ดˆ ๋ชฉ์ ์ด์—ˆ๋˜ ํ•œ๊ตญ์–ด ๋Œ“๊ธ€ ์ฐพ๊ธฐ๋Š” ํ ์žก์„ ๊ณณ ์—†์ด ๊ฑฐ์˜ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค. ๊ฒฐ๊ตญ ํ•œ๊ตญ์–ด ๋Œ“๊ธ€์—๋Š” ํ•œ๊ธ€์ด ํ•œ ๊ธ€์ž๋ผ๋„ ๋“ค์–ด๊ฐˆ ํ…Œ๋‹ˆ๊นŒ.

์•ž์œผ๋กœ

v2๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋‹ค. v1์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์–ด์˜จ ํ”ผ๋“œ๋ฐฑ์€ "์Šคํƒ€์ผ์˜ ์ถ”๊ฐ€"์™€ "์–ธ์–ด ํŒ๋ณ„ ๊ฐœ์„ "์ด๋‹ค. ํฌ๋กฌ ์ต์Šคํ…์…˜์˜ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ํฌ๋กฌ ์ต์Šคํ…์…˜ ์ž์ฒด์—์„œ ์™ธ๋ถ€ ํŒŒ์ผ์ด๋‚˜ ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ๋ณต์žกํ•˜๋‹ค. npm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Webpack์ด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ƒ๋‹นํ•œ ๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ์žฌ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žฌ๋ฏธ์žˆ๋Š” ํ™œ์šฉ ๋ฐฉํ–ฅ์ด ๋– ์˜ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— v2๋ฅผ ์งฌ์งฌ์ด ์ œ์ž‘ํ•˜๊ณ  ์žˆ๋‹ค.

YouTube์—์„œ ๊ณ ์˜์ ์œผ๋กœ ํ•œ๊ธ€ ๋Œ“๊ธ€์„ ๋Œ“๊ธ€ ์ˆœ์œ„์—์„œ ๋‚ฎ์ถ”์–ด ํ•œ๊ตญ ์˜์ƒ์˜ ์™ธ๊ตญ์ธ์˜ ์œ ์ž… ๋น„์œจ์„ ์‹คํ—˜ํ•˜๋Š” ์ค‘์ด๋ผ๋Š” ์ด์•ผ๊ธฐ๋„ ๋‚˜์˜ค๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ๋Œ€ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ฌ๊ธฐ์„œ ๋๋‚  ๊ฒƒ ๊ฐ™์ง€ ์•Š๋‹ค.

๊ทธ๋ž˜์„œ ์ œ๋ชฉ์ด ํŒŒํŠธ 1์ด๋‹ค. ์–ธ์  ๊ฐ€ v2๊ฐ€ ์™„์„ฑ๋˜๊ฑฐ๋‚˜ ๋งˆ๋•…ํžˆ ๊ธฐ์–ต๋  ๋ฌด์Šจ ์ผ์ด ์ƒ๊ธด๋‹ค๋ฉด ์ด ๊ธ€์˜ ํŒŒํŠธ 2๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.