반응형 웹 디자인은 하나의 유연한 레이아웃을 사용하여 화면 크기에 따라 자동으로 크기와 구성이 변하도록 설계된 방식입니다. 화면 크기에 따라 비율을 유지하면서 콘텐츠가 조정됩니다.
주로 미디어 쿼리(media query), 유동적인 그리드(flexible grid), 유동적인 이미지(flexible image)를 사용하여 모든 디바이스에서 일관된 사용자 경험을 제공합니다.
단일 레이아웃을 사용하며, 화면 크기에 따라 요소들이 자동으로 확장되거나 축소됩니다.
뷰포트 크기에 맞춰 동적으로 변화하므로, 하나의 코드베이스로 다양한 디바이스를 커버할 수 있습니다.
미디어 쿼리를 사용하여 특정 조건에서 스타일을 변경합니다.
/* 반응형 미디어 쿼리 */
@media (max-width: 768px) {
.container {
width: 100%;
padding: 10px;
}
}
적응형 웹 디자인은 고정된 레이아웃을 미리 만들어 놓고, 특정한 화면 크기에 맞춘 여러 가지 디자인 버전을 제공하는 방식입니다. 사용자가 접속한 기기나 해상도에 따라 미리 정의된 레이아웃 중 하나를 선택합니다.
여러 개의 고정된 레이아웃(breakpoints)을 준비하고, 각 레이아웃이 특정 뷰포트에서만 적용되도록 설정합니다.
각기 다른 화면 크기(예: 모바일, 태블릿, 데스크탑)에 맞춘 고정된 레이아웃을 만듭니다.
사용자가 접속하는 화면 크기에 맞춰 미리 정의된 레이아웃을 불러옵니다.
디바이스에 맞춘 여러 레이아웃을 만들어야 하기 때문에 복잡성이 증가할 수 있습니다.
장점: 각 레이아웃이 개별적으로 최적화되기 때문에 특정 기기에서 최적의 성능과 사용자 경험을 제공할 수 있습니다.
단점: 새로운 화면 크기나 디바이스가 등장할 때마다 추가적인 작업이 필요할 수 있습니다.
유지보수와 업데이트가 다소 복잡할 수 있습니다.
/* 적응형 미디어 쿼리 - 특정 해상도에 맞춘 레이아웃 */
@media (max-width: 480px) {
.container {
width: 320px;
}
}
@media (min-width: 481px) and (max-width: 1024px) {
.container {
width: 768px;
}
}
구분 | 반응형(Responsive) | 적응형(Adaptive) |
---|---|---|
레이아웃 | 유연한 레이아웃, 화면 크기에 따라 자동으로 변함 | 고정된 여러 레이아웃을 미리 만들어 특정 화면 크기에 맞춤 |
미디어 쿼리 | 다양한 화면 크기에 맞춰 유동적으로 스타일 조정 | 특정 화면 크기(breakpoint)에 맞춰 고정된 스타일 적용 |
코드 구조 | 단일 레이아웃에 유연한 스타일을 적용 | 여러 레이아웃을 미리 만들어 디바이스에 따라 다른 디자인 제공 |
적응성 | 하나의 디자인으로 다양한 디바이스 커버 | 특정 기기나 해상도에 최적화된 디자인 제공 |
유지보수 | 상대적으로 쉽고 유연함 | 기기마다 디자인을 새로 만들어야 하므로 복잡할 수 있음 |