AMP

ํ˜ธ์ŠคํŒ…๋œ AMP ํŽ˜์ด์ง€ ์ตœ์ ํ™”

Important: this documentation is not applicable to your currently selected format ads!

์ด ๊ฐ€์ด๋“œ๋Š” ์›น๋งˆ์Šคํ„ฐ๋ฅผ ์œ„ํ•ด ํ˜ธ์ŠคํŒ…๋œ AMP ์›น์‚ฌ์ดํŠธ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ํŒ๊ณผ ์„ค๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

AMP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น ๋ฅด์ง€ ์•Š๋‚˜์š”?

AMP ๋Ÿฐํƒ€์ž„์€ ์†๋„ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์ตœ์ ํ™”๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ AMP ์บ์‹œ๊ฐ€ AMP ํŽ˜์ด์ง€๋ฅผ ์ง€์›ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ํŽ˜์ด์ง€๋Š” ์ „์ ์œผ๋กœ ์ตœ์ ํ™”๋˜์–ด ์ตœ์ƒ์˜ ๋กœ๋”ฉ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ฐ”์ผ์˜ Google ๊ฒ€์ƒ‰์„ ํ†ตํ•ด AMP ํŽ˜์ด์ง€๋กœ ์œ ์ž…๋  ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ AMP ์บ์‹œ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ•ญ์ƒ AMP ์บ์‹œ๊ฐ€ AMP ํŽ˜์ด์ง€๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŠธ๋ž˜ํ”ฝ ์†Œ์Šค์˜ ๊ฒฝ์šฐ ์›น์‚ฌ์ดํŠธ๋Š” ์ž์ฒด ์„œ๋ฒ„์—์„œ AMP ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•˜๋„๋ก ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํ”ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ”๋กœ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•˜๋Š” tasty.co์ฒ˜๋Ÿผ ์ „์ ์œผ๋กœ AMP๋กœ ์ž‘์„ฑ๋œ ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ํŠธ๋ž˜ํ”ฝ ์†Œ์Šค๋Š” Twitter์ž…๋‹ˆ๋‹ค. Twitter๋Š” ํ‘œ์ค€ ๋ชจ๋ฐ”์ผ ๋ฒ„์ „์„ ์ œ๊ณตํ•˜๋Š” ๋Œ€์‹  AMP ํŽ˜์ด์ง€ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ Twitter ๋ชจ๋ฐ”์ผ ์•ฑ์˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ๋งํฌ๊ฐ€ ๊ณ ์œ  ์›๋ณธ ํŽ˜์ด์ง€์˜ AMP ๋ฒ„์ „์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค(์ œ๊ณต๋  ๊ฒฝ์šฐ).

๊ฒฐ๊ณผ์ ์œผ๋กœ AMP ํŽ˜์ด์ง€๊ฐ€ ํ•ญ์ƒ AMP ์บ์‹œ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ง€์›๋œ๋‹ค๊ณ  ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž์ฒด ์„œ๋ฒ„์—์„œ AMP ํŽ˜์ด์ง€๋ฅผ ์ง€์›ํ•  ๊ฒฝ์šฐ AMP ํŽ˜์ด์ง€์—์„œ ์ตœ์ ์˜ ๋กœ๋”ฉ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

AMP ํŽ˜์ด์ง€๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋˜์ง€๋งŒ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ์ถ”๊ฐ€๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ AMP ํŽ˜์ด์ง€๋ฅผ ๋”์šฑ ๋น ๋ฅด๊ฒŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” AMP ํŽ˜์ด์ง€๋ฅผ ๊ฒŒ์‹œํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์ตœ์ ํ™” ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ€์ด๋“œ๋ฅผ ์ฝ๊ธฐ ์ „ ๊ธฐ๋ณธ ์›น ์„ฑ๋Šฅ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ดํ•ดํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ํŠนํžˆ ์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋Š” ๋กœ๋”ฉ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"The Scenic" ํ…œํ”Œ๋ฆฟ์€ 3G ์—ฐ๊ฒฐ ์‹œ 2์ดˆ ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ƒ๋žตํ•˜๋ ค๋ฉด ์ตœ์ ํ™”๋œ ์‚ฌ์šฉ์ž ์ง€์ • AMP ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” AMP ์ƒ์šฉ๊ตฌ ์ƒ์„ฑ๊ธฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

AMP ๋Ÿฐํƒ€์ž„ ๋กœ๋”ฉ ์ตœ์ ํ™”

AMP๋Š” ์ด๋ฏธ <head> ์„น์…˜์—์„œ ํ—ˆ์šฉ๋˜๋Š” ๋งˆํฌ์—…์— ์ƒ๋‹นํ•œ ์ œํ•œ์„ ๋‘๊ณ  ์žˆ์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ์ตœ์ ํ™” ์˜ต์…˜์€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ <head> ์„น์…˜์—์„œ ๋ Œ๋”๋ง ์ฐจ๋‹จ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์‚ฌ์šฉ์ž ์ง€์ • ๊ธ€๊ผด์ด ์ตœ๋Œ€ํ•œ ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋˜๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

AMP ํŽ˜์ด์ง€์˜ <head> ์„น์…˜์— ๊ถŒ์žฅ๋˜๋Š” ์ •๋ ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<!doctype html>
<html โšก lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <meta name="description" content="This is the AMP Boilerplate.">
    <link rel="preload" as="script" href="https://cdn.ampproject.org/v0.js">
    <link rel="preload" as="script" href="https://cdn.ampproject.org/v0/amp-experiment-0.1.js">
    <link rel="preconnect dns-prefetch" href="https://fonts.gstatic.com/" crossorigin>
    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <script async custom-element="amp-experiment" src="https://cdn.ampproject.org/v0/amp-experiment-0.1.js"></script>
    <!-- Import other AMP Extensions here -->
    <style amp-custom>
      /* Add your styles here */
    </style>
    <link href="https://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet">
    <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible.selected}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible.selected}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible.selected}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible.selected}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible.selected}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
    <link rel="canonical" href=".">
    <title>My AMP Page</title>
  </head>
  <body>
    <h1>Hello World</h1>
  </body>
</html>

ํ•œ ๋‹จ๊ณ„์”ฉ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์ฒซ ๋ฒˆ์งธ ํƒœ๊ทธ๋Š” meta charset ํƒœ๊ทธ์—ฌ์•ผ ํ•˜๋ฉฐ ๊ทธ๋‹ค์Œ์—๋Š” ๋‚จ์€ meta ํƒœ๊ทธ๋ฅผ ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋‹ค์Œ์œผ๋กœ <link as=script href=https://cdn.ampproject.org/v0.js rel=preload>๋ฅผ ํ™œ์šฉํ•ด AMP ๋Ÿฐํƒ€์ž„ v0.js <script> ํƒœ๊ทธ๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. AMP ๋Ÿฐํƒ€์ž„์ด ๋กœ๋“œ๋  ๋•Œ๊นŒ์ง€ AMP ์ƒ์šฉ๊ตฌ๋Š” body { visibility:hidden }๋ฅผ ํ†ตํ•ด ๋ฌธ์„œ๋ฅผ ์ˆจ๊น€ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ AMP ๋Ÿฐํƒ€์ž„์€ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. AMP ๋Ÿฐํƒ€์ž„์„ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•  ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋„๋ก ์ง€์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด server-side-rendering์„ ์ฐธ์กฐํ•˜์„ธ์š”. {amp-img6} {/amp-img6}

  3. ํŽ˜์ด์ง€์— ๋ Œ๋”๋ง ์ง€์—ฐ ํ™•์žฅ์ž๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ (์˜ˆ: amp-experiment, amp-dynamic-css-classes, amp-story) ํŽ˜์ด์ง€ ๋ Œ๋”๋ง ์‹œ AMP ๋Ÿฐํƒ€์ž„์ด ํ•ด๋‹น ํ™•์žฅ์ž๋ฅผ ํ•„์š”๋กœ ํ•˜๋ฏ€๋กœ ํ™•์žฅ์ž๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

<link as="script" rel="preload" href="https://cdn.ampproject.org/v0/amp-custom-css-0.1.js">
<link as="script" rel="preload" href="https://cdn.ampproject.org/v0/amp-experiment-0.1.js">
<link as="script" rel="preload" href="https://cdn.ampproject.org/v0/story-1.0.js">
  1. ์‚ฌ์ „ ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ์ถœ์ฒ˜ URL์„ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†๋Š” ๋‹ค๋ฅธ ์ถœ์ฒ˜์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ์†๋„๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: Google Fonts ์‚ฌ์šฉ ์‹œ).
<link rel="preconnect dns-prefetch" href="https://fonts.gstatic.com/" crossorigin>
  1. AMP ๋Ÿฐํƒ€์ž„์„๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค:
<script async src="https://cdn.ampproject.org/v0.js"></script>
  1. ๋ Œ๋”๋ง ์ง€์—ฐ ํ™•์žฅ์ž์— ๋Œ€ํ•œ <script> ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: amp-experiment amp-dynamic-css-classes ๋ฐ amp-story
  2. ๋‚จ์€ ํ™•์žฅ์ž์— ๋Œ€ํ•œ <script> ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: amp-bind ...). ์ด๋Ÿฌํ•œ ํ™•์žฅ์ž๋Š” ๋ Œ๋”๋ง ์ง€์—ฐ ํ™•์žฅ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์‹œ ์ค‘์š”ํ•œ ๋Œ€์—ญํญ์„ ์ฐจ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์ „ ๋กœ๋“œ๋˜์–ด์„  ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  3. <style amp-custom> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ์Šคํƒ€์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  4. <head> ์„น์…˜์—์„œ ํ—ˆ์šฉ๋œ ๊ธฐํƒ€ ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์™ธ๋ถ€ ๊ธ€๊ผด์€ ๋ Œ๋”๋ง์„ ์ฐจ๋‹จํ•˜๋ฏ€๋กœ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  5. ๋งˆ์ง€๋ง‰์œผ๋กœ AMP ์ƒ์šฉ๊ตฌ ์ฝ”๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์šฉ๊ตฌ ์ฝ”๋“œ๋ฅผ ์ง€์ •ํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ง€์ • ์Šคํƒ€์ผ์ด ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ์ƒ์šฉ๊ตฌ CSS ๊ทœ์น™์„ ์žฌ์ •์˜ํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AMP ์บ์‹œ๋Š” ๋ชจ๋“  ์ตœ์ ํ™”(๋ฐ ๊ธฐํƒ€)๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. AMP Optimizer ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ณ ์œ  ์›๋ณธ์—์„œ ์ตœ์ ํ™”๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํžˆ์–ด๋กœ ์ด๋ฏธ์ง€ ์‚ฌ์ „ ๋กœ๋“œ

AMP HTML๋Š” ์ž์ฒด ์ด๋ฏธ์ง€ ์š”์†Œ์ธ amp-img๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. amp-img์—๋Š” ๊ธฐ์กด HTML img ํƒœ๊ทธ๋ณด๋‹ค ๋งŽ์€ ์žฅ์ ์ด ์žˆ์ง€๋งŒ ํ•œ ๊ฐ€์ง€ ๋‹จ์ ์€ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ ์‹œ์ž‘ ์ „์— AMP ๋Ÿฐํƒ€์ž„์ด ๋กœ๋“œ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œํ’ˆ ํŽ˜์ด์ง€์˜ ํžˆ์–ด๋กœ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ์ผ๋ถ€ ์ด๋ฏธ์ง€๋Š” ์ตœ๋Œ€ํ•œ ๋น ๋ฅด๊ฒŒ ๋กœ๋”ฉ๋˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์‹œ์ž‘ํ•˜๊ณ  AMP ๋Ÿฐํƒ€์ž„์ด ๋กœ๋“œ๋˜๊ธธ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†๋„๋ก ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์ „ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ์ตœ์„ ์ž…๋‹ˆ๋‹ค.

<head>
  <link rel="preload" href="/images/elephants.png" as="image">
</head>
<body>
  ...
  <amp-img width="404" height="720" layout="responsive"
           src="/images/elephants.png" alt="..." >
  </amp-img>
</body>

ํ•˜์ง€๋งŒ ํ™”๋ฉด ๋„ˆ๋น„์— ๋”ฐ๋ผ ๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ์— ๋‹ค๋ฅธ ํžˆ์–ด๋กœ ์ด๋ฏธ์ง€๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ์Šคํฌํ†ฑ์—๋Š” ๋„“์€ ์ด๋ฏธ์ง€๊ฐ€ ๋ชจ๋ฐ”์ผ์—๋Š” ์ข์€ ์ด๋ฏธ์ง€๊ฐ€ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค.

<amp-img width="404" height="720"
    alt="..." layout="responsive"
    src="/images/elephants_narrow.png"
    media="(max-width: 415px)">
</amp-img>
<amp-img height="720"
    alt="..." layout="fixed-height"
    src="/images/elephants_wide.jpg"
    media="(min-width: 416px)">
</amp-img>

๋‹คํ–‰ํžˆ link rel=preload๋Š” ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋„ ์ง€์›ํ•˜๋ฏ€๋กœ ์‚ฌ์ „ ๋กœ๋“œ ๊ตฌ๋ฌธ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ผํ•œ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<link rel="preload" as="image"
    href="/images/elephants_narrow.png"
    media="(max-width: 415px)">
<link rel="preload" as="image"
    href="/images/elephants_wide.jpg"
    media="(min-width: 416px)">

๋™์ผํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ amp-video ํฌ์Šคํ„ฐ ์ด๋ฏธ์ง€์—๋„ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค:

<link rel="preload" href="/images/poster.jpg" as="image">
...
 <amp-video width="480" height="270" src="elephant.mp4"
             poster="/images/poster.jpg"
             layout="responsive">
     ...
</amp-video>

๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™”๋ฉด ๋„ˆ๋น„๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ๋ทฐํฌํŠธ ์น˜์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ๋ทฐํฌํŠธ ์„ ์–ธ ๋‹ค์Œ์— ์‚ฌ์ „ ๋กœ๋“œ ๊ตฌ๋ฌธ์„ ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<meta name="viewport" content="width=device-width">
...
<link rel="preload" media="(max-width: 415px)" ...>

์ค‘์š”ํ•œ ์ด๋ฏธ์ง€๋งŒ ์‚ฌ์ „ ๋กœ๋“œํ•˜์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ ์‹œ ๊ธฐํƒ€ ์ค‘์š” ๋‹ค์šด๋กœ๋“œ์— ํ•„์š”ํ•œ ๋Œ€์—ญํญ์ด ์†Œ๋ชจ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์›Œ์ปค ์‚ฌ์šฉ ๊ณ ๋ คํ•˜๊ธฐ

์ด์ œ ๋ชจ๋“  ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ์‚ฌ์ดํŠธ์— ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์˜ ์ ํ•ฉ์„ฑ์„ ํ‰๊ฐ€ํ•˜๋Š” ํŽธ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์•ˆ์ •์ ์ด๋ฉฐ ๋น ๋ฅธ ํƒ์ƒ‰์— ์ ํ•ฉํ•œ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: App Shell ๋ชจ๋ธ(AMP ์ปจํ…์ŠคํŠธ์—์„œ๋Š” AMP-in-PWA๋กœ ์ง€์นญ). ์ด ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ํ†ตํ•ด AMP ๋ฌธ์„œ๋ฅผ ์•ฑ ์‰˜ ๊ธฐ๋ฐ˜ PWA ํ™˜๊ฒฝ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ€ํ‹ฐ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: ๋ณตํ•ฉ ๋ฆฌ์†Œ์Šค ์ŠคํŠธ๋ฆฌ๋ฐ. ์„œ๋น„์Šค ์›Œ์ปค๋Š” ์ •์  ํ—ค๋” ๋ฐ ํ‘ธํ„ฐ๋ฅผ ์บ์‹ฑํ•˜๊ณ  ์ฝ˜ํ…์ธ  ๋กœ๋”ฉ ์ค‘ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์‚ฌ์šฉํ•ด ์บ์‹œ๋œ ๋ถ€๋ถ„ ์‘๋‹ต์„ ์ฆ‰์‹œ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŒจํ„ด ์ค‘ ์–ด๋А ๊ฒƒ๋„ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ „์ฒด ์‚ฌ์ดํŠธ๋ฅผ ์บ์‹ฑํ•  ์ˆ˜ ์—†์–ด(์•„์ฃผ ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ์‚ฌ์ดํŠธ์—๋งŒ ์ ํ•ฉ) ์„œ๋น„์Šค ์›Œ์ปค๊ฐ€ ๋ถ€์ •์  ์„ฑ๋Šฅ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—” ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ตœ์„ ์ž…๋‹ˆ๋‹ค.

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

AMP ์›น์‚ฌ์ดํŠธ์—์„œ ์„œ๋น„์Šค ์›Œ์ปค๊ฐ€ ์‚ฌ์šฉ๋  ๊ฒฝ์šฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • AMP ๋Ÿฐํƒ€์ž„ ๋ฐ ํ™•์žฅ์ž ์‚ฌ์ „ ์บ์‹ฑ(์˜ˆ: amp-carousel).
  • ํŽ˜์ด์ง€ ๋Œ€๋ถ€๋ถ„์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋กœ๊ณ , ๊ธ€๊ผด ๋ฐ ๊ธฐํƒ€ ์ •์  ์ฝ˜ํ…์ธ  ์‚ฌ์ „ ์บ์‹ฑ.
  • ์บ์‹œ ์šฐ์„  ์ „๋žต์„ ์‚ฌ์šฉํ•œ ๋กœ๊ณ , ๊ธ€๊ผด ๋ฐ ์ด๋ฏธ์ง€ ์ง€์›.
  • stale-while-revalidate ์ „๋žต์„ ์‚ฌ์šฉํ•œ AMP ๋Ÿฐํƒ€์ž„ ๋ฐ ํ™•์žฅ์ž ์ง€์›.
  • ๋‚ด๋น„๊ฒŒ์ด์…˜ ์š”์ฒญ์— ๋„คํŠธ์›Œํฌ ์šฐ์„  ์ „๋žต ์‚ฌ์šฉ ์‹œ ๋‚ด๋น„๊ฒŒ์ด์…˜ ์‚ฌ์ „ ๋กœ๋“œ ํ™•์ธ.

AMP ์‚ฌ์ดํŠธ์—์„œ ์„œ๋น„์Šค ์›Œ์ปค ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•  ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ ์ค‘์ด๋ผ๋ฉด ๋‹ค์Œ ์ƒ˜ํ”Œ์„ ํ†ตํ•ด ๋ชจ๋“  ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๊ตฌํ˜„ํ•œ ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ํ™•์ธํ•ด๋ณด์„ธ์š”.

์—…๋ฐ์ดํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด AMP ๋Ÿฐํƒ€์ž„์€ ๋ถˆ๊ณผ 50๋ถ„์˜ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์œผ๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ๋ˆ„๋ฝ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ์›Œ์ปค์—์„œ AMP ๋Ÿฐํƒ€์ž„์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์‚ฌ์ „ ์บ์‹ฑ์€ ์บ์‹œ๋œ AMP ํŽ˜์ด์ง€์—์„œ ๊ณ ์œ  ์›๋ณธ์˜ ๋น„ AMP ํŽ˜์ด์ง€๋กœ์˜ ์ „ํ™˜๋งŒ์ด ์•„๋‹Œ ์บ์‹œ๋œ AMP ํŽ˜์ด์ง€์—์„œ ๊ณ ์œ  ์›๋ณธ์˜ AMP ํŽ˜์ด์ง€๋กœ ์ „ํ™˜๊ณผ๋„ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” AMP ์บ์‹œ๊ฐ€ AMP ๋Ÿฐํƒ€์ž„ URL์„ ๋ถˆ๋ณ€ URL์—์„œ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „์œผ๋กœ ์žฌ์ž‘์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://cdn.ampproject.org/v0.js -> https://cdn.ampproject.org/rtv/001515617716922/v0.js.

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

Safari์—์„œ๋Š” ์„œ๋น„์Šค ์›Œ์ปค ๊ตฌํ˜„ ๋ฐฉ์‹์— ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Safari์—์„œ๋Š” ํŽ˜์ด์ง€๊ฐ€ AMP ์บ์‹œ๋กœ ์ง€์›๋˜๋Š” ๊ฒฝ์šฐ ์›๋ณธ์— ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ง€์ • ๊ธ€๊ผด ์ตœ์ ํ™”

AMP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธ€๊ผด ๋กœ๋”ฉ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค(์‚ฌ์‹ค ๊ทธ ์ค‘ ๋Œ€๋‹ค์ˆ˜๋Š” AMP์—๋งŒ ํ•œ์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค):

  • ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด font-display: optional์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด๋ฏธ ์บ์‹œ์— ํฌํ•จ๋œ ๊ธ€๊ผด๋งŒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ง€์ • ๊ธ€๊ผด์ด ๋กœ๋“œ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ๊ธ€๊ผด๋กœ ํด๋ฐฑํ•ฉ๋‹ˆ๋‹ค.
  • ์›น ๊ธ€๊ผด์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: WOFF2๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž ์ง€์ • ๊ธ€๊ผด ์ง€์›).
  • ์‚ฌ์šฉ์ž ์ •์˜ ๊ธ€๊ผด ๋ฏธ๋ฆฌ๋กœ๋“œ:
<link rel="preload" as="font" href="/bundles/app/fonts/helveticaneue-roman-webfont.woff2" >
  • Google Fonts๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์•Œ ์ˆ˜ ์—†๋Š” ๊ธ€๊ผด URL์„ ์ง€์›ํ•˜๋Š” ๊ธฐํƒ€ ๊ธ€๊ผด ์ œ๊ณต์—…์ฒด๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๊ฐ ํฐํŠธ ์„œ๋ฒ„๋ฅผ ์‚ฌ์ „ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค:
 <link rel="preconnect dns-prefetch" href="https://fonts.gstatic.com/" crossorigin>

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

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง AMP ๋ ˆ์ด์•„์›ƒ

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

AMP ํŽ˜์ด์ง€๋ฅผ ๊ฒŒ์‹œํ•  ๊ฒฝ์šฐ AMP Optimizer ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•˜๋Š” ํŽธ์ด ์ข‹์Šต๋‹ˆ๋‹ค. AMP Optimizer๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง AMP ๋ ˆ์ด์•„์›ƒ์ด ํฌํ•จ๋œ ์ž์ฒด ๋ฐฑ์—”๋“œ์—์„œ ์ตœ์ ํ™”๋œ AMP ํŽ˜์ด์ง€๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ AMP Optimizer๋Š” ์ด ๋ฌธ์„œ์— ์„ค๋ช…๋œ ๋‹ค์–‘ํ•œ ๊ธฐํƒ€ ์ตœ์ ํ™”๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ตœ์ ํ™”

๋ฌผ๋ก  ๋ชจ๋“  ๊ธฐ๋ณธ์  ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™”๋Š” AMP ํŽ˜์ด์ง€์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.