PC에서는 멀쩡한데 모바일에서 깨진다? “viewport 메타태그” 하나 확인!
들어가며
웹페이지를 만들고 PC에서 확인했을 때는 아무런 문제가 없는데 스마트폰으로 접속하는 순간 화면이 이상하게 보이는 경우가 있습니다.
글자가 너무 작게 나오거나, 페이지 전체가 축소된 것처럼 보이기도 하고, 가로 스크롤이 생기는 경우도 있습니다.
반응형 CSS를 열심히 작성했는데도 모바일 화면이 생각처럼 나오지 않는다면 HTML의 <head> 부분부터 확인해볼 필요가 있습니다.
특히 다음과 같은 viewport 메타태그가 제대로 들어가 있는지 확인해보는 것이 좋습니다.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
요즘 반응형 웹페이지를 만들 때 자주 볼 수 있는 코드인데요.
한 줄짜리 코드라서 별것 아닌 것처럼 보이지만 모바일 브라우저에서 웹페이지를 표시하는 방식과 관련된 중요한 설정입니다.
viewport 메타태그란?
먼저 viewport가 무엇인지부터 알아보겠습니다.
쉽게 말하면 viewport는 웹페이지가 브라우저 화면에서 표시되는 영역이라고 생각하면 이해하기 쉽습니다.
PC에서는 비교적 넓은 화면을 기준으로 웹페이지가 표시됩니다.
하지만 스마트폰은 화면의 물리적인 크기가 작고, 기기마다 화면 너비와 해상도가 다릅니다.
따라서 모바일 브라우저가 웹페이지를 어떤 화면 너비를 기준으로 표시할 것인지 알려줄 필요가 있습니다.
바로 이 역할을 하는 것이 viewport 메타태그입니다.
대표적으로 다음 코드를 사용합니다.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
반응형 웹을 구현할 때 거의 기본적으로 사용되는 코드라고 생각하면 됩니다.
width=device-width는 무슨 뜻일까?
이제 코드를 하나씩 살펴보겠습니다.
먼저 다음 부분입니다.
width=device-width
말 그대로 viewport의 너비를 현재 기기의 화면 너비에 맞추겠다는 의미입니다.
스마트폰으로 접속하면 스마트폰 화면의 너비를 기준으로 하고, 다른 기기에서는 해당 기기의 화면 너비를 기준으로 페이지를 표시하게 됩니다.
이 설정이 없으면 모바일 브라우저가 웹페이지를 표시할 때 예상하지 못한 방식으로 화면을 처리할 수 있습니다.
특히 반응형 CSS에서 사용하는 미디어 쿼리와 화면 크기 판단에도 영향을 줄 수 있기 때문에 모바일 웹페이지에서는 중요합니다.
예를 들어 CSS에 다음과 같은 코드가 있다고 해보겠습니다.
@media (max-width: 768px) {
.menu {
display: none;
}
}
화면 너비가 768px 이하일 때 메뉴를 변경하도록 작성한 것입니다.
그런데 모바일 브라우저가 실제 기기 화면 너비와 다른 방식으로 viewport를 처리한다면 개발자가 예상한 결과와 실제 스마트폰에서 보이는 결과가 달라질 수 있습니다.
그래서 반응형 웹을 만들 때 viewport 설정을 함께 확인하는 것입니다.
initial-scale=1.0은 무엇일까?
다음은
initial-scale=1.0
입니다.
이 부분은 웹페이지가 처음 열렸을 때의 초기 확대 비율을 1배율로 설정하는 역할을 합니다.
쉽게 생각하면 처음 페이지를 열었을 때 기본적인 확대 비율로 표시하도록 지정하는 것입니다.
따라서 다음과 같은 코드를 함께 사용하는 경우가 많습니다.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
여기서
width=device-width
는 화면 너비를 기기의 viewport 너비에 맞추는 설정이고,
initial-scale=1.0
은 페이지의 초기 배율을 1.0으로 설정하는 부분입니다.
두 설정을 함께 사용하면 모바일 화면을 기준으로 웹페이지가 표시되도록 기본적인 환경을 잡을 수 있습니다.
viewport가 없으면 어떻게 될까?
그렇다면 viewport 메타태그를 넣지 않으면 무조건 웹페이지가 깨지는 것일까요?
꼭 그렇다고 단정할 수는 없습니다.
웹페이지의 구조와 CSS, 브라우저의 처리 방식 등에 따라 결과는 달라질 수 있습니다.
다만 모바일을 고려한 반응형 웹페이지를 만들고 있다면 viewport 설정이 빠져 있는지 먼저 확인하는 것이 좋습니다.
특히 PC 화면만 확인하고 개발을 진행하다가 실제 스마트폰에서 테스트했을 때 문제가 발견되는 경우가 있습니다.
예를 들어 PC에서는 다음과 같이 정상적으로 보였다고 해보겠습니다.
[ PC 화면 ]
┌──────────────────────┐
│ 웹사이트 │
│ 메뉴 메뉴 메뉴 │
│ │
│ 콘텐츠 │
└──────────────────────┘
그런데 모바일에서는 화면이 전체적으로 축소되어 글자가 너무 작게 보일 수 있습니다.
또는 고정된 넓이의 요소 때문에 오른쪽으로 화면이 밀려 가로 스크롤이 생길 수도 있습니다.
이런 상황에서는 CSS만 확인하지 말고 HTML의 viewport 설정도 함께 확인하는 것이 좋습니다.
반응형 웹에서는 viewport와 CSS를 같이 봐야 한다
여기서 한 가지 중요한 부분이 있습니다.
viewport 메타태그를 넣었다고 해서 웹사이트가 자동으로 반응형 웹이 되는 것은 아닙니다.
이 부분을 헷갈리는 경우가 꽤 있습니다.
viewport는 모바일 브라우저가 페이지의 화면 영역과 초기 배율을 어떻게 처리할지 지정하는 역할을 합니다.
실제 화면의 레이아웃을 모바일에 맞게 변경하는 것은 CSS의 역할입니다.
예를 들어 다음처럼 미디어 쿼리를 사용할 수 있습니다.
.container {
width: 1200px;
}
@media (max-width: 768px) {
.container {
width: 100%;
}
}
이런 식으로 화면 크기에 따라 레이아웃을 변경해야 실제 반응형 웹페이지를 만들 수 있습니다.
따라서 기본적인 관계를 정리하면 다음과 같습니다.
viewport
↓
모바일 브라우저의 화면 표시 기준 설정
CSS Media Query
↓
화면 크기에 따른 레이아웃 변경
HTML
↓
웹페이지 구조
세 가지가 서로 다른 역할을 한다고 생각하면 이해하기 쉽습니다.
viewport 메타태그는 어디에 넣을까?
viewport 메타태그는 일반적으로 HTML 문서의 <head> 영역에 넣습니다.
예를 들어 기본적인 HTML 문서는 다음과 같은 형태가 될 수 있습니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>웹페이지</title>
</head>
<body>
<h1>반응형 웹페이지</h1>
</body>
</html>
중요한 것은 <body> 안에 넣는 것이 아니라 <head> 영역에 작성하는 것입니다.
기존 HTML 프로젝트를 수정하고 있다면 <head> 안에 viewport 메타태그가 있는지 먼저 확인해보면 됩니다.
모바일 웹 개발에서 자주 사용하는 이유
요즘은 웹사이트에 접속할 때 PC만 사용하는 것이 아닙니다.
스마트폰이나 태블릿을 이용해 웹페이지를 확인하는 경우도 많습니다.
그래서 처음부터 다양한 화면 크기를 고려해서 웹페이지를 제작하는 경우가 많습니다.
특히 블로그, 쇼핑몰, 회사 홈페이지, 관리자 페이지 등 모바일에서도 접근해야 하는 서비스라면 반응형 웹을 고려하는 것이 좋습니다.
이때 HTML의 viewport 설정은 기본적인 출발점이라고 볼 수 있습니다.
물론 실제 모바일 최적화를 위해서는 viewport 하나만 설정하는 것으로 끝나지 않습니다.
이미지 크기, 고정된 width 값, CSS 미디어 쿼리, 글자 크기, 버튼 크기, 메뉴 구조 등 여러 요소를 함께 확인해야 합니다.
모바일 화면이 이상할 때 체크해볼 것
스마트폰에서 웹페이지가 이상하게 표시된다면 다음 순서로 확인해보는 것도 좋습니다.
먼저 HTML의 <head>를 확인합니다.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
위와 같은 viewport 메타태그가 있는지 확인합니다.
그다음 CSS에서 지나치게 큰 고정 너비가 설정되어 있는지 확인합니다.
예를 들어 다음과 같은 코드가 있다면 모바일 화면에서 문제가 발생할 가능성을 생각해볼 수 있습니다.
.container {
width: 1200px;
}
모바일 화면의 실제 너비보다 훨씬 큰 요소가 그대로 표시되기 때문입니다.
이런 부분은 미디어 쿼리 등을 이용해서 모바일 환경에 맞게 조정할 필요가 있습니다.
마지막으로 실제 스마트폰이나 개발자 도구의 모바일 화면에서 테스트해보는 것이 좋습니다.
PC 브라우저 창의 크기만 줄여보는 것과 실제 모바일 브라우저에서 확인하는 것은 결과가 다를 수 있기 때문입니다.
마무리
<meta name="viewport" content="width=device-width, initial-scale=1.0">는 짧은 한 줄이지만 모바일 웹페이지를 만들 때 자주 사용되는 중요한 설정입니다.
다시 정리하면 다음과 같습니다.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
여기서
width=device-width
는 viewport 너비를 현재 기기의 화면 너비에 맞추는 설정이고,
initial-scale=1.0
은 페이지를 처음 열었을 때의 초기 배율을 1.0으로 설정하는 부분입니다.
다만 viewport 메타태그 하나만 추가한다고 해서 반응형 웹이 완성되는 것은 아닙니다.
실제 모바일 화면에 맞게 페이지를 구성하려면 CSS의 미디어 쿼리와 유동적인 레이아웃, 이미지 크기, 글자 크기 등을 함께 조정해야 합니다.
그래도 모바일 웹페이지를 처음 만들거나 기존 사이트의 모바일 화면이 이상하게 보이는 문제를 확인하고 있다면 가장 먼저 HTML의 <head>에 있는 viewport 메타태그부터 확인해보는 것이 좋습니다.
PC에서는 멀쩡한데 스마트폰에서 페이지가 지나치게 작게 보이거나 레이아웃이 예상과 다르게 표시된다면, CSS만 계속 수정하기 전에 이 한 줄이 제대로 들어가 있는지 한번 확인해보세요.
홍TV



![Eclipse에서 갑자기 "[m2e] Lifecycle Mapping" 오류? Maven 프로젝트가 빨간 줄 뜨는 이유 4 Eclipse에서 갑자기 [m2e] Lifecycle Mapping 오류? Maven 프로젝트가 빨간 줄 뜨는 진짜 이유](https://hongtv.co.kr/wp-content/uploads/2026/09/62edeb0f-aaf8-42cc-af31-1a91e54bc187-300x200.png)
댓글 0
첫 댓글을 남겨보세요.