부트스트랩(Bootstrap)을 사용한 반응형 웹사이트 디자인 방법 > 그누보드테마로 SEO 최적화 적용된 홈페이지제작 - 티로그몰

profile_image
작성자 티로그
작성일Updated on: 2025-03-06 16:11:07

부트스트랩(Bootstrap)을 사용한 반응형 웹사이트 디자인 방법

부트스트랩(Bootstrap)을 사용한 반응형 웹사이트 디자인 방법

Bootstrap을 사용한 반응형 웹사이트 디자인 방법

Bootstrap의 그리드 시스템과 다양한 컴포넌트를 활용해 빠르고 손쉽게 반응형 웹사이트를 구축하는 방법을 살펴봅니다.

1. Bootstrap이란?

Bootstrap은 트위터(Twitter) 개발자들이 시작한 오픈 소스 프론트엔드 프레임워크로, HTML/CSS/JavaScript로 구성되어 있습니다. 이미 정의된 스타일과 컴포넌트를 제공하므로, 복잡한 코드를 일일이 작성하지 않아도 기본적인 반응형 디자인이 적용된 웹사이트를 빠르게 만들 수 있습니다.

  • 반응형 디자인(Responsive Design): 다양한 디바이스(모바일, 태블릿, 데스크톱)에 최적화
  • 그리드 시스템(Grid System): 12개 컬럼으로 간편하게 레이아웃 구성
  • 다양한 컴포넌트: 버튼, 네비게이션 바, 카드, 폼, 모달 등
  • 사용 편의성: HTML 요소에 클래스만 추가하면 스타일이 자동 적용

2. Bootstrap 프로젝트 환경 준비

CDN 방식을 사용하면 head 태그에 link를 추가하는 것만으로 Bootstrap을 바로 쓸 수 있고, 필요에 따라 npm을 통해 설치해 번들러 환경에서 사용할 수도 있습니다.

2.1. CDN으로 사용

HTML head에 다음 CSS 링크를 추가합니다:


<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
  integrity="sha384-9ndCyUaKZ7+3pr6GVR3vBhxa1hq/m/Q5r6p7AxW+OECbAyHr6p5mqfJQ5p2/ckTZ"
  crossorigin="anonymous"
/>
        

그리고 body 태그 바로 위쪽 등에 JS 파일을 로드합니다:


<script
  src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
  integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7l+6UfclCFfPeBvKnnkBMOzJp3A1T1x"
  crossorigin="anonymous"></script>
        
2.2. NPM으로 설치 (선택 사항)

npm install bootstrap
        

이후 Webpack, Vite 등의 번들러 환경에서 import 'bootstrap/dist/css/bootstrap.min.css'; 형태로 가져와 사용할 수 있습니다.

3. Bootstrap의 반응형 그리드 시스템 이해하기

Bootstrap은 12개의 가상 컬럼을 기반으로 레이아웃을 구성합니다. 한 줄에 최대 12개의 컬럼을 배치할 수 있으며, 브레이크포인트에 따라 컬럼 폭을 쉽게 조절합니다.

3.1. 기본 사용법
  • .container, .container-fluid: 콘텐츠를 담는 컨테이너
  • .row: 행(Row)을 의미
  • .col-{size}-{number}: 열(Column)을 의미
    예: .col-md-6md(768px 이상)에서 컬럼 폭 6/12를 의미

브레이크포인트(Breakpoints) 예시:

  • sm : 576px 이상
  • md : 768px 이상
  • lg : 992px 이상
  • xl : 1200px 이상
  • xxl: 1400px 이상
3.2. 예시 코드

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Bootstrap 반응형 그리드 예시</title>
  <link
    rel="stylesheet"
    href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
  />
</head>
<body>

  <div class="container">
    <!-- 1. 간단한 그리드 -->
    <div class="row">
      <div class="col-12 col-md-6 bg-primary text-white p-3">컬럼1</div>
      <div class="col-12 col-md-6 bg-secondary text-white p-3">컬럼2</div>
    </div>

    <!-- 2. 다양한 브레이크포인트 지정 -->
    <div class="row mt-3">
      <div class="col-sm-4 col-md-3 col-lg-2 bg-info text-white p-3 mb-2">A</div>
      <div class="col-sm-4 col-md-3 col-lg-2 bg-danger text-white p-3 mb-2">B</div>
      <div class="col-sm-4 col-md-3 col-lg-2 bg-warning text-white p-3 mb-2">C</div>
      <div class="col-sm-4 col-md-3 col-lg-2 bg-success text-white p-3 mb-2">D</div>
      <div class="col-sm-4 col-md-3 col-lg-2 bg-dark text-white p-3 mb-2">E</div>
      <div class="col-sm-4 col-md-3 col-lg-2 bg-primary text-white p-3 mb-2">F</div>
    </div>
  </div>

  <script
    src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
  ></script>
</body>
</html>
      

화면 크기에 따라 자동으로 컬럼 배열이 변경되는 원리를 쉽게 확인할 수 있습니다.

4. 반응형 디자인을 위한 핵심 컴포넌트

4.1. 반응형 Navbar

내비게이션 바는 작은 화면(모바일)에서는 햄버거 메뉴 아이콘으로, 큰 화면(데스크톱)에서는 풀 메뉴로 표시하는 것이 일반적입니다.


<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">로고</a>
    <button
      class="navbar-toggler"
      type="button"
      data-bs-toggle="collapse"
      data-bs-target="#mainNavbar"
      aria-controls="mainNavbar"
      aria-expanded="false"
      aria-label="Toggle navigation"
    >
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="mainNavbar">
      <ul class="navbar-nav ms-auto mb-2 mb-lg-0">
        <li class="nav-item">
          <a class="nav-link active" href="#">홈</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">소개</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">서비스</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">문의</a>
        </li>
      </ul>
    </div>
  </div>
</nav>
      
4.2. 반응형 이미지

.img-fluid 클래스를 사용하면 이미지가 자동으로 컨테이너 너비에 맞춰 축소/확대됩니다.


<img src="images/sample.jpg" class="img-fluid" alt="반응형 예시 이미지" />
      
4.3. 카드(Card) 컴포넌트

간단한 게시글, 상품 정보, 프로필 등을 반응형으로 예쁘게 정리할 수 있는 컴포넌트입니다.


<div class="card mb-3" style="max-width: 540px;">
  <div class="row g-0">
    <div class="col-md-4">
      <img src="images/card-sample.jpg" class="img-fluid rounded-start" alt="..." />
    </div>
    <div class="col-md-8">
      <div class="card-body">
        <h5 class="card-title">카드 제목</h5>
        <p class="card-text">
          여기에는 카드 본문 텍스트가 들어갑니다. 설명이나 요약 정보를 표시할 수 있습니다.
        </p>
        <p class="card-text">
          <small class="text-muted">마지막 업데이트 3분 전</small>
        </p>
      </div>
    </div>
  </div>
</div>
      

5. 예시 프로젝트 구조

간단한 랜딩 페이지 구성을 예시로 들어봅니다. 다양한 섹션(헤더, 히어로 섹션, 피처, 푸터 등)을 Bootstrap 컴포넌트와 그리드 시스템으로 구성합니다.


<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Bootstrap 반응형 랜딩 페이지</title>
  <link
    rel="stylesheet"
    href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
  />
</head>
<body>
  <!-- 1) Navbar -->
  <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <div class="container-fluid">
      <a class="navbar-brand" href="#">MySite</a>
      <button
        class="navbar-toggler"
        type="button"
        data-bs-toggle="collapse"
        data-bs-target="#navbarContent"
      >
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarContent">
        <ul class="navbar-nav ms-auto">
          <li class="nav-item"><a class="nav-link" href="#">Home</a></li>
          <li class="nav-item"><a class="nav-link" href="#">Features</a></li>
          <li class="nav-item"><a class="nav-link" href="#">Pricing</a></li>
          <li class="nav-item"><a class="nav-link" href="#">Contact</a></li>
        </ul>
      </div>
    </div>
  </nav>

  <!-- 2) Hero Section -->
  <section class="bg-light text-center p-5">
    <div class="container">
      <h1 class="display-4">반응형 웹사이트를 손쉽게 만들기</h1>
      <p class="lead">Bootstrap과 함께라면 반응형 디자인은 어렵지 않습니다.</p>
      <button class="btn btn-primary btn-lg">시작하기</button>
    </div>
  </section>

  <!-- 3) Feature Section -->
  <section class="py-5">
    <div class="container">
      <div class="row">
        <div class="col-md-4 mb-4">
          <div class="card h-100">
            <img src="images/feature1.jpg" class="card-img-top" alt="기능 1" />
            <div class="card-body">
              <h5 class="card-title">기능 1</h5>
              <p class="card-text">
                이 텍스트는 부트스트랩 카드 컴포넌트를 통해 깔끔하게 꾸며집니다.
              </p>
              <a href="#" class="btn btn-outline-primary">자세히 보기</a>
            </div>
          </div>
        </div>
        <div class="col-md-4 mb-4">
          <div class="card h-100">
            <img src="images/feature2.jpg" class="card-img-top" alt="기능 2" />
            <div class="card-body">
              <h5 class="card-title">기능 2</h5>
              <p class="card-text">
                카드 레이아웃으로 반응형 기능을 손쉽게 적용할 수 있습니다.
              </p>
              <a href="#" class="btn btn-outline-secondary">자세히 보기</a>
            </div>
          </div>
        </div>
        <div class="col-md-4 mb-4">
          <div class="card h-100">
            <img src="images/feature3.jpg" class="card-img-top" alt="기능 3" />
            <div class="card-body">
              <h5 class="card-title">기능 3</h5>
              <p class="card-text">
                모바일, 태블릿, 데스크톱에서도 최적화된 UI를 제공합니다.
              </p>
              <a href="#" class="btn btn-outline-success">자세히 보기</a>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>

  <!-- 4) Footer -->
  <footer class="bg-dark text-white text-center p-3">
    <p>© 2025 MySite. All rights reserved.</p>
  </footer>

  <script
    src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
  ></script>
</body>
</html>
      

6. 반응형 디자인 팁 & 모범 사례

  1. 모바일 우선(Mobile First) 접근 가장 작은 화면 기준(.col-12)으로 잡고, 화면이 커질수록 세분화(예: .col-md-6)하여 레이아웃을 조정합니다.
  2. 콘텐츠 우선 이미지나 텍스트에 .img-fluid 등 반응형 클래스를 적용해, 어느 화면 크기에서든 내용이 어색하지 않도록 합니다.
  3. 유틸리티 클래스 활용 여백(.mt-3, .mb-4 등)이나 텍스트 색상, 반응형 속성 등을 빠르게 조정할 수 있어 편리합니다.
  4. 불필요한 CSS 최소화 CDN을 사용할 때는 전체 스타일이 로드되지만, 성능이 중요할 경우 SASS 커스텀 빌드를 통해 필요한 부분만 가져올 수도 있습니다.

7. 마무리

이처럼 Bootstrap을 사용하면 복잡한 미디어 쿼리를 직접 작성하지 않고도 간편하게 반응형 웹사이트를 만들 수 있습니다.

  • 직관적인 Grid System
  • 다양한 UI 컴포넌트 (Navbar, Card, Modal 등)
  • 풍부한 유틸리티 클래스

제공된 예시 코드를 기반으로 프로젝트를 확장하거나, 부트스트랩 공식 문서를 참고해 더 많은 기능을 적용해보세요.

추가 자료:
Bootstrap 공식 문서 · 공식 예제 페이지

성공적인 반응형 웹사이트 구축을 응원합니다!

티로그몰 그누보드 테마 구입 절차

저렴한 비용으로 직접 홈페이지를 만들고자 하시는 분께 적합니다.

구매 전 체크사항

설치방법

본인의 웹호스팅 계정을 이용하여 사용합니다.

A/S 정책

홈페이지 오류 및 버그 발견시 1:1문의를 남겨주시면 확인 후 바로 무상 처리해드립니다.

환불정책

다운받는 홈페이지라는 특성상 단순변심으로 인한 환불은 불가합니다.

라이센스 규정

사진 및 컨텐츠는 사용자의 이해를 돕기위해 사용된것이며 실사용은 가능하나 재배포를 금지합니다.

1도메인당 1카피를 원칙으로 하고있습니다.

설치대행 및 호스팅(계정)이전 규정

티로그 호스팅 이용시 공급원가(800,000 원)로 구매를 하실수도 있습니다.

설치대행의 경우 기본 셋팅비 10,000원 이며 디자인 변경 요청시 추가금액이 발생될 수 있습니다.

티로그웹호스팅 만료시 사용하신 홈페이지 ,도메인은(는) 영구 삭제 되며, 타사 호스팅 이용시 공급원가(800,000 원) - 제공가격(400,000 원) 의 나머지 금액을 지불 하여야합니다.

 
홈페이지 오류 수정요청시 홈페이지 디자인 변경 요청시
무료수정 별도협의
  • 기존 5.4버전을 쓰시는 분들께서는 계정 내 데이터를 모두 지우고 반드시 그누보드 5.6버전에서 새로 설치하셔야 합니다. (5.3에서 설치금지, 5.5~5.6기반 테마)
  • theme폴더에 다운받은 압축파일 내 테마를 넣어주세요 (폴더안에 폴더가 있으니 주의해주세요)
  • 기본적으로 컨텐츠 제작에 관한건 티로그가 관여하지 않습니다. (요청시 비용 별도협의)
  • 무통장 입금시 세금계산서 발행은 부가세10% 별로로 고객님측에서 부담하셔야 합니다.
[개인정처리방침]