
๐ธ ์ฌ์ง ์ดฌ์ ๋ฐ ์ถ๋ ฅ/์ ์ก ๊ธฐ๋ฅ ๊ณ ๋ํ
- ํ๋ก์ ํธ ์๊ฐ: ์ฌ์ง ์ดฌ์ ์ฝํ
์ธ ์ ํ์ง ๊ฐ์ , ์ฑ๋ฅ ์ต์ ํ๋ฅผ ๋ฌ์ฑํ ํ๋ก์ ํธ
- ์์ธ: Base64 ๊ธฐ๋ฐ ์ด๋ฏธ์ง ์ ์ก ๋ฐฉ์์์, MediaDevices API๋ฅผ ํ์ฉํ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์ ์ฉ์ ํตํ ๊ฐ์
- Tech:Base64MediaDevices APIWebSocketcanvas
- ์งํ ๊ธฐ๊ฐ: 2021-01-11 ~ 2021-06-22
- ์์: ํจ์ฒ๋ก๋ด
์ฌ์ง ์ดฌ์ ์ฝํ
์ธ ๋ฉ์ธ ํ๋ฉด์ฌ์ง ์ดฌ์ ํ ๋ฉ์ผ ์ ์ก ํ๋ฉด์ดฌ์ ์ฌ์ง ์ ์ก์ฉ ๋ฉ์ผ ์ฃผ์ ์
๋ ฅ ๋ชจ๋ฌ์ดฌ์ ์ฌ์ง ์ ์ก์ฉ ๋ฒํธ ์
๋ ฅ ๋ชจ๋ฌ
๐ ํ๋ก์ ํธ ๊ฐ์
- ์ฌ์ง ์ดฌ์, ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ์ถ๋ ฅ, ์ด๋ฉ์ผ ๋ฐ ๋ฌธ์ ์ ์ก ๊ธฐ๋ฅ์ ํฌํจํ๋ ์ฝํ
์ธ ์
๋๋ค.
- ๋ก๋ด์ ์ฅ์ฐฉ๋ ์น์บ ์ผ๋ก ๊ณ ํ์ง ์ฌ์ง์ ์ดฌ์ํ๊ณ , ์ค์๊ฐ์ผ๋ก ํ์ธ ๋ฐ ๊ณต์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๊ธฐ์กด์๋ ๋ฏธ๋ค์จ์ด๊ฐ ์น์บ ์ด๋ฏธ์ง๋ฅผ 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()๋ก ๊ฐ์ธ ๋ณํ ์ํ๊ฐ ๋ค์ ์ดฌ์์ ๋์ ๋์ง ์๋๋ก ํ์ต๋๋ค.