<img> 태그는 웹페이지에서 이미지를 삽입할 때 사용되는 HTML 태그로, 이미지 요소를 시각적으로 표시하는 역할을 한다. 이미지를 추가하는 과정에서 필요한 다양한 정보들을 아래에 정리하여 설명한다.
1. 기본 구조
이미지 태그의 기본 구조는 매우 간단하다.
<img src="이미지_URL" />
<img>: 이미지 요소를 나타내는 태그이다.
src (source): 이미지를 불러올 위치를 지정하는 속성이다. 이미지의 URL 경로를 입력해야 한다. 로컬 이미지 파일이든, 인터넷상의 URL이든 상관없다.
<img> 태그는 자가 종료 태그 (Self-closing tag) 또는 빈 요소라고도 불리는 태그이다. HTML에서 종료 태그가 필요 없는 태그를 의미한다. 예를 들어, <br>, <hr>와 마찬가지로 <img>도 종료 태그를 사용하지 않는다. 이미지 자체가 "내용"이 아니기 때문이다.
2. 주요 속성
이미지 태그에는 다양한 속성이 있다. 그중 가장 중요한 속성들을 소개한다.
a. src (source):
설명:
이미지를 불러올 경로이다.
인터넷 이미지:
<img src="https://example.com/image.jpg" />
로컬 파일:
<img src="images/photo.jpg" />
b. alt (Alternative Text):
설명:
alt (Alternative Text) 속성은 이미지를 설명하는 대체 텍스트를 제공한다. 시각 장애가 있는 사람들이 화면 읽기 프로그램을 사용할 때, 이 텍스트를 읽어주어 이미지를 이해할 수 있게 돕는다. 따라서 alt 속성은 웹 접근성을 높이는 데 중요한 역할을 한다.
대체 텍스트의 중요성:
시각 장애가 있는 사용자가 웹사이트를 방문할 때, 화면 읽기 프로그램을 통해 텍스트를 음성으로 들을 수 있다. alt 속성을 통해 웹사이트의 내용을 더 잘 이해할 수 있도록 돕는다.
예시:
<img src="cat.jpg" alt="A cute cat resting" />
c. width와 height:
설명: 이미지를 표시할 크기를 지정하는 속성이다. width와 height 속성은 각각 이미지의 가로, 세로 크기를 픽셀 단위로 설정할 수 있다.
예시:
<img src="dog.jpg" alt="A dog digging in the sand" width="300" height="200" />
d. title:
설명: 이미지 위에 마우스를 올렸을 때 나타나는 툴팁을 설정할 수 있는 속성이다. 이미지에 대한 간단한 설명을 제공할 수 있다.
예시:
<img src="dog.jpg" alt="A dog digging in the sand" title="A playful dog digging in the sand" />
e. loading:
설명: 페이지 로딩 성능을 개선할 수 있는 속성이다. lazy로 설정하면 페이지 로드 시 이미지를 필요할 때만 불러오게 되어 초기 로딩 시간을 단축시킬 수 있다.
예시:
<img src="dog.jpg" alt="A dog digging in the sand" loading="lazy" />
3. 이미지 링크와 함께 사용하기
이미지를 클릭할 수 있는 링크로 만들려면 <a> 태그와 결합하여 사용한다.
<a href="https://example.com">
<img src="image.jpg" alt="Click to visit example.com" />
</a>
이렇게 하면 이미지를 클릭하면 링크로 이동하게 된다.
4. 성능 최적화
이미지 압축: 웹페이지 로딩 속도를 개선하기 위해 이미지를 압축하여 크기를 줄이는 것이 중요하다. JPEG와 PNG는 특히 압축 효과가 좋다.
WebP: 최신 이미지 형식으로, 고해상도를 유지하면서도 파일 크기를 많이 줄일 수 있다.
Loading 속성 확실히 이해하기
loading 속성은 이미지나 *iframe 요소가 페이지 로딩 중 언제 로드될지를 제어하는 속성이다. 이 속성은 성능 최적화에 매우 유용하며, 주로 웹 페이지의 초기 로딩 시간을 단축시키는 데 사용된다. 두 가지 주요 값이 있다.
1. lazy:
이 값을 사용하면 이미지가 화면에 보일 때까지 로딩을 지연시킨다. 즉, 사용자가 해당 이미지가 위치한 영역에 스크롤을 내리기 전까지는 해당 이미지를 로드하지 않는다. 이를 통해 초기 페이지 로딩 시 불필요한 리소스를 미리 불러오는 것을 방지하고, 페이지가 더 빠르게 로드되도록 도와준다. 특히 긴 페이지나 이미지가 많은 페이지에서 효과적이다.
예를 들어, 긴 기사나 블로그에서 첫 번째 화면에 보이는 이미지들만 먼저 로드되고, 사용자가 스크롤하여 다른 이미지를 볼 때 그때마다 이미지를 불러오게 된다.
2. auto (기본값):
이 값은 브라우저가 자동으로 이미지를 로드하는 방식을 결정한다. 일반적으로, 페이지가 로드될 때 이미지를 모두 불러오도록 설정된다. 이 방법은 lazy와 달리 성능 최적화에 도움이 되지 않는다.
그렇다면 항상 lazy를 사용하는 것이 좋은 습관인가?
장점:
1. 페이지 로딩 시간 단축
lazy 속성을 사용하면 처음 페이지가 로드될 때 화면에 보이지 않는 이미지들이 로딩되지 않는다. 이로 인해 페이지의 초기 로딩 시간이 빨라져, 사용자 경험이 향상된다. 특히 이미지가 많은 페이지에서 효과적이다.
2. 네트워크 리소스 절약
사용자가 스크롤을 내려 해당 이미지를 보기 전에는 이미지를 불러오지 않기 때문에, 불필요한 리소스를 서버에서 불러오지 않게 된다. 이는 특히 모바일 네트워크 환경이나 데이터 사용량이 제한적인 상황에서 유리하다.
3. SEO 개선
페이지 로딩 속도가 빨라지면 검색 엔진 최적화(SEO)에 긍정적인 영향을 미친다. 구글 등 검색 엔진은 페이지 속도가 빠를수록 사이트를 더 높게 평가한다.
4. 모바일 환경 최적화
모바일 사용자는 데스크톱보다 더 많은 제약을 받는다. lazy 로딩은 모바일에서 불필요한 리소스를 로드하지 않도록 하여, 빠른 페이지 로딩과 데이터 절약을 가능하게 한다.
단점:
1. 필수 이미지 로딩 지연
웹 페이지에서 중요한 이미지, 예를 들어 첫 화면에 있는 배너 이미지나 로고 등은 사용자가 페이지를 로드할 때 바로 보여야 한다. lazy 속성을 사용하면 이러한 이미지들이 지연 로드될 수 있어, 사용자가 페이지를 로딩하는 데 불편을 겪을 수 있다. 즉, 중요한 콘텐츠의 즉시 로딩이 필요할 때는 부적합하다.
2. 구형 브라우저에서 지원되지 않을 수 있음
lazy 로딩은 최신 브라우저에서 대부분 지원되지만, 일부 구형 브라우저나 특수한 환경에서는 이 기능을 지원하지 않을 수 있다. 이 경우에는 자바스크립트를 사용해서 대체 기능을 구현해야 하므로 추가적인 개발이 필요할 수 있다.
3. 스크롤 성능에 영향을 미칠 수 있음
이미지가 동적으로 로딩되면서 사용자가 페이지를 스크롤할 때 성능 저하가 발생할 수 있다. 이미지가 많고, 스크롤 속도가 빠를 경우, 이미지 로딩이 비동기적으로 이루어져 스크롤이 원활하지 않거나 느려질 수 있다.
4. 불완전한 콘텐츠 로딩
때때로 lazy 로딩된 이미지를 로딩하는 동안 페이지를 빠르게 스크롤하면 이미지가 늦게 로드되거나 제대로 로드되지 않을 수 있다. 특히, 스크롤 속도나 네트워크 속도가 느리다면 이미지가 빈 화면으로 남을 수 있다.
결론
lazy 속성은 대부분의 이미지에 대해 성능 최적화를 할 수 있는 유용한 도구이지만, 모든 상황에 항상 적합한 것은 아니다. 중요한 콘텐츠나 반드시 즉시 로드되어야 하는 이미지가 있을 경우, lazy 로딩을 적용하면 오히려 사용자 경험이 나빠질 수 있다. 따라서, lazy 속성은 적절한 이미지와 페이지 콘텐츠에 대해서만 사용하는 것이 좋다. 예를 들어, 일반적인 콘텐츠 이미지는 lazy 로딩을 적용하고, 중요하거나 첫 화면에 보이는 이미지는 lazy를 사용하지 않는 방식으로 조절하는 것이 이상적이다.
iframe 요소란?
<iframe> 요소는 다른 웹 페이지나 콘텐츠를 현재 페이지에 삽입할 때 사용된다. 기본적으로 "inline frame"을 뜻하며, 외부 URL을 포함해 다른 HTML 문서나 비디오, 이미지 등을 표시할 수 있다. 외부 콘텐츠를 현재 페이지에 쉽게 삽입할 수 있다는 장점이 있다.
주요 속성
src: 삽입할 외부 페이지나 파일의 URL을 지정한다.
width, height: iframe의 크기를 설정한다.
sandbox: iframe 내 콘텐츠의 제한을 설정한다(예: 스크립트 실행 제한).
allowfullscreen: 콘텐츠의 전체 화면 표시를 허용한다.
title: iframe의 설명을 제공하여 접근성을 높인다.
사용 예시
외부 웹 페이지 삽입:
<iframe src="https://example.com" width="800" height="600"></iframe>
YouTube 비디오 삽입:
<iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" width="560" height="315" allowfullscreen></iframe>
Sandbox 속성
sandbox 속성으로 iframe을 사용할 때 보안을 강화할 수 있다.
sandbox 속성을 설정하면, 그 안의 콘텐츠는 기본적으로 제한된 환경에서 실행된다. 기본적으로 제한되는 항목은 다음과 같다:
1. 폼 제출 금지: <iframe> 내에서 폼 제출을 할 수 없어진다.
2. 스크립트 실행 금지: 외부 콘텐츠에서 자바스크립트 코드 실행을 차단한다.
3. 링크 대상 변경 금지: 링크를 새 창이나 탭에서 열 수 없게 된다.
4. 플러그인 사용 금지: 플래시나 자바 플러그인 등을 사용할 수 없다.
5. 상위 페이지와 상호작용 금지: iframe 내의 콘텐츠는 상위 페이지와 상호작용할 수 없다.
sandbox 속성에는 여러 값이 있을 수 있다. 특정 값을 추가하여 제한을 풀 수 있다.
1. allow-forms: 폼 제출을 허용한다.
2. allow-scripts: 자바스크립트 실행을 허용한다.
3. allow-same-origin: 동일 출처의 콘텐츠를 허용한다.
4. allow-popups: 팝업 창을 허용한다.
5. allow-top-navigation: 상위 페이지로의 네비게이션을 허용한다.
6. allow-pointer-lock: 포인터 잠금을 허용한다.
예시:
<iframe src="https://example.com" sandbox="allow-scripts allow-forms"></iframe>
이 경우 자바스크립트 실행과 폼 제출만 허용된다.
iframe 단점
SEO에 불리하며, iframe 내 콘텐츠는 검색 엔진에 의해 인식되지 않는다.
접근성 문제: 일부 사용자나 화면 읽기 프로그램에서 인식되지 않을 수 있다.
성능 저하: 외부 콘텐츠 로딩으로 페이지 성능에 영향을 줄 수 있다.
SEO란?
SEO(검색 엔진 최적화, Search Engine Optimization)란, 웹사이트가 검색 엔진에서 더 잘 보이도록 최적화하는 과정이다. 검색 엔진은 사용자가 특정 키워드를 검색할 때 관련된 웹페이지를 결과로 보여주는데, SEO는 그 결과에서 상위에 웹사이트가 나타날 수 있도록 돕는다.
SEO의 주요 목표는 검색 엔진 결과 페이지(SERP)에서 웹사이트의 순위를 높여, 더 많은 유입 트래픽을 얻는 것이다. 이를 통해 웹사이트의 가시성을 높이고, 방문자를 증가시킬 수 있다.
SEO의 핵심 요소
1. 키워드 최적화: 사람들이 자주 검색하는 키워드를 웹사이트 내용에 적절히 포함시켜 검색 엔진이 사이트 내용을 잘 이해하고 관련성을 높이도록 한다.
2. 콘텐츠 품질: 고품질의 유용하고 흥미로운 콘텐츠를 제공하면, 검색 엔진과 사용자 모두에게 긍정적인 영향을 준다. 이는 검색 엔진이 콘텐츠를 평가하는 중요한 기준 중 하나다.
3. 백링크: 다른 웹사이트에서 내 사이트로 링크를 걸어주는 것을 의미한다. 백링크는 검색 엔진에서 사이트의 신뢰도와 권위성을 높이는 데 도움이 된다.
4. 페이지 속도: 페이지 로딩 속도는 사용자 경험에 영향을 미친다. 빠른 로딩 속도는 검색 엔진 순위에 긍정적인 영향을 미친다.
5. 모바일 최적화: 모바일 사용자가 많아짐에 따라 모바일 친화적인 디자인은 SEO에서 중요한 요소가 된다. 모바일 최적화된 사이트는 검색 엔진에서 더 좋은 평가를 받는다.
6. 메타 태그와 제목 태그: 메타 태그(예: 메타 설명)와 제목 태그는 페이지의 내용을 요약하고 검색 엔진에 정보를 제공한다. 이를 잘 작성하면 검색 결과에서 클릭률(CTR)을 높일 수 있다. 사이트 구조 및 내부 링크: 검색 엔진이 사이트 구조를 잘 이해하도록 돕는 것도 중요하다. 예를 들어, 깔끔한 URL 구조, 사이트맵 제공, 내부 링크 등을 통해 사이트 내 정보의 흐름을 개선할 수 있다.
SEO의 종류
1. 온페이지 SEO (On-page SEO):
웹사이트 내에서 할 수 있는 최적화 작업으로, 키워드 사용, 콘텐츠 개선, 메타 태그 작성 등 웹페이지 자체를 최적화하는 작업이다.
2. 오프페이지 SEO (Off-page SEO):
웹사이트 외부에서 하는 최적화 작업으로, 주로 백링크 획득, 소셜 미디어 활동, 외부 사이트와의 협업 등을 포함한다.
3. 기술적 SEO (Technical SEO):
검색 엔진이 웹사이트를 잘 크롤링하고 인덱싱할 수 있도록 돕는 기술적인 작업이다. 예를 들어, 사이트의 로딩 속도 개선, HTTPS 보안 적용, 사이트맵 제공 등이 포함된다.
SEO의 중요성
SEO는 웹사이트의 트래픽을 증가시키는 중요한 전략이다. 상위 검색 결과에 노출되면 더 많은 사용자에게 사이트가 노출되고, 이는 궁극적으로 더 많은 방문자와 더 많은 전환(구매, 가입 등)을 이끌어낸다.
'풀스택 공부 > Udemy: The Complete 2024 Web Development' 카테고리의 다른 글
| Introduction to CSS: How to add CSS (0) | 2025.01.16 |
|---|---|
| Introduction to CSS: Why do we need CSS? (2) | 2025.01.16 |
| Intermediate HTML: Anchor Elements (0) | 2025.01.16 |
| Intermediate HTML: 중첩과 들여쓰기 (Nesting and Indentation) (0) | 2025.01.15 |
| Intermediate HTML: The List Element (0) | 2025.01.15 |