수련  ›  기초 — 예쁜 사이트로  ›  CH7 / 7
기초 — 예쁜 사이트로 ⏱ 12분 +160 XP

반응형 레이아웃

모바일을 기본으로 두고 화면이 넓어질 때 단계적으로 펼치는 모바일 우선 설계를 익힙니다.

🧑‍🏫
멘토 한마디
조급해하지 마세요. 한 챕터, 한 문제씩이면 충분합니다. 제가 응원할게요! 🚀

같은 사이트라도 작은 휴대폰과 넓은 데스크톱에서 좋아 보이는 배치는 다릅니다. 화면 너비에 따라 레이아웃이 알아서 바뀌도록 만드는 것을 반응형(responsive) 디자인이라고 합니다. 이 챕터에서는 그중에서도 권장되는 방식인 모바일 우선(mobile-first) 설계를 배웁니다. 모바일 우선이란 가장 좁은 화면을 기본으로 먼저 만들고, 화면이 넓어질 때 스타일을 더해 가는 순서를 말합니다.

왜 모바일을 기본으로 두는가

좁은 화면은 보여 줄 공간이 적어 꼭 필요한 것만 세로로 쌓게 됩니다. 이 기본 위에 넓을 때만 가로 배치나 여백을 더하는 편이, 반대로 데스크톱을 먼저 만들고 좁힐 때 무엇을 숨길지 고민하는 것보다 단순합니다. 군더더기 없이 시작해 점점 더하는 방향이 사고를 가볍게 합니다.

기본 스타일은 모든 화면에 적용되고, 접두어가 붙은 스타일은 그 너비 이상에서만 추가로 적용됩니다. 즉 작은 화면이 출발점이고 큰 화면이 덧칠입니다.

브레이크포인트

레이아웃이 바뀌는 너비 경계를 브레이크포인트(breakpoint)라고 합니다. Tailwind는 이 경계마다 접두어를 제공합니다. 접두어가 없는 클래스는 모든 화면에, md:가 붙은 클래스는 중간 화면 이상에서만 적용됩니다.

접두어적용 시작 너비(대략)대상
(없음)0px모든 화면 / 모바일
sm:640px큰 휴대폰
md:768px태블릿
lg:1024px데스크톱
접두어는 '이 너비 이상에서'를 뜻하지 '이 너비에서만'을 뜻하지 않습니다. md: 스타일은 태블릿은 물론 그보다 넓은 데스크톱에도 그대로 이어집니다.

세로에서 가로로

대표적인 반응형 패턴은 모바일에서 세로로 쌓인 카드를 넓은 화면에서 가로 여러 칸으로 펼치는 것입니다. flex-col은 세로 정렬, md:flex-row는 중간 화면 이상에서 가로 정렬입니다.

<div class="flex flex-col gap-4 md:flex-row">
  <div class="card">카드 1</div>
  <div class="card">카드 2</div>
  <div class="card">카드 3</div>
</div>

그리드 칸 수 늘리기

그리드를 쓰면 칸 수를 너비에 따라 늘릴 수 있습니다. 모바일은 한 칸, 태블릿은 두 칸, 데스크톱은 세 칸으로 자연스럽게 확장합니다.

<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
  ...
</div>
  • grid-cols-1 — 기본(모바일)은 한 칸으로 세로로 쌓습니다.
  • md:grid-cols-2 — 태블릿 이상에서 두 칸으로 나눕니다.
  • lg:grid-cols-3 — 데스크톱 이상에서 세 칸으로 펼칩니다.
  1. 모바일 기준으로 세로 배치를 먼저 완성합니다.
  2. 좁은 화면에서 이미 보기 좋은지 확인합니다.
  3. md:, lg: 접두어로 넓을 때의 배치를 더합니다.
  4. 브라우저 너비를 줄였다 늘리며 단계마다 점검합니다.
모바일 우선에서 기본 클래스에 flex-row를 적어 두고 md:flex-col로 좁힐 때 세로로 바꾸려는 시도는 방향이 거꾸로입니다. 그러면 가장 작은 화면이 가로로 꽉 차 깨지기 쉽습니다. 기본은 항상 좁은 화면(세로) 기준으로 두고, 넓을 때만 접두어로 가로를 더하세요.
AD

이해도 퀴즈 (10문항)

정답 6개 이상 → +160 XP

배운 내용을 정확히 점검해 보세요. 10문항 중 6문항 이상 맞히면 챕터가 완료되고 경험치(XP)가 적립됩니다. 난이도는 문항마다 ··으로 섞여 있어요.

하 쉬움중 보통상 어려움
Q1.반응형(responsive) 디자인을 가장 잘 설명한 것은?
Q2.'모바일 우선(mobile-first)' 설계의 순서를 옳게 설명한 것은?
Q3.레이아웃이 바뀌는 너비 경계를 부르는 말은?
Q4.Tailwind에서 접두어가 없는 기본 클래스는 어느 화면에 적용되나요?
Q5.Tailwind에서 md: 접두어가 적용되는 범위는?
Q6.태블릿 이상부터 적용하고 싶을 때 쓰는 접두어는?
Q7.flex-col 과 md:flex-row 가 함께 쓰였을 때의 의미는?
Q8.grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 은 화면별로 몇 칸이 되나요?
Q9.모바일을 기본으로 두는 것이 더 단순한 이유로 옳은 것은?
Q10.모바일 우선 원칙에 어긋나는 작성은?

📚 함께 보면 좋은 정보글

정보글
Tailwind 30분 압축
정보글
저작권 걱정 없는 이미지 구하기
AD