์ฐ๋ฆฌ๋ ๋ชจ๋ ํํธ๋๊ฐ ์์ ๋ง์ ์ ํ์ ๋ง๋ค ์ ์๋๋ก ํ๋ ์ฌ๋ฌ ํตํฉ ๊ตฌ์ฑ ์์๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค. Ivideon ์ฌ์ฉ์์ ๊ฐ์ธ ๊ณ์ ์ ๋ํ ๋์์ ๊ฐ๋ฐํ๊ธฐ ์ํ ๊ฐ๋ฐฉํ API, Ivideon ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๊ธฐ๋ฅ์ ์ผ๋ก ๋๋ฑํ ์์ ํ ์๋ฃจ์
์ ๊ฐ๋ฐํ ์ ์๋ ๋ชจ๋ฐ์ผ SDK ์น SDK๋ก.
์ฐ๋ฆฌ๋ ์ต๊ทผ ํ๋ซํผ์ ๋์ฑ ์ ์ฐํ๊ณ ๊ฐ๋ฐ์ ์นํ์ ์ผ๋ก ๋ง๋ค์ด์ค ์๋ก์ด ๋ฌธ์์ ๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํฌํจ๋ ๊ฐ์ ๋ ์น SDK๋ฅผ ์ถ์ํ์ต๋๋ค. ์ด์ ์ SDK์ ์ด๋ฏธ ์ต์ํ๋ค๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ์ ์์์ฐจ๋ฆด ์ ์์ ๊ฒ์ ๋๋ค. ์ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ API ๊ธฐ๋ฅ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ํํ ์๊ฐ ์ ๊ณต๋ฉ๋๋ค.
๋ค๋ฅธ ๋ชจ๋ ๋ถ๋ค์ ์ํด ์ผ์์ ์ธ ์ฌ๋ก์ Ivideon API/SDK๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ ํตํฉ์ ๋ํด ์์ธํ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
์น SDK: ์๋ก์ด ๊ธฐ๋ฅ
Ivideon์ ๋จ์ํ ํด๋ผ์ฐ๋ ์์ ๊ฐ์ ์๋น์ค ๋ฐ ์ฅ๋น ๊ณต๊ธ์ ์ฒด๊ฐ ์๋๋๋ค. ์นด๋ฉ๋ผ ํ์จ์ด๋ถํฐ ์๋น์ค ์น ๋ฒ์ ๊น์ง ์ ์ฒด ๊ฐ๋ฐ ์ฃผ๊ธฐ๊ฐ Ivideon ๋ด์์ ์ํ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ SDK ์ ์, LibVLC ๊ฐ์ , WebRTC ๊ตฌํ, ๋น๋์ค ๋ถ์ ์ํ, ํํธ๋๋ฅผ ์ํ ํ์ดํธ ๋ผ๋ฒจ ์ง์ ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ ๋ฐ SDK์ฉ ๋ฐ๋ชจ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, ์ฐ๋ฆฌ๋ ํํธ๋๊ฐ ์์ฒด ์๋ฃจ์ ์ ๋ง๋ค ์ ์๋ ํ๋ซํผ์ด ๋์์ต๋๋ค. ์ด์ ์น์ฉ SDK๊ฐ ๋๋์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋์์ผ๋ฉฐ ๋ ๋ง์ ํตํฉ ์๋ฃจ์ ์ด ์ ๊ณต๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ทํ์ ํธ์๋ฅผ ์ํด ์ฅ์น ๊ด๋ฆฌ๋ฅผ ์ฝ๊ฒ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ "๋น ๋ฅธ ์์" ์น์ ์ ์์ ๋ถ๋ถ์ ์ถ๊ฐํ์ต๋๋ค.
์๋ ์ฝ๋๋ Ivideon ์น SDK์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ๋ณด์ฌ์ค๋๋ค. ํ๋ ์ด์ด๊ฐ ํ์ด์ง์ ์ถ๊ฐ๋๊ณ ๊ณต์ฉ ์นด๋ฉ๋ผ์ฉ ๋น๋์ค๊ฐ ์ฌ์๋๊ธฐ ์์ํฉ๋๋ค.
<!DOCTYPE html>
<html>
<head>
<title>Ivideon WEB SDK example</title>
<link rel="stylesheet" href="/ko/vendor/ivideon-web-sdk-1.0.0/iv-standalone-web-sdk.css" />
<script src="/vendor/ivideon-web-sdk-1.0.0/iv-standalone-web-sdk.js"></script>
</head>
<body>
<div class="myapp-player-container" style="max-width: 640px;"></div>
<script>
_ivideon.sdk.init({
rootUrl: 'https://<your-domain>/vendor/ivideon-web-sdk-1.0.0/',
i18nOptions: {
availableLanguages: [
'de',
'en',
'fr',
],
language: 'en',
}
}).then(function (sdk) {
sdk.configureWithCloudApiAuthResponse({
api_host: 'openapi-alpha.ivideon.com',
access_token: 'public',
});
// `id` used below is not an actual camera ID. Replace it with your own.
var camera = sdk.createCamera({
id: '100-481adxa07s5cgd974306aff47e62b639:65536',
cameraName: 'Demo Cam',
imageWidth: 800,
imageHeight: 450,
soundEnabled: true,
});
var player = sdk.createPlayer({
container: '.myapp-player-container',
camera: camera,
defaultControls: true,
playerEngine: sdk.playerEngines.PLAYER_ENGINE__WEBRTC,
});
player.playLive();
}, function (error) {
console.error(error);
});
</script>
</body>
</html>
๋ํ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
- ์ผํ์ฑ ๋น๋์ค ๋งํฌ ์ง์;
- ๋น๋์ค ํ์ง๊ณผ ์์นด์ด๋ธ ์ฌ์ ์๋๋ฅผ ์ ์ดํ๊ธฐ ์ํด ๋ฒํผ์ด ํ๋ ์ด์ด์ ์ถ๊ฐ๋์์ต๋๋ค.
- ํ๋ ์ด์ด ์ปจํธ๋กค์ ํ ๋ฒ์ ํ๋์ฉ ์ผ๊ณ ๋ ์ ์์ต๋๋ค(์ด์ ์๋ ์๋ ๋ชจ๋ ๊ฒ์ ์ผ๊ฑฐ๋ ์จ๊ธธ ์ ์์์ต๋๋ค).
- ์นด๋ฉ๋ผ ์๋ฆฌ๋ฅผ ๋๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์
UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป Ivideon ์น SDK๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์ฐํ๊ธฐ ์ํด ๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํจ๊ป ๋ฐฐํฌํฉ๋๋ค. ์ด์ Ivideon ์น SDK๊ฐ ReactJS์ ์ด๋ป๊ฒ ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์จ๋ผ์ธ์ผ๋ก ๋ฐ๋ชจ ์ ์ฒญ ๊ฐ๋ฅ
๋ฐ๋ชจ๋ฅผ ๋ณด๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์น SDK์ ์์ค ์ฝ๋๋ฅผ ๊ฒ์ฌํ๊ณ ์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ค ์ฝ๋๊ฐ ์ฌ์ฉ์ ์์ ์ ํด๋นํ๋์ง ๋ณด์ฌ์ค ์ ์์ต๋๋ค.
๋ค์ํ ์์ง์ ์ฌ์ฉํ๋ ์ฌ๋ฌ ํ๋ ์ด์ด๋ฅผ ํ์ด์ง์ ์ถ๊ฐํ๊ณ ์ฑ๋ฅ์ ๋น๊ตํ์ธ์.
ํ๋์ ํ์๋ผ์ธ์์ ์ฌ๋ฌ ํ๋ ์ด์ด๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ฉด ์ฌ๋ฌ ์นด๋ฉ๋ผ์ ๋
นํ ์์นด์ด๋ธ๊ฐ ๋์์ ํ์๋ฉ๋๋ค.
๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์
์ API ์ก์ธ์ค ๋งค๊ฐ๋ณ์, ์นด๋ฉ๋ผ ๋งค๊ฐ๋ณ์ ๋ฑ ๋ธ๋ผ์ฐ์ ๋ก์ปฌ ์ ์ฅ์์ ๋ง์ง๋ง ์ธ์
์ค์ ์ ๊ธฐ์ตํฉ๋๋ค. ๋ค์ ๋ก๊ทธ์ธํ๋ฉด ๋ณต์๋ฉ๋๋ค.
๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ ์์ค ๋งต์์ ์ปดํ์ผ๋์์ต๋๋ค. ๋ฐ๋ชจ ์ฝ๋๋ ๋๋ฒ๊ฑฐ์์ ์ง์ ๋ณผ ์ ์์ต๋๋ค.
ํตํฉ์ ์
์ ๋์ฌ๊ฐ "์ธ ํ๋ก๊ทธ๋จ ๊ทธ๋ฃน
์ด์ ๊ฑฐ์ ๋ชจ๋ ์คํค ๋ฆฌ์กฐํธ์๋ ์ฌ๋กํ ์ํฉ์ ๋ณด์ฌ์ฃผ๋ ์นด๋ฉ๋ผ๊ฐ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํด ์๊ฒฉ์ผ๋ก ์นด๋ฉ๋ผ๋ฅผ ๋ณด๊ธฐ ์ํด ์ฐ๋ฆฌ๋ SDK์ ํจ๊ป iSKI๋ฅผ ์ ๊ณตํ์ผ๋ฉฐ ์ด์ ๋ชจ๋ ์ฌ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํด ์ผ๊ธฐ ์๋ณด, ๋ ๋๊ป, ์ด๋ ค ์๋ ๋ฆฌํํธ ์๋ฟ๋ง ์๋๋ผ ๊ฒฝ์ฌ๋ฉด์์ ์ง์ ์์๋ ๋ณผ ์ ์์ต๋๋ค.
๋ค์ํ ์ค๋งํธ ํ ์์คํ
. Ivideon ์์คํ
๊ณผ์ ํตํฉ ๋๋ถ์ ์ด๋ฌํ ์๋ฃจ์
์ ๊ฐ์ ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋น๋์ค ๋
นํ๋ฌผ์ ๊ฐ์ฅ ์์ ํ ๋ฐฉ๋ฒ์ผ๋ก ํด๋ผ์ฐ๋ ์์นด์ด๋ธ์ ์ ์ฅํจ์ผ๋ก์จ ๊ฐ์ ๋ณด์์ ๋ ๋ง์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ ์ํ์ ๋ํด ์ค์๊ฐ์ผ๋ก ์๋ฆฌ๊ณ ๋น์ ์์ ์ธ ์ํฉ์ ์ ์ํ๊ฒ ๋์ํ ์ ์๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์
์ ํตํด ๋ชจ๋ ์ ์ด๊ฐ ์ํ๋ฉ๋๋ค.
ํ๋งค์์ ์ปจ์คํดํธ์ ์์
์ ์ํ ๋ถ์ ์์คํ
์๋ฒฝํ ์๋น์ค ์๋ฃจ์
. ํด๋ผ์ฐ๋ ์์ ๊ฐ์ ์์คํ
์ ์ด์์๊ฐ ๊ฒ์ฆํ ๋ฐ์ดํฐ๋ฅผ ์์นด์ด๋ธ์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ธฐ๋กํ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋ ์จ๋ผ์ธ์ผ๋ก ๊ฐ์ธ ๊ณ์ ์ ๋ฐ์๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ๊ถ๊ทน์ ์ผ๋ก ํน์ ์ด๋ฒคํธ(ํ๋งค ํ๋กํ ์ฝ ์๋ฐ ๋๋ ๋
ผ๋์ ์ฌ์ง๊ฐ ์๋ ์ฌ๊ฑด)๊ฐ ํฌํจ๋ ์งง์ ๋จํธ์ ๋ฐ์ต๋๋ค. ์น ์ธํฐํ์ด์ค์์ ๊ทธ๋ ์๋ฐ ์ฌํญ์ ๋ํ ๋ฐ์ดํฐ์ ์ฝ์
๋ ๋น๋์ค๋ฅผ ๋ด
๋๋ค. ์ ์ฒด ๋ฐ์ดํฐ ๋ฐฐ์ด์ ์ค์ํ ์ด๋ฒคํธ์ ์ผ๋ฐ ์ด๋ฒคํธ์ ๋ ๊ฐ์ง ๋ฒ์ฃผ๋ก ๋๋ฉ๋๋ค. ์ผ๋ฐ ์๋ฐ์ฌํญ์ ํ์ฌ ๋ค์๋ ์จ๋ผ์ธ ๊ณ์ ์ ๋ํ๋๋ฉฐ, ์ฌ๊ฐํ ์๋ฐ์ฌํญ์ ๋ํด์๋ SMS๋ ๋ฉ์ ์ ๋ฅผ ํตํด ์ ๊ณ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์ถ์ฒ : habr.com