Programing/CSS

Tailwind CSS로 시작하는 유틸리티 퍼스트 스타일링 (Tailwind Getting Started)

2025. 6. 10. 11:19
반응형

https://tailwindcss.com/

 

Tailwind CSS - Rapidly build modern websites without ever leaving your HTML.

Tailwind CSS is a utility-first CSS framework for rapidly building modern websites without ever leaving your HTML.

tailwindcss.com

 

웹 개발 환경에서 "Tailwind CSS"는 빠르게 인기를 얻고 있는 CSS 프레임워크입니다. 기존의 CSS는 별도의 파일에서 스타일을 정의하고, 이를 HTML 클래스와 연결하는 방식이 일반적이었지만, Tailwind는 완전히 다른 접근 방식을 제시합니다. 바로 "유틸리티 퍼스트(Utility-first)" 스타일링입니다. 이 방식은 HTML 요소에 유틸리티 클래스를 직접 입력하여 즉각적으로 스타일을 적용할 수 있으며, 빠른 프로토타이핑과 일관성 있는 UI 구현이 가능합니다. 특히 협업 환경이나 디자인 시스템을 구축할 때 강력한 장점을 지닙니다.


Tailwind CSS란?

Tailwind CSS는 미리 정의된 "유틸리티 클래스"를 조합하여 UI를 구성할 수 있도록 설계된 CSS 프레임워크입니다. 전통적인 방식처럼 CSS를 별도로 작성하지 않고, 필요한 스타일을 HTML 클래스에 바로 기술하는 방식입니다.

주요 특징:

  • HTML에서 바로 스타일을 선언할 수 있음
  • JIT(Just-In-Time) 방식으로 사용한 클래스만 컴파일됨
  • 설정 파일을 통해 디자인 시스템을 커스터마이징 가능
  • 유지보수가 쉬운 구조로 구성 가능

Tailwind는 단순히 스타일링 도구를 넘어서, 설계와 개발 전반에 영향을 주는 철학적 기반까지 제공합니다.


전통적인 CSS 방식과의 차이점

항목 전통 방식 (BEM, SCSS 등) Tailwind CSS
스타일 선언 위치 외부 CSS 파일 / <style> 태그 HTML 내 class 속성
재사용 방식 믹스인, 함수, 변수 등 사용 유틸리티 클래스 조합
유지보수 구조적이지만 코드량 증가 선언적 스타일링으로 간결함
러닝 커브 SCSS 문법 등 사전 지식 필요 직관적 클래스 사용으로 비교적 쉬움

Tailwind는 코드 작성과 동시에 디자인을 확인할 수 있어, 디자이너와 협업 시 피드백 루프가 빨라집니다.


설치 방법

1. CDN 방식 (간편 테스트용)

<script src="https://cdn.tailwindcss.com"></script>
  • 설치 없이 바로 사용 가능
  • 빠른 프로토타이핑에 적합
  • 퍼포먼스 최적화와 커스터마이징에는 한계가 있음

2. NPM + 빌드 환경 설정 (프로젝트용)

npm install -D tailwindcss
npx tailwindcss init
  • tailwind.config.js를 통해 테마, 색상, 폰트 등을 정의할 수 있음
  • 아래와 같이 CSS 파일을 구성:
/* input.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
  • Vite, Webpack, Parcel 등 빌드 툴과 연동 가능
  • 개발 시 JIT 모드 활성화로 빠른 빌드

주요 개념 정리

유틸리티 클래스

Tailwind는 HTML에 바로 적용할 수 있는 클래스들로 구성됩니다.
예: text-lg, bg-red-500, rounded-md, mt-4

JIT (Just-In-Time) 모드

  • 사용된 클래스만 컴파일하여 CSS 번들 크기를 최소화
  • 즉시 결과 반영으로 빠른 피드백 루프 제공

Purge (사용하지 않는 클래스 제거)

  • 빌드시 사용되지 않은 클래스는 자동으로 제거됨
  • 설정은 content 옵션에서 HTML, JS 파일 경로로 지정

Tailwind Config 커스터마이징

  • 브레이크포인트, 컬러 시스템, 폰트 사이즈 등을 재정의 가능
  • 테마 확장도 손쉽게 가능
module.exports = {
  theme: {
    extend: {
      colors: {
        primary: '#1e3a8a',
      },
    },
  },
}

반응형 디자인 적용 방식

Tailwind는 기본적으로 반응형 브레이크포인트를 제공합니다. 접두어를 통해 화면 크기에 따른 스타일을 조건부로 적용할 수 있습니다.

<p class="text-base sm:text-lg md:text-xl lg:text-2xl">
  반응형 텍스트 예시입니다.
</p>
  • sm: = 640px 이상
  • md: = 768px 이상
  • lg: = 1024px 이상
  • xl: = 1280px 이상

이점: 한 클래스 내에서 반응형 변형을 구성할 수 있어 코드가 깔끔합니다.


예제: 카드 UI 구성

<div class="max-w-sm mx-auto bg-white rounded-xl shadow-lg overflow-hidden">
  <img class="w-full h-48 object-cover" src="/images/card.jpg" alt="카드 이미지">
  <div class="p-6">
    <h2 class="text-2xl font-bold">카드 제목</h2>
    <p class="text-gray-600 mt-2">이것은 카드 컴포넌트의 본문입니다.</p>
    <button class="mt-4 px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700">
      더 알아보기
    </button>
  </div>
</div>

설명 주석:

  • max-w-sm: 카드의 최대 너비 설정
  • mx-auto: 가로 가운데 정렬
  • rounded-xl, shadow-lg: 디자인 요소 강조
  • text-2xl, text-gray-600, bg-blue-600: 텍스트 및 버튼 스타일링

실무 적용 시 유의사항

성능 측면

  • JIT 모드와 purge 설정으로 번들 최적화 가능
  • CDN 방식은 빠르지만 빌드 최적화에는 한계가 있음

유지보수

  • HTML 내 클래스가 많아지면 가독성이 떨어질 수 있음
  • 반복되는 구조는 컴포넌트화하여 관리

협업 환경

  • 디자인 시스템과 결합하면 강력함
  • 비개발자도 class 이름만으로 대략적인 스타일을 유추할 수 있음
반응형

'Programing > CSS' 카테고리의 다른 글

px, em, rem? 헷갈리는 CSS 단위 정리 (CSS Units Guide)  (0) 2025.06.10
iPhone & Android input radius css init  (0) 2013.06.19
css 문자열자르기.  (0) 2011.12.21
프린트 전용 CSS "@media print"  (0) 2010.12.30
Min & Max Height & Width in IE6  (1) 2009.12.07
가운데 정렬  (1) 2009.11.05
웹표준이라기보단 스타일  (0) 2009.09.26
'Programing/CSS' 카테고리의 다른 글
  • px, em, rem? 헷갈리는 CSS 단위 정리 (CSS Units Guide)
  • iPhone & Android input radius css init
  • css 문자열자르기.
  • 프린트 전용 CSS "@media print"
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (463) N
      • 금융 (61)
      • Programing (284) N
        • Algorithm (39)
        • API (2)
        • javascript (121)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (17)
        • MS-SQL (1)
        • MySQL (12)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6) N
      • IT 일반 (15)
      • 리뷰 (1)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (32) N
        • 회고 (3) N
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    jsp
    SQL
    js패턴
    It
    위시리스트
    IT 관련
    php
    JavaScript
    사고 싶은 책
    자바스크립트유틸
    자바스크립트
    Java
    읽고 싶은 책
    블로그
    자바
    기초
    IT·컴퓨터
    디자인패턴
    iT's MY LiFE
    IT블로그
Dongkkase
Tailwind CSS로 시작하는 유틸리티 퍼스트 스타일링 (Tailwind Getting Started)
상단으로

티스토리툴바