Embed

Embed

엠베드(Embed)는 YouTube, Vimeo 같은 외부 콘텐츠나 임의의 웹 콘텐츠를 페이지에 반응형으로 삽입하는 컴포넌트예요. 사용자가 상호작용하기 전까지 iframe을 로드하지 않아 페이지 성능을 지켜줘요.

출처: 문서

본문

When to Use

Responsive Aspect Ratio

엠베드는 내재적(intrinsic) 가로세로 비율을 사용해, 단일 지정 너비나 높이가 아니라 예상 비율에 따라 반응형으로 크기가 조절돼요.

Only Load After Interaction

iframe 엠베드를 직접 포함하면 페이지 로드 시 iframe 콘텐츠가 모두 자동으로 로드되어 페이지의 반응성이 크게 떨어질 수 있어요.

Network
          Embed Size
        
        
          
            
              Google Maps
            
            
              237kb
            
          
          
            
              YouTube
            
            
              380kb
            
          
          
            
              Vimeo
            
            
              81kb

Types

YouTube

엠베드는 YouTube 콘텐츠를 표시하는 데 사용할 수 있어요.

Vimeo

엠베드는 Vimeo 콘텐츠를 표시하는 데 사용할 수 있어요.

Custom Content

엠베드는 어떤 웹 콘텐츠든 표시할 수 있어요.

Embeds use an intrinsic aspect ratios to embed content responsively. Content will preserve their intrinsic aspect ratio for all browser sizes responsively

Variations

Aspect Ratio

엠베드는 square, 4:3, 16:9, 21:9 중 대체 가로세로 비율을 지정할 수 있어요.

Initializing

Specifying a URL

URL을 지정하면 그 URL의 도메인을 사용해 엠베드 소스와 자동으로 일치시켜요.

$('.url.example .ui.embed').embed();

Using Content IDs

Embed는 콘텐츠 ID에서 URL을 자동으로 생성하도록 설계됐어요. 이렇게 하면 사이트 백엔드가 의미 있는 콘텐츠 메타데이터를 저장하고 URL 생성에 신경 쓰지 않아도 돼요.

$('.content.example .ui.embed').embed();

Specifying Metadata

아이콘이나 플레이스홀더 이미지 같은 다른 설정은 메타데이터에 지정해 사이트의 프리셋을 덮어쓸 수 있어요.

$('.metadata.example .ui.embed').embed();

Specifying Programmatically

런타임에 settings 객체에서 엠베드 설정을 지정할 수도 있어요.

$('.custom.example .ui.embed').embed({
          source      : 'youtube',
          id          : 'O6Xo21L0ybE',
          alt         : 'A video about a waving bear',
          placeholder : '/images/bear-waving.jpg'
        });

Specifying New Sources

Embed는 사전 정의된 두 개의 엠베드 소스가 있으며 커스텀 소스로 확장할 수 있어요. 각 소스는 설정에 대한 기본 매개변수와 매핑, 템플릿 URL, 오버레이에 사용할 아이콘을 지정해요.

// built in
        $.fn.embed.settings.sources = {
          youtube: {
            name   : 'youtube',
            type   : 'video',
            icon   : 'video play',
            domain : 'youtube.com',
            url    : 'https://www.youtube.com/embed/{id}',
            parameters: function(settings) {
              return {
                autohide       : !settings.showUI,
                autoplay       : settings.autoplay,
                color          : settings.colors || undefined,
                hq             : settings.hd,
                jsapi          : settings.api,
                modestbranding : 1
              };
            }
          },
          vimeo: {
            name   : 'vimeo',
            type   : 'video',
            icon   : 'video play',
            domain : 'vimeo.com',
            url    : 'https://www.youtube.com/embed/{id}',
            parameters: function(settings) {
              return {
                api      : settings.api,
                autoplay : settings.autoplay,
                byline   : settings.showUI,
                color    : settings.colors || undefined,
                portrait : settings.showUI,
                title    : settings.showUI
              };
            }
          }
        };

Behaviors

다음 모든 행동은 다음 구문을 사용해 호출할 수 있어요:

.ui.your.element')
      .embed('behavior name', argumentOne, argumentTwo)
    ;
행동 설명
change(source, id, url) iframe을 새 콘텐츠 소스로 변경해요.
reset 엠베드를 제거하고 가능하면 플레이스홀더 콘텐츠를 보여줘요.
show 엠베드 콘텐츠를 보여줘요.
hide 엠베드 콘텐츠를 숨기고 플레이스홀더 콘텐츠를 보여줘요.
get id 현재 콘텐츠 ID를 반환해요.
get placeholder 플레이스홀더 이미지 URL을 반환해요.
get sources 소스 이름을 반환해요.
get type 소스 타입을 반환해요.
get url 모든 매개변수가 추가된 URL을 반환해요.
has placeholder 엠베드 콘텐츠에 플레이스홀더가 있는지 반환해요.
destroy 인스턴스를 파괴하고 모든 이벤트를 제거해요.

Embed Settings

비디오 동작을 구성하는 설정이에요.

설정 기본값 설명
icon false 플레이스홀더 콘텐츠에 사용할 아이콘을 지정해요.
source false 사용할 소스를 지정해요. 소스를 제공하지 않으면 지정된 url의 도메인에서 결정돼요.
url false 엠베드에 사용할 url을 지정해요.
id false 템플릿 URL에서 발견되는 {id} 값을 대체할 id 값을 지정해요.
placeholder false 플레이스홀더 이미지 경로를 지정해요.
alt false 플레이스홀더 이미지의 alt 속성 문자열을 지정해요.
parameters false iframe의 GET 매개변수에 추가할 key/value 쌍을 담은 객체를 지정해요.

Video Settings

비디오 동작을 구성하는 설정이에요.

설정 기본값 설명
autoplay auto 기본 설정 auto는 플레이스홀더가 지정될 때만 콘텐츠를 자동 재생해요. true/false로 설정하면 자동 재생을 강제해요.
color #444444 Vimeo 또는 YouTube에서 기본 크롬 색상을 지정해요.
url false 엠베드에 사용할 url을 지정해요.
hd true HD 콘텐츠를 선호할지 여부예요.
brandedUI false 타이틀 카드나 비디오 후 콜투액션 같은 네트워크 브랜드 UI를 표시할지 여부예요.

Callbacks

콜백은 특정 행동 이후 발생할 함수를 지정해요.

콜백 매개변수 컨텍스트 설명
onCreate url $module iframe이 생성될 때의 콜백이에요.
onDisplay $module iframe 콘텐츠가 표시될 때마다요.
onPlaceholderDisplay $module Embed가 DOM에서 제거되기 직전의 콜백이에요.
onEmbed parameters $module 모듈 매개변수가 결정될 때의 콜백이에요. 새 parameters 객체를 반환해 런타임에 매개변수를 조정할 수 있어요.

DOM Settings

DOM 설정은 이 모듈이 DOM과 어떻게 인터페이스할지 지정해요.

설정 기본값 설명
namespace embed 이벤트 네임스페이스예요.
selector { embed : '.embed', placeholder : '.placeholder', play : '.play' } 내부적으로 사용되는 DOM 선택자예요.
metadata { id : 'id', icon : 'icon', placeholder : 'placeholder', alt : 'alt', source : 'source', url : 'url' } 데이터를 저장하는 데 사용되는 HTML 데이터 속성이에요.
className { active : 'active', embed : 'embed' } 상태에 스타일을 연결하는 데 사용되는 클래스 이름이에요.
templates { iframe: function(url, parameters) {}, placeholder: function(image, icon, alt) {} } iframe과 플레이스홀더 HTML을 생성하는 템플릿이에요.
errors { noURL : 'No URL specified', method : 'The method you called is not defined' } 오류 메시지 설정이에요.

Debug Settings

디버그 설정은 콘솔에 대한 디버그 출력을 제어해요.

설정 기본값 설명
name Embed 디버그 로그에 사용되는 이름이에요.
silent false 모든 콘솔 출력을 조용히 만들어요.
debug false 콘솔에 표준 디버그 출력을 제공해요.
performance true 콘솔에 표준 디버그 출력을 제공해요.
verbose false 콘솔에 보조 디버그 출력을 제공해요.

더 알아보기 (Learn more)

엠베드로 페이지 성능을 유지하면서 외부 콘텐츠를 반응형으로 삽입할 수 있어요. 소스와 메타데이터를 활용해 다양한 콘텐츠 유형을 지원해 보세요. 관련된 표시 방식은 Modal 문서도 참고하세요.