IKKIM

๐Ÿ“ธ ์‚ฌ์ง„ ์ดฌ์˜ ๋ฐ ์ถœ๋ ฅ/์ „์†ก ๊ธฐ๋Šฅ ๊ณ ๋„ํ™”

์‚ฌ์ง„ ์ดฌ์˜ ์ฝ˜ํ…์ธ  ๋ฉ”์ธ ํ™”๋ฉด
์‚ฌ์ง„ ์ดฌ์˜ ์ฝ˜ํ…์ธ  ๋ฉ”์ธ ํ™”๋ฉด
์‚ฌ์ง„ ์ดฌ์˜ ํ›„ ๋ฉ”์ผ ์ „์†ก ํ™”๋ฉด
์‚ฌ์ง„ ์ดฌ์˜ ํ›„ ๋ฉ”์ผ ์ „์†ก ํ™”๋ฉด
์ดฌ์˜ ์‚ฌ์ง„ ์ „์†ก์šฉ ๋ฉ”์ผ ์ฃผ์†Œ ์ž…๋ ฅ ๋ชจ๋‹ฌ
์ดฌ์˜ ์‚ฌ์ง„ ์ „์†ก์šฉ ๋ฉ”์ผ ์ฃผ์†Œ ์ž…๋ ฅ ๋ชจ๋‹ฌ
์ดฌ์˜ ์‚ฌ์ง„ ์ „์†ก์šฉ ๋ฒˆํ˜ธ ์ž…๋ ฅ ๋ชจ๋‹ฌ
์ดฌ์˜ ์‚ฌ์ง„ ์ „์†ก์šฉ ๋ฒˆํ˜ธ ์ž…๋ ฅ ๋ชจ๋‹ฌ

๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • ์‚ฌ์ง„ ์ดฌ์˜, ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ์ถœ๋ ฅ, ์ด๋ฉ”์ผ ๋ฐ ๋ฌธ์ž ์ „์†ก ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๋Š” ์ฝ˜ํ…์ธ ์ž…๋‹ˆ๋‹ค.
  • ๋กœ๋ด‡์— ์žฅ์ฐฉ๋œ ์›น์บ ์œผ๋กœ ๊ณ ํ™”์งˆ ์‚ฌ์ง„์„ ์ดฌ์˜ํ•˜๊ณ , ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธ ๋ฐ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์กด์—๋Š” ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ์›น์บ  ์ด๋ฏธ์ง€๋ฅผ Base64๋กœ ๋ณ€ํ™˜ํ•ด ์†Œ์ผ“์œผ๋กœ ์ „๋‹ฌํ–ˆ์œผ๋‚˜,
    ๋ธŒ๋ผ์šฐ์ €์—์„œ ์นด๋ฉ”๋ผ ์ŠคํŠธ๋ฆผ์„ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ „ํ™˜ ๊ฒฐ๊ณผ ํ™”๋ฉด ๋Š๊น€์ด ์‚ฌ๋ผ์ง€๊ณ  UHD(4K) ๊ณ ํ•ด์ƒ๋„ ์ดฌ์˜์ด ๊ฐ€๋Šฅํ•ด์กŒ์œผ๋ฉฐ, CPU ์‚ฌ์šฉ๋Ÿ‰๋„ ํ•จ๊ป˜ ์ค„์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ดฌ์˜ ํ™”์งˆ๊ณผ ์ด๋ฏธ์ง€ ํšจ๊ณผ ๊ธฐ๋ณธ๊ฐ’์€ ๋กœ๋ด‡๋ณ„ ์„ค์ • ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•˜๋‹ค, ์ดํ›„ RCMS(Robot Contents Management System)์™€ ์—ฐ๋™ํ•ด
    ๊ด€๋ฆฌ์ž๊ฐ€ ํ™”๋ฉด์—์„œ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌผ๋ฆฌ ํ‚ค๋ณด๋“œ๊ฐ€ ์—†๋Š” ๋กœ๋ด‡ ํ™˜๊ฒฝ์ด๋ฏ€๋กœ, ๊ฐ€์ƒ ํ‚ค๋ณด๋“œ์™€ ์ˆซ์ž ํŒจ๋“œ๋ฅผ ์ œ๊ณตํ•ด ์ด๋ฉ”์ผ ์ฃผ์†Œ์™€ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿง‘โ€๐Ÿ’ป ์ฃผ์š” ๊ธฐ์—ฌ

  • ๋ฏธ๋“ค์›จ์–ด์—์„œ WebSocket์œผ๋กœ Base64 ์˜์ƒ์„ ๋ฐ›์•„์˜ค๋˜ ๋ฐฉ์‹์„ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด,
    MediaDevices API๋ฅผ ๋„์ž…ํ•ด ์‹ค์‹œ๊ฐ„ ์›น์บ  ์ŠคํŠธ๋ฆฌ๋ฐ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋กœ ๋ฆฌํŒฉํ„ฐ๋งํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ํ†ตํ•ด ์ดฌ์˜ ์„ฑ๋Šฅ๊ณผ ํ™”์งˆ์„ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • Base64 ์ธ์ฝ”๋”ฉ ๊ณผ์ •์„ ์ œ๊ฑฐํ•ด ์›๋ณธ ํ™”์งˆ์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ณ ,
      HD(720p) ํ•œ๊ณ„๋ฅผ ๋„˜์–ด UHD(4K) ํ•ด์ƒ๋„๊นŒ์ง€ ์ง€์›ํ•˜๋„๋ก ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋Š” 1080p๋กœ ์ƒํ•œ์„ ๋‘๊ณ  ์ดฌ์˜ ๊ฒฐ๊ณผ๋ฌผ๋งŒ ์›๋ณธ ํ•ด์ƒ๋„๋กœ ์บก์ฒ˜ํ•ด,
      ํ™”๋ฉด ๋Š๊น€ ์—†์ด ์ด์–ด์ง€๋ฉด์„œ๋„ ๊ฒฐ๊ณผ๋ฌผ์˜ ํ™”์งˆ์€ ์œ ์ง€๋˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์ธ์ฝ”๋”ฉ๊ณผ ์†Œ์ผ“ ์ „์†ก์ด ์‚ฌ๋ผ์ง€๋ฉด์„œ CPU ์‚ฌ์šฉ๋Ÿ‰์„ 20%p ์ ˆ๊ฐํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์ „์†ก๋Ÿ‰์„ ์ค„์˜€์Šต๋‹ˆ๋‹ค.
  • ์ƒํ•˜ ๋ฐ ์ขŒ์šฐ ๋ฐ˜์ „ ํšจ๊ณผ๋ฅผ ํ™”๋ฉด ํ‘œ์‹œ์™€ ์ €์žฅ๋ณธ์— ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ถ„๋ฆฌ ์ฒ˜๋ฆฌํ•˜์—ฌ,
    ์‹ค์‹œ๊ฐ„ ์˜์ƒ์— ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์กฐ์ž‘ ์ฃผ์ฒด๋ฅผ ๋‚˜๋ˆ„์–ด, ๊ด€๋ฆฌ์ž๋Š” ์ดฌ์˜ ํ™”์งˆ๊ณผ ๋ฐ˜์ „ ๊ธฐ๋ณธ๊ฐ’, ๋…ธ์ถœํ•  ์•ก์ž ํ”„๋ ˆ์ž„ ๋ชฉ๋ก์„ ์ง€์ •ํ•˜๊ณ 
    ์‚ฌ์šฉ์ž๋Š” ์ดฌ์˜ ํ™”๋ฉด์—์„œ ์ œ๊ณต๋œ ํ”„๋ ˆ์ž„ ์ค‘ ์„ ํƒํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    ํ˜„์žฅ๋งˆ๋‹ค ์นด๋ฉ”๋ผ ์„ค์น˜ ๋ฐฉํ–ฅ๊ณผ ์šด์˜ ๋ฐฉ์นจ์ด ๋‹ฌ๋ผ, ๊ฐœ๋ฐœ์ž ์ˆ˜์ • ์—†์ด ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ถ„๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ดฌ์˜๋œ ์ด๋ฏธ์ง€์˜ ํ”„๋ฆฐํ„ฐ ์ถœ๋ ฅ, ์ด๋ฉ”์ผ ๋ฐ MMS ์ „์†ก์„
    ๋ฏธ๋“ค์›จ์–ด ๋ช…๋ น๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ทœ๊ฒฉ์— ๋งž์ถฐ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์—ฐ๋™ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋ฌผ๋ฆฌ ํ‚ค๋ณด๋“œ๊ฐ€ ์—†๋Š” ํ™˜๊ฒฝ์—์„œ ์ด๋ฉ”์ผ ์ฃผ์†Œ์™€ ์—ฐ๋ฝ์ฒ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•ด
    ํ„ฐ์น˜ ๊ธฐ๋ฐ˜ ๊ฐ€์ƒ ํ‚ค๋ณด๋“œ์™€ ์ˆซ์ž ํŒจ๋“œ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ”ง ๊ธฐ์ˆ  ์„ ํƒ ๋ฐ ์„ค๊ณ„ ๊ณ ๋ฏผ

๋ฌธ์ œ ์ƒํ™ฉ

  • ๊ธฐ์กด ๋ฐฉ์‹์€ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ์›น์บ ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์บก์ฒ˜ํ•ด Base64 ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค ์†Œ์ผ“์œผ๋กœ ์ „์†กํ•˜๊ณ ,
    ํ”„๋ก ํŠธ๊ฐ€ ๊ทธ ๋ฌธ์ž์—ด์„ ๋ฐ›์•„ ํ™”๋ฉด์— ๊ทธ๋ฆฌ๋Š” ๊ตฌ์กฐ์˜€์Šต๋‹ˆ๋‹ค.
  • ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์œ„ํ•ด ์ดˆ๋‹น ์ˆ˜์‹ญ ๋ฒˆ ์ธ์ฝ”๋”ฉ๊ณผ ์ „์†ก์ด ๋ฐ˜๋ณต๋๊ณ , ํ™”๋ฉด์ด ๋Š๊ฒจ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.
  • Base64๋Š” ์›๋ณธ ๋Œ€๋น„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ปค์ง€๊ธฐ ๋•Œ๋ฌธ์— ํ•ด์ƒ๋„๋ฅผ ์˜ฌ๋ฆด์ˆ˜๋ก ๋ถ€๋‹ด์ด ์ปค์ ธ,
    HD(720p)๋ฅผ ๋„˜๋Š” ํ•ด์ƒ๋„๋ฅผ ์ง€์›ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์นด๋ฉ”๋ผ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ค‘๊ฐ„ ๋ณ€ํ™˜ ๋‹จ๊ณ„๋ฅผ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.
    MediaDevices API๋กœ ๋ฐ›์€ ์ŠคํŠธ๋ฆผ์„ <video>์— ์—ฐ๊ฒฐํ•ด ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ทธ๋Œ€๋กœ ํ‘œ์‹œํ•˜๊ฒŒ ํ•˜๊ณ ,
    ์ดฌ์˜ ์‹œ์ ์—๋งŒ canvas๋กœ ํ”„๋ ˆ์ž„์„ ์บก์ฒ˜ํ•˜๋„๋ก ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค.
  • ์ธ์ฝ”๋”ฉ๊ณผ ์ „์†ก์ด ํ†ต์งธ๋กœ ์‚ฌ๋ผ์ง€๋ฉด์„œ ํ™”๋ฉด ๋Š๊น€์ด ํ•ด์†Œ๋˜๊ณ  CPU ์‚ฌ์šฉ๋Ÿ‰์ด 20%p ์ค„์—ˆ์Šต๋‹ˆ๋‹ค.
    ์ž‘์—…๊ด€๋ฆฌ์ž์™€ ๋กœ๋ด‡ ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด๋กœ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋กœ ํ•ด์ƒ๋„๋ฅผ ์šฉ๋„์— ๋”ฐ๋ผ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
    ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ์„ 4K๋กœ ๋Œ๋ ค๋ณด๋‹ˆ ์ฒด๊ฐ ํ™”์งˆ ์ฐจ์ด์— ๋น„ํ•ด ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ๊ฐ€ ์ปค์„œ,
    ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋Š” 1080p๋กœ ์ƒํ•œ์„ ๋‘๊ณ  ์ดฌ์˜ ๊ฒฐ๊ณผ๋ฌผ๋งŒ ์›๋ณธ ํ•ด์ƒ๋„๋กœ ์บก์ฒ˜ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์ „ ํšจ๊ณผ๋ฅผ ๋‘ ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋ˆˆ ์ด์œ 

  • ์‹ค์‹œ๊ฐ„ ์˜์ƒ๊ณผ ์ดฌ์˜ ํ›„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋Š” CSS transform, ์ €์žฅ๋˜๋Š” ์ด๋ฏธ์ง€๋Š” canvas transform์œผ๋กœ
    ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ์€ CSS๋กœ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
    ์‹ค์‹œ๊ฐ„ ์˜์ƒ์— canvas ์—ฐ์‚ฐ์„ ๊ฑธ๋ฉด ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ํ”ฝ์…€ ์ฒ˜๋ฆฌ๊ฐ€ ๋“ค์–ด๊ฐ€์ง€๋งŒ,
    CSS๋Š” ํ•ฉ์„ฑ ๋‹จ๊ณ„์—์„œ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ ๋ถ€๋‹ด์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฐ˜๋ฉด ์ €์žฅ ํŒŒ์ผ์€ ์‹ค์ œ ํ”ฝ์…€์ด ๋’ค์ง‘ํ˜€์•ผ ํ•˜๋ฏ€๋กœ canvas transform์œผ๋กœ ๊ทธ๋ ธ๊ณ ,
    save()์™€ restore()๋กœ ๊ฐ์‹ธ ๋ณ€ํ™˜ ์ƒํƒœ๊ฐ€ ๋‹ค์Œ ์ดฌ์˜์— ๋ˆ„์ ๋˜์ง€ ์•Š๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.