AMP

์„œ์‹ ์ง€์ • ๊ฐ€์ด๋“œ & ํŠœํ† ๋ฆฌ์–ผ

๊ฐ€์ด๋“œ ๋ฐ ํŠœํ† ๋ฆฌ์–ผ์€ ๋งˆํฌ๋‹ค์šด์— ์ถ”๊ฐ€ ํ”„๋ก ํŠธ๋งคํ„ฐ ๋ฐ ์ˆ์ฝ”๋“œ ์„œ์‹ ์ง€์ •๊ณผ ํ•จ๊ป˜ ์ œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์„œ ์œ„์น˜

amp.dev ์ฝ˜ํ…์ธ ๋Š” amp.dev ๋ฐ AMPHTML์˜ ์ €์žฅ์†Œ ๋‘ ๊ณณ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ์˜ ๋ชจ๋“  ์ฐธ์กฐ ๋ฌธ์„œ๋Š” AMPHTML์˜ 'builtins' ๋˜๋Š” 'extensions'์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

AMPHTML์—์„œ amp.dev๋กœ ๊ฐ€์ ธ์˜จ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ๋ฌธ์„œ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์„œ๋Š” ๋‹ค์Œ ํŒŒ์ผ์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. amp.dev ์ €์žฅ์†Œ์—์„œ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ›„์† ๋นŒ๋“œ์— ๋ฎ์–ด์“ฐ๊ธฐ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

ํ”„๋ก ํŠธ๋งคํ„ฐ

ํ”„๋ก ํŠธ๋งคํ„ฐ๋Š” ๊ฐ ๊ฐ€์ด๋“œ ๋ฐ ํŠœํ† ๋ฆฌ์–ผ์˜ ์ตœ์ƒ๋‹จ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ:

$title: Include Custom JavaScript in AMP Pages
$order: 7
formats:
  - websites
author: CrystalOnScript
contributors:
  - fstanis
description: For web experiences requiring a high amount of customization AMP has created amp-script, a component that allows the use of arbitrary JavaScript on your AMP page without affecting the page's overall performance.
$title ์ฝ˜ํ…์ธ  ๋ชฉ์ฐจ์— ํ‘œ์‹œ๋˜๋Š” ๋ฌธ์„œ์˜ ์ œ๋ชฉ์ž…๋‹ˆ๋‹ค. "AMP" ๋ฐ ๊ธฐํƒ€ ๊ณ ์œ  ๋ช…์‚ฌ๋ฅผ ์ œ์™ธํ•œ ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. `and`๋ผ๋Š” ๋‹จ์–ด ๋Œ€์‹  ์•ฐํผ์ƒŒ๋“œ `&` ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
$order ๋ฌธ์„œ์˜ ์ฝ˜ํ…์ธ  ๋ชฉ์ฐจ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ์œ„์น˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์— ํ‘œ์‹œ๋˜๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ๋ฌธ์„œ์˜ `$order`๋ฅผ ํŽธ์ง‘ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
formats ๋ฌธ์„œ์™€ ๊ด€๋ จ๋œ AMP ๊ฒฝํ—˜์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์„œ๊ฐ€ AMP ์›น์‚ฌ์ดํŠธ ๋ฐ AMP ์Šคํ† ๋ฆฌ์™€ ๊ด€๋ จ๋˜์—ˆ์œผ๋‚˜ AMP ๊ด‘๊ณ  ๋˜๋Š” AMP ์ด๋ฉ”์ผ๊ณผ๋Š” ๊ด€๋ จ์ด ์—†์„ ์‹œ Frontmatter๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค: ```yaml formats: - websites - stories ```
author ์ž‘์„ฑ์ž๋Š” ์—ฌ๋Ÿฌ๋ถ„์ž…๋‹ˆ๋‹ค! GitHub ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์„ธ์š”.
contributors ๋ฌธ์„œ ๊ธฐ์—ฌ์ž ๋ชฉ๋ก์ด ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค. ์ด ํ•„๋“œ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.
description ๊ฐ€์ด๋“œ ๋˜๋Š” ํŠœํ† ๋ฆฌ์–ผ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”์— ๋„์›€์ด ๋˜๋ฏ€๋กœ, ์—ฌ๋Ÿฌ๋ถ„์˜ ์ž‘์—…์„ ํ•„์š”ํ•œ ์‚ฌ๋žŒ์ด ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!
tutorial ์›น์‚ฌ์ดํŠธ์—์„œ ํ”„๋ก ํŠธ๋งคํ„ฐ ์˜†์— ํŠœํ† ๋ฆฌ์–ผ ์•„์ด์ฝ˜์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด `tutorial: true`๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํŠœํ† ๋ฆฌ์–ผ์€ ์ฝ˜ํ…์ธ  ๋ชฉ์ฐจ์˜ ์„น์…˜ ํ•˜๋‹จ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ์ฝ”๋“œ

์ˆ์ฝ”๋“œ ๋ชฉ๋ก ๋ฐ ํ™œ์šฉ ์‚ฌ๋ก€๋Š” GitHub์˜ documentation.md์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€

amp.dev๋Š” AMP๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๊ทธ๋ ‡๊ธฐ์— ์ด๋ฏธ์ง€๋Š” amp-img ๊ธฐ์ค€์— ๋ถ€ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์—์„œ ์ด๋ฏธ์ง€๋ฅผ amp-img ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ๋‹ค์Œ ๊ตฌ๋ฌธ์ด ํ™œ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์„น์…˜ ํ•„ํ„ฐ๋ง

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

[filter formats="websites"]
This is only visible for [websites](?format=websites).
[/filter]

[filter formats="websites"]
This is only visible for [websites](?format=websites).
[/filter]

[filter formats="websites, email"]
This is visible for [websites](?format=websites) & [email](?format=email).
[/filter]

[filter formats="stories"]
This is visible for [stories](?format=stories).
[/filter]

ํŒ

๋‹ค์Œ ์ˆ์ฝ”๋“œ์— ํ…์ŠคํŠธ๋ฅผ ๋ž˜ํ•‘ํ•˜์—ฌ ํŒ๊ณผ ์ฝœ์•„์›ƒ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[tip type="default"]
Default tip
[/tip]

[tip type="important"]
Important
[/tip]

[tip type="note"]
Note
[/tip]

[tip type="read-on"]
Read-on
[/tip]

์ฝ”๋“œ ์กฐ๊ฐ

๋ฐฑํ‹ฑ(`) ๊ธฐํ˜ธ 3๊ฐœ ์‚ฌ์ด์— ์ฝ”๋“œ ์กฐ๊ฐ์„ ๋ฐฐ์น˜ํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ ๋ฐฑํ‹ฑ ์„ธํŠธ ๋๋ถ€๋ถ„์—์„œ ์–ธ์–ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

```html
  // code sample

```css
// code sample
  // code sample
```</pre></div>

[`amp-mustache`](../../../../documentation/components/reference/amp-mustache.md?format=websites) ํ…œํ”Œ๋ฆฟ์„ ํ™œ์šฉํ•˜๋ฉด ์ž์ฃผ ๊ทธ๋ ‡๋“ฏ ์ฝ”๋“œ์— ์ค‘๊ด„ํ˜ธ๊ฐ€ ๋‘ ๊ฐœ ํฌํ•จ๋œ ๊ฒฝ์šฐ ์ฝ”๋“œ ๋ถ€๋ถ„์„ ๋ž˜ํ•‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<div class="ap-m-code-snippet"><pre>```html<br><br>  // code with double curly braces<br><br>```</pre></div>

### ๋ชฉ๋ก์˜ ์ฝ”๋“œ ์กฐ๊ฐ

Python ๋งˆํฌ๋‹ค์šด์—๋Š” ์ผ๋ถ€ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชฉ๋ก์— ์ฝ”๋“œ ์กฐ๊ฐ์„ ํฌํ•จํ•  ์‹œ ๋‹ค์Œ ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•˜์„ธ์š”.

<div class="ap-m-code-snippet"><pre>&lsqb;sourcecode:html]
      <html>
        <p>Indented content.</p>
      </html>
    &lsqb;/sourcecode]</pre></div>

## ์ฝ”๋“œ ์ƒ˜ํ”Œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

์ฝ”๋“œ ์ƒ˜ํ”Œ์— ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋˜๋Š” [AMP Playground](https://playground.amp.dev/) ๋ฒ„์ „ ๋งํฌ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<div class="ap-m-code-snippet">
  <pre>&lsqb;example preview="default: none|inline|top-frame"
          playground="default: true|false"
          imports="<custom-element-1>,<custom-element-2>,..."
          template="<custom-template>"]
  ```html
    // code sample
[/example]

๋ฏธ๋ฆฌ๋ณด๊ธฐ๋Š” Playground์—์„œ ์—ด์—ˆ์„ ๋•Œ ์„ ํƒํ•œ ์ตœ๊ทผ ํ˜•์‹์œผ๋กœ ์ž๋™ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค๐Ÿคฏ!

preview ์†์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ƒ์„ฑ ๋ฐฉ์‹์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • none: ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • inline: ์˜ˆ์ œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ์†Œ์Šค ์ฝ”๋“œ ์ƒ๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ธ๋ผ์ธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋Š” ์ฝ”๋“œ์— head ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ผ๋ฐ˜ ์›น์‚ฌ์ดํŠธ ์˜ˆ์ œ์—์„œ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์Šคํƒ€์ผ ์ง€์ •์ด๋‚˜ ๊ธฐํƒ€ head ์š”์†Œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ž‘์€ ์˜ˆ์ œ์—์„œ๋งŒ ์ด ์˜ต์…˜์„ ์„ ํƒํ•˜์„ธ์š”(๊ฐ€์ ธ์˜ค๊ธฐ๋Š” imports ์†์„ฑ์œผ๋กœ ์ง€์ •๋˜๋ฏ€๋กœ ํ•ด๋‹น๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

  • top-frame: ์˜ˆ์ œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ iframe ๋‚ด๋ถ€์—์„œ ์†Œ์Šค ์ฝ”๋“œ ์ƒ๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฐฉํ–ฅ์€portrait ๋ฐ landscape ๋ชจ๋“œ ์ค‘ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ถ”๊ฐ€ ์†์„ฑ์„ ์ง€์ •ํ•˜์—ฌ ๋ฐฉํ–ฅ์„ ์‚ฌ์ „ ์„ ํƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • orientation: default: landscape|portrait

์‚ฌ์šฉ์ž ์ง€์ • ์š”์†Œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋˜๊ณ  ์ฝœ๋ก ๊ณผ ๋ฒ„์ „์ด ๋’ค์— ํ‘œ์‹œ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์˜ ๋ชฉ๋ก์ฒ˜๋Ÿผ imports ์†์„ฑ์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์—์„œ amp-mustache๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด template ์†์„ฑ์—์„œ ๋Œ€์‹  ์ข…์†์„ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค ๋งํฌ๊ฐ€ ํฌํ•จ๋œ ์ด๋ฉ”์ผ ์ฝ˜ํ…์ธ ์˜ ๊ฒฝ์šฐ ์†Œ์Šค์— ํ”Œ๋ ˆ์ด์Šคํ™€๋”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ธ๋ผ์ธ ์ƒ˜ํ”Œ

๊ฐ„๋‹จํ•œ ์ธ๋ผ์ธ ์ƒ˜ํ”Œ ์ž„๋ฒ ๋“œ์ž…๋‹ˆ๋‹ค. ์ธ๋ผ์ธ ์Šคํƒ€์ผ๋กœ CSS๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Hello World
```html
Hello World
``` [/example]

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

[example preview="inline" playground="true"]

<div style="background: red; width: 200px; height: 200px;">Hello World</div>
์ด ์ฝ”๋“œ ์กฐ๊ฐ์„ Playground์—์„œ ์—ด๊ธฐ

์ธ๋ผ์ธ ์ƒ˜ํ”Œ์€ ํŽ˜์ด์ง€์— ๋ฐ”๋กœ ์ž„๋ฒ ๋“œ ๋˜๋ฏ€๋กœ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•ด๋‹น ํŽ˜์ด์ง€์— ์ด๋ฏธ ์‚ฌ์šฉ๋œ ๊ฒฝ์šฐ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: amp-consent).

ํƒ‘ํ”„๋ ˆ์ž„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

ํ—ค๋” ์š”์†Œ๋ฅผ ์ œ์ •ํ•˜๊ฑฐ๋‚˜ <style amp-custom> ๋‚ด๋ถ€์—์„œ ์ „์—ญ ์Šคํƒ€์ผ์„ ์ •์˜ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ํƒ‘ํ”„๋ ˆ์ž„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

AMP ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋Š” AMP ํ˜•์‹์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜๋ฏ€๋กœ ํ—ค๋”์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ—ค๋”์—๋Š” ์ƒ˜ํ”Œ๋กœ ํ•„์š”ํ•œ ์š”์†Œ๋งŒ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค!

  [example preview="top-frame"
         playground="true"]
    ```html
    <head>
      <script async custom-element="amp-youtube" src="https://cdn.ampproject.org/v0/amp-youtube-0.1.js"></script>
      <style amp-custom>
        body {
          background: red;
        }
      </style>
    </head>
    <body>
      <h1>Hello AMP</h1>
      <amp-youtube width="480"
        height="270"
        layout="responsive"
        data-videoid="lBTCB7yLs8Y">
      </amp-youtube>
    </body>
    ```
  [/example]

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

<head>
  <script
    async
    custom-element="amp-youtube"
    src="https://cdn.ampproject.org/v0/amp-youtube-0.1.js"
  ></script>
  <style amp-custom>
    body {
      background: red;
    }
  </style>
</head>
<body>
  <h1>Hello AMP</h1>
  <amp-youtube
    width="480"
    height="270"
    layout="responsive"
    data-videoid="lBTCB7yLs8Y"
  >
  </amp-youtube>
</body>
์ด ์ฝ”๋“œ ์กฐ๊ฐ์„ Playground์—์„œ ์—ด๊ธฐ

AMP ์Šคํ† ๋ฆฌ

AMP ์Šคํ† ๋ฆฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์‹œ preview="top-frame"๊ณผ orientation="portrait"์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  [example preview="top-frame"
         orientation="portrait"
         playground="true"]
    ```html
    <head>
      <script async custom-element="amp-story"
          src="https://cdn.ampproject.org/v0/amp-story-1.0.js"></script>
      <style amp-custom>
        body {
          font-family: 'Roboto', sans-serif;
        }
        amp-story-page {
          background: white;
        }
      </style>
    </head>
    <body>
      <amp-story standalone>
        <amp-story-page id="cover">
          <amp-story-grid-layer template="vertical">
            <h1>Hello World</h1>
            <p>This is the cover page of this story.</p>
          </amp-story-grid-layer>
        </amp-story-page>
        <amp-story-page id="page-1">
          <amp-story-grid-layer template="vertical">
            <h1>First Page</h1>
            <p>This is the first page of this story.</p>
          </amp-story-grid-layer>
        </amp-story-page>
      </amp-story>
    </body>
    ```
  [/example]

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

<head>
  <script
    async
    custom-element="amp-story"
    src="https://cdn.ampproject.org/v0/amp-story-1.0.js"
  ></script>
  <style amp-custom>
    body {
      font-family: 'Roboto', sans-serif;
    }
    amp-story-page {
      background: white;
    }
  </style>
</head>
<body>
  <amp-story standalone>
    <amp-story-page id="cover">
      <amp-story-grid-layer template="vertical">
        <h1>Hello World</h1>
        <p>This is the cover page of this story.</p>
      </amp-story-grid-layer>
    </amp-story-page>
    <amp-story-page id="page-1">
      <amp-story-grid-layer template="vertical">
        <h1>First Page</h1>
        <p>This is the first page of this story.</p>
      </amp-story-grid-layer>
    </amp-story-page>
  </amp-story>
</body>
์ด ์ฝ”๋“œ ์กฐ๊ฐ์„ Playground์—์„œ ์—ด๊ธฐ

AMP ์ด๋ฉ”์ผ์˜ ์ ˆ๋Œ€ URL

AMP ์ด๋ฉ”์ผ์— ์—”๋“œํฌ์ธํŠธ URL์ด ์ž„๋ฒ ๋“œ ๋  ๊ฒฝ์šฐ ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์„ธ์š”.

```html
``` [/example]

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

[example preview="top-frame" playground="true"]

<div class="resp-img">
  <amp-img
    alt="flowers"
    src="/static/inline-examples/images/flowers.jpg"
    layout="responsive"
    width="640"
    height="427"
  ></amp-img>
</div>
์ด ์ฝ”๋“œ ์กฐ๊ฐ์„ Playground์—์„œ ์—ด๊ธฐ

์ด์Šค์ผ€์ดํ•‘ mustache ํ…œํ”Œ๋ฆฟ

์›๊ฒฉ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•œ top-frame ์ƒ˜ํ”Œ์ž…๋‹ˆ๋‹ค. ๋ฐ์„ ํ™œ์šฉํ•˜์—ฌ Mustache ํ…œํ”Œ๋ฆฟ์„ ์ด์Šค์ผ€์ดํ•‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

```html ``` [/example]

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

[example preview="top-frame" playground="true" imports="amp-list:0.1" template="amp-mustache:0.2"]

<amp-list
  width="auto"
  height="100"
  layout="fixed-height"
  src="/static/inline-examples/data/amp-list-urls.json"
>
  <template type="amp-mustache"
    >
    <div class="url-entry">
      <a href="{{url}}">{{title}}</a>
    </div>
  </template>
</amp-list>
์ด ์ฝ”๋“œ ์กฐ๊ฐ์„ Playground์—์„œ ์—ด๊ธฐ

๋งํฌ

ํ‘œ์ค€ ๋งˆํฌ๋‹ค์šด ๋งํฌ ๊ตฌ๋ฌธ์œผ๋กœ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[link](../../../courses/beginning-course/index.md)

amp.dev์— ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ์—ฐ๊ฒฐํ•  ๊ฒฝ์šฐ ์ฐธ์กฐ๋Š” ๋Œ€์ƒ ํŒŒ์ผ์— ์ƒ๋Œ€ ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์•ต์ปค

๋ฌธ์„œ์—์„œ ์•ต์ปค๋ฅผ ์‚ฌ์šฉํ•ด ํŠน์ • ์„น์…˜์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

[link to example section](#example-section)

์•ต์ปค๊ฐ€ ์—†๋Š” ์„น์…˜์œผ๋กœ ์—ฐ๊ฒฐํ•˜๊ธฐ ์ „ <a name="#anchor-name></a>๋ฅผ ์‚ฌ์šฉํ•ด ์•ต์ปค ๋Œ€์ƒ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„น์…˜ ํ—ค๋“œ๋ผ์ธ์˜ ๋๋ถ€๋ถ„์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

## Example section <a name="example-section"></a>

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

ํŽ˜์ด์ง€๋ฅผ ๋ฒˆ์—ญํ•œ ๊ฒฝ์šฐ ์•ต์ปค ์ด๋ฆ„์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ  ์˜์–ด๋กœ ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํŽ˜์ด์ง€์˜ ๋งํฌ์— ์‚ฌ์šฉํ•  ์•ต์ปค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋ชจ๋“  ๋ฒˆ์—ญ์— ๋™์ผํ•œ ์•ต์ปค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

AMP ํ˜•์‹ ํ•„ํ„ฐ

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

[link](../../learn/amp-actions-and-events.md?format=websites)

ํŽ˜์ด์ง€์— ์‚ฌ์šฉ๋œ ๋ชจ๋“  ํ˜•์‹์ด ๋Œ€์ƒ์—์„œ ์ง€์›๋œ๋‹ค๊ณ  ํ™•์‹ ํ•  ๊ฒฝ์šฐ์—๋งŒ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปดํฌ๋„ŒํŠธ ์ฐธ์กฐ

๋งํฌ์—์„œ ๋ฒ„์ „ ๋ถ€๋ถ„์ด ์ƒ๋žต๋  ๊ฒฝ์šฐ ์ปดํฌ๋„ŒํŠธ ์ฐธ์กฐ ๋ฌธ์„œ ๋งํฌ๋Š” ์ž๋™์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ ์ „์ฒด ์ด๋ฆ„์„ ์ง€์ •ํ•˜์„ธ์š”.

[latest version](../../../components/reference/amp-carousel.md?format=websites)
[explicit version](../../../components/reference/amp-carousel-v0.2.md?format=websites)

๋ฌธ์„œ ๊ตฌ์กฐ

์ œ๋ชฉ, ํ—ค๋”ฉ ๋ฐ ํ•˜์œ„ ํ—ค๋”ฉ

์ œ๋ชฉ, ํ—ค๋”ฉ ๋ฐ ํ•˜์œ„ ํ—ค๋”ฉ์—์„œ ์‚ฌ์šฉ๋œ ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๊ณ  ๊ทธ ๋‹ค์Œ์€ ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ƒ ๊ฐ’์—๋Š” AMP ๋ฐ ๊ณ ์œ  ๋ช…์‚ฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํ—ค๋”ฉ ์ œ๋ชฉ์—๋Š” Introduction์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ฌธ์„œ ์ œ๋ชฉ ๋‹ค์Œ์—๋Š” ์„œ๋ฌธ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ ์ด๋ฆ„ ์ง€์ •

๋ฌธ์„œ ์ด๋ฆ„์€ ๋Œ€์‹œ ์ด๋ฆ„ ์ง€์ • ๊ทœ์น™์— ๋”ฐ๋ผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.


Do Donโ€™t
hello-world-tutorial.md hello_world_tutorial.md
website-fundamentals.md websiteFundamentals.md
actions-and-events.md actionsandevents.md