이미지와 미디어


텍스트는 웹 페이지의 많은 부분을 담당하지만 전부는 아닙니다. 사진, 도표, 삽화, 동영상, 소리도 콘텐츠이며, HTML에는 이들 각각을 위한 요소가 있습니다. 이 장에서는 페이지에 미디어를 배치하는 마크업을 다룹니다. 이미지 파일을 어떻게 가리키는지, 보이지 않는 사람들을 위해 어떻게 설명하는지, 그리고 아무도 데이터를 낭비하지 않으면서 적절한 화면에 적절한 파일을 어떻게 제공하는지 살펴봅니다.
이미지 요소
페이지에 그림을 넣을 때는 이미지 요소, 즉 <img>를 사용합니다. 이 요소에는 콘텐츠도, 닫는 태그도 없습니다. 대신 속성을 통해 두 가지를 알려줍니다. 어떤 파일을 보여줄지, 그리고 그 그림이 무엇에 관한 것인지입니다.
<img src="golden-retriever.jpg" alt="A golden retriever sitting in tall grass">src는 소스, 즉 이미지 파일의 경로나 웹 주소입니다. alt는 대체 텍스트로, 그림을 말로 짧게 설명한 것입니다. 이미지가 로드되지 않거나, 누군가 화면을 보는 대신 스크린 리더로 페이지를 듣고 있다면 alt 텍스트가 그 사람이 얻는 정보의 전부입니다. 그러니 전화로 친구에게 그림을 설명해준다고 생각하고 작성하세요.
src와, 그림을 말로 설명하는 alt입니다. alt는 전화로 누군가에게 사진 속 내용을 알려준다고 생각하고 작성하세요. 가장 많이 생략되는 부분이면서, 가장 중요한 부분이기도 합니다. 반응형 이미지
노트북에서는 선명해 보이는 사진이 휴대폰에 필요한 크기보다 훨씬 클 수 있습니다. 그 원본 크기 파일을 작은 화면에 그대로 보내면 방문자의 데이터를 낭비하고 페이지 속도를 늦춥니다. HTML을 사용하면 같은 그림의 여러 버전을 브라우저에 제공하고, 브라우저가 그중 맞는 것을 고르게 할 수 있습니다.
처음 시작하는 단계에서는 이 기능이 모든 이미지에 필요하지는 않습니다. 적절한 파일 하나짜리 <img>로도 충분합니다. 하지만 이런 개념이 존재한다는 것을 알아두면 도움이 됩니다. 같은 사진이 여러 크기로 준비될 수 있고, 브라우저가 그중 하나를 고른다는 것입니다.
<img src="beach-800.jpg" alt="Waves rolling onto a quiet beach at sunset"><img>로 충분합니다. 이 선택지는 모바일에서 페이지가 무거워지기 시작할 때를 위한 것입니다. 동영상과 오디오
HTML은 별도 플러그인 없이 동영상과 소리를 재생할 수 있습니다. 영상 클립에는 <video> 요소를, 소리에는 <audio>를 사용합니다. controls 속성을 추가하면 재생 버튼, 타임라인, 볼륨 조절이 자동으로 생깁니다.
<video src="tutorial.mp4" controls></video>
<audio src="podcast-episode.mp3" controls></audio>이미지와 달리 이 요소들에는 닫는 태그가 있습니다. 여는 태그와 닫는 태그 사이에 대체 텍스트나 추가 설정을 넣을 수 있기 때문입니다. 처음에 가장 기억해야 할 점은 항상 controls를 넣어야 한다는 것입니다. 그렇지 않으면 방문자가 재생 버튼을 누를 방법이 없습니다.
<video>는 영상을 재생하고 <audio>는 소리를 재생합니다. 플러그인은 필요 없습니다. controls를 추가하지 않으면 재생 버튼이 없어서 방문자가 아무것도 할 수 없습니다. 둘 다 닫는 태그가 있는데, 이미지와 달리 그 안에 설정이나 대체 텍스트를 넣을 수 있기 때문입니다. 크기 지정, 지연 로딩, 성능
이미지가 로드되면 페이지의 나머지 부분을 밀어낼 수 있습니다. 문단을 읽고 있는데 그 위쪽에서 사진이 로드를 마치면서 갑자기 텍스트가 아래로 밀려납니다. 이 밀림 현상은 거슬리는데, 미리 막을 수 있습니다. width와 height로 이미지 크기를 미리 브라우저에 알려주면 됩니다.
<img src="team-lunch.jpg" alt="The team sharing lunch on the office balcony"
width="800" height="600">이 수치들 덕분에 브라우저는 이미지가 도착하기 전에 알맞은 공간을 미리 확보해두므로, 실제 로드될 때 아무것도 밀리지 않습니다. 여기에는 파일의 실제 픽셀 크기를 넣으면 되고, CSS로 화면에서의 크기를 여전히 조절할 수 있습니다.
width와 height를 지정하면 사진이 로드되면서 페이지가 이리저리 흔들리는 일이 사라집니다. 파일의 실제 픽셀 크기를 사용하세요. CSS로 화면에서의 크기는 여전히 줄일 수 있습니다. 이 습관 하나로 로딩 중 가장 거슬리는 문제를 해결할 수 있습니다. 
