본문 바로가기

뷰포트 메타 태그 설정 방법 총정리 - 모바일 화면 깨짐을 한 줄로 해결하는 가이드

모바일에서 글자가 작게 보이거나 화면이 잘리는 문제는 대부분 뷰포트 메타 태그 하나로 해결됩니다. width=device-width부터 viewport-fit까지 속성별 설정법과 자주 하는 실수를 정리했습니다.


뷰포트 메타 태그 설정 방법 총정리 - 모바일 화면 깨짐을 한 줄로 해결하는 가이드

PC에서는 멀쩡하게 보이던 웹페이지가 스마트폰으로 열면 글자가 깨알같이 작아지고, 손가락으로 확대해야만 겨우 읽을 수 있었던 경험이 있으실 겁니다. 원인은 대부분 단 한 줄, 뷰포트 메타 태그가 빠져 있기 때문입니다. 뷰포트 메타 태그 설정은 모바일 웹 최적화의 출발점이고, 구글의 모바일 친화성 평가에도 직접 영향을 주는 요소입니다. 코드 한 줄이지만 알고 쓰는 것과 복사해서 쓰는 것은 다릅니다.

뷰포트 메타 태그가 필요한 이유

뷰포트(viewport)는 브라우저에서 웹페이지가 실제로 표시되는 영역을 말합니다. 문제는 모바일 브라우저의 기본 동작입니다. 뷰포트 설정이 없는 페이지를 만나면 브라우저는 가로 약 980px짜리 가상 화면을 기준으로 페이지를 그린 뒤, 그 결과물을 좁은 스마트폰 화면에 통째로 축소해서 보여줍니다.

아이폰의 CSS 기준 가로 폭이 390px 안팎인데 980px 화면을 구겨 넣으니 글자가 절반 이하 크기로 줄어드는 것입니다. 뷰포트 메타 태그 설정은 브라우저에게 이 페이지는 기기 화면 폭에 맞춰 그려 달라고 알려주는 선언입니다. 이 태그가 없으면 다음과 같은 증상이 나타납니다.

  • 글자가 너무 작아 확대 없이는 읽기 어렵습니다
  • 페이지에 불필요한 가로 스크롤이 생깁니다
  • 반응형 CSS 미디어 쿼리가 의도대로 동작하지 않습니다
  • Lighthouse 등 성능·SEO 진단 도구에서 감점을 받습니다

표준 설정 코드 한 줄

HTML 문서의 head 안에 아래 한 줄을 넣으면 됩니다. 특별한 사정이 없다면 이것이 정답에 가장 가까운 형태입니다.

<meta name="viewport" content="width=device-width, initial-scale=1">

width=device-width는 뷰포트 폭을 기기의 화면 폭에 맞추라는 뜻이고, initial-scale=1은 처음 로딩할 때 확대나 축소 없이 100% 배율로 보여 달라는 뜻입니다. 미디어 쿼리는 이 뷰포트 폭을 기준으로 판정되기 때문에, 반응형 CSS를 쓴다면 이 태그가 반드시 먼저 있어야 합니다.

뷰포트 메타 태그는 디자인 요소가 아니라 브라우저와 맺는 렌더링 계약입니다. 이 한 줄이 없으면 아무리 정교한 반응형 CSS를 짜도 브라우저는 980px 데스크톱 화면을 기준으로 페이지를 그립니다.

속성별 옵션 총정리

content 안에는 쉼표로 구분해 여러 속성을 넣을 수 있습니다. 각 속성의 역할과 권장 값을 표로 정리했습니다.

속성역할권장 값
width뷰포트 가로 폭 지정device-width
initial-scale최초 로딩 시 확대 배율1
minimum-scale / maximum-scale축소·확대 배율의 하한과 상한특별한 이유가 없으면 미지정
user-scalable사용자의 손가락 확대 허용 여부yes (기본값 유지)
viewport-fit노치·펀치홀 영역까지 화면 사용필요할 때만 cover
interactive-widget가상 키보드 등장 시 화면 처리 (크롬 108 이상)필요할 때만 resizes-content
참고: iOS 사파리는 iOS 10부터 user-scalable=no를 무시하고 사용자 확대를 허용합니다. 저시력 사용자의 접근성을 지키기 위한 조치로, 웹 접근성 지침(WCAG)도 텍스트를 200%까지 확대할 수 있어야 한다고 요구합니다.

자주 하는 실수와 해결법

확대를 강제로 막는 설정

user-scalable=no나 maximum-scale=1을 넣어 확대를 차단하는 경우가 가장 흔한 실수입니다. 글자가 잘 안 보이는 사용자에게는 치명적이고, 접근성 진단에서도 감점 대상입니다. 확대해도 레이아웃이 깨지지 않게 만드는 것이 정석이지, 확대 자체를 막는 것은 해결책이 아닙니다.

width에 고정 숫자를 넣는 경우

width=1200처럼 고정 픽셀 값을 넣으면 그 폭과 비슷한 기기에서만 정상으로 보입니다. 스마트폰 화면 폭은 기기마다 320px에서 480px 이상까지 다양하므로 device-width를 쓰는 것이 원칙입니다.

태그는 넣었는데 가로 스크롤이 생기는 경우

뷰포트 설정이 올바른데도 가로 스크롤이 생긴다면 원인은 CSS 쪽에 있습니다. 아래 항목을 순서대로 점검해 보세요.

  • 고정 px 폭을 가진 컨테이너나 배너 요소
  • max-width:100% 처리가 안 된 이미지, 동영상, iframe
  • 화면 밖으로 삐져나간 position:absolute 요소
  • 100vw 사용 시 세로 스크롤바 폭만큼 넘치는 문제

적용 확인과 테스트 방법

가장 빠른 확인 방법은 크롬 개발자 도구입니다. F12를 누른 뒤 Ctrl+Shift+M을 누르면 디바이스 모드로 전환되고, 여러 기기의 화면 폭에서 페이지가 어떻게 보이는지 즉시 확인할 수 있습니다. Lighthouse 검사를 돌리면 viewport 태그 존재 여부를 별도 항목으로 짚어 줍니다.

다만 에뮬레이터는 실제 기기와 미세하게 다르게 렌더링할 수 있어서 최종 확인은 진짜 스마트폰으로 하는 것이 좋습니다. 이때 작업 중인 페이지 주소를 QR코드 생성기로 만들어 두면 주소를 일일이 입력할 필요 없이 카메라로 찍어 바로 열 수 있어 테스트 속도가 훨씬 빨라집니다.

모바일 최적화는 화면 표시에서 끝나지 않고 검색 노출로 이어집니다. 모바일 검색 결과에서는 페이지 제목이 대략 30자 안팎에서 잘리기 때문에, 뷰포트를 정비하는 김에 글자수 세기 도구로 제목과 설명 문구의 길이도 함께 점검해 두면 좋습니다.

팁: 노치가 있는 아이폰에서 배경을 화면 끝까지 채우고 싶다면 viewport-fit=cover를 추가하고, CSS에서 env(safe-area-inset-top) 같은 안전 영역 변수로 콘텐츠 여백을 확보하세요. 둘은 반드시 세트로 사용해야 합니다.

오늘 바로 할 일 두 가지

첫째, 운영 중인 페이지의 head에 표준 뷰포트 메타 태그가 있는지 확인하고 없으면 지금 추가하세요. 둘째, 크롬 디바이스 모드와 실제 스마트폰에서 가로 스크롤이 생기는 화면 폭이 없는지 훑어보세요. 이 두 가지만 끝내도 모바일 사용성 문제의 상당 부분은 사라집니다.

3일 무료체험큰손탐지기, 지금 바로 시작하세요

설치 없이 웹에서 바로 사용 가능 · PC & 모바일 지원

무료체험 시작
카카오톡 상담