TailWindCSS 기록

Tailwind CSS 란 무엇인가?

Dreaming Developer Student 2025. 8. 8. 11:46
728x90
반응형
SMALL

Tailwind CSS에 대해 알아보도록 하겠습니다. 기존에는 styled-components 라이브러리로 스타일 구성을 작성했지만, 이번에는 Tailwind CSS가 무엇이고, 왜 사용하는지, 사용방법을 알아보는 과정을 설명드리겠습니다. 

목차
1. Tailwind CSS
1-1. Tailwind CSS란?
1-2. Utility-first 접근 방식이란?
1-3. Tailwind CSS를 왜 사용할까?
1-4. Tailwind CSS의 장단점
1-5. Tailwind CSS 설치 방법
1-6. 기본 문법과 사용 방법
1-7. 반응형 디자인과 Variants 

서론

현대 웹 개발에서 디자인과 스타일링은 빠른 제작 속도와 일관성을 동시에 요구합니다. 하지만 기존의 CSS나 CSS 프레임워크는 커스터마이징의 한계, 불필요한 코드 증가, 유지보수의 복잡함 등 여러 문제를 안고 있었습니다. 이러한 문제를 해결하기 위해 등장한 것이 Tailwind CSS입니다. Tailwind CSS는 Utility-first 접근 방식을 채택하여, 필요한 스타일을 클래스 형태로 바로 적용할 수 있도록 도와줍니다. 덕분에 별도의 CSS 파일을 작성하지 않고도 빠르고 직관적으로 UI를 구축할 수 있으며, 반응형 디자인과 다양한 상태 변형도 손쉽게 구현할 수 있습니다. 이 시리즈에서는 Tailwind CSS의 개념부터 설치, 기본 사용법, 실전 예제까지 차근차근 살펴보며, 누구나 Tailwind CSS 프레임워크를 쉽게 사용할 수 있도록 설명해보도록 하겠습니다.

본론

1. Tailwind CSS 

 

참고 자료 :  https://tailwindcss.com/docs/installation/using-vite

 

Installing with Vite - Installation

Integrate Tailwind CSS with frameworks like Laravel, SvelteKit, React Router, and SolidJS.

tailwindcss.com

 

1-1. Tailwind CSS란?

Utility-first CSS 프레임워크로,  미리 정의된 짧은 클래스 이름을 조합하여 HTML 요소의 스타일을 지정하는 방식


1-2. Utility-first 접근 방식이란?

 

Tailwind CSS는 Utility-first 접근 방식을 사용한 CSS 프레임워크라는 의미에서 Utility-first 접근 방식이란, 미리 정의된 유틸리티 클래스를 활용하여 HTML 코드 내에서 직접 스타일을 적용하는 것을 의미합니다. 즉 CSS 파일에 별도로 스타일 규칙을 작성하지 않고, HTML 태그에 클래스 이름을 나열하여 스타일을 구성합니다. 

 

1-3. Tailwind CSS를 왜 사용할까?

 

그럼 왜 Tailwind CSS를 사용할까요? 
웹 개발을 하다 보면 "스타일을 빠르게 구성하고 싶지만, CSS를 일일이 작성하여 레이아웃을 구성하는게 되게 귀찮다" 라는 생각을 한 번쯤은 하실 수 있습니다. 특히 프로젝트의 규모에 따라 CSS 파일이 복잡해지고 유지보수가 어려워지는 문제를 겪게되는거죠.

Tailwind CSS가 이런 문제점들을 해결해준다고 보시면 됩니다. 

 

1-4. Tailwind CSS의 장단점

장점

  1. 빠른 개발 속도
    HTML 태그에 바로 스타일 클래스를 적용하므로, CSS 파일을 별도로 작성하지 않아도 됩니다.
  2. 일관성 있는 디자인
    미리 정의된 색상, 간격, 폰트 크기를 사용해 디자인 가이드가 자동으로 적용됩니다.
  3. 반응형과 상태 스타일 내장
    sm:, md:, hover:, focus:, dark: 같은 변형 클래스로 다양한 상태를 간단히 구현할 수 있습니다.
  4. 불필요한 CSS 최소화
    빌드 과정에서 사용하지 않는 클래스는 자동으로 제거되어 파일 크기를 줄일 수 있습니다.
  5. 강력한 커스터마이징
    tailwind.config.js에서 색상, 폰트, 브레이크포인트 등을 자유롭게 수정·확장할 수 있습니다.

단점

  1. HTML 클래스가 길어짐
    여러 유틸리티 클래스를 조합하다 보면 HTML 태그가 길어지고 가독성이 떨어질 수 있습니다.
  2. 초기 진입 장벽
    클래스를 외워야 하므로 처음 접하는 사람에게는 다소 낯설게 느껴질 수 있습니다.
  3. 추상화된 CSS 구조 부족
    컴포넌트 단위로 스타일을 추상화하는 방식보다, 매번 클래스를 직접 입력해야 하므로
    구조적인 스타일 관리에는 추가적인 패턴이 필요할 수 있습니다.
  4. 디자인 의존성
    Tailwind의 프리셋 디자인을 그대로 사용하면 프로젝트들이 비슷한 스타일을 띌 수 있습니다.

 

1-5.  Tailwind CSS 설치 방법 (CDN 방식)

 

최근 Next.js는 create-next-app 실행 시 초기 설정 단계에서 Tailwind CSS를 기본 옵션으로 선택할 수 있습니다.
이 옵션을 선택하면 위의 설치 과정을 수동으로 할 필요 없이, Tailwind 설정이 자동으로 적용된 상태로 프로젝트가 생성됩니다.

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>Tailwind 테스트</title>
  <script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
  <h1 class="text-3xl font-bold text-blue-500">Hello Tailwind!</h1>
</body>
</html>


1-6. 기본 문법과 사용 방법

기본적으로  Tailwind CSS 클래스는 다음과 같은 구조를 가집니다

속성-값  (key-value)
예를 들면 background-red 이런식으로 가진다는거죠

key-value

 

 주요 속성 분류

 

색상 (Colors)

글자 색상은 빨강으로 하고 500 단계
배경색은 연두색 200 단계

<p class="text-red-500">빨간색 텍스트</p>
<p class="bg-green-200">연두색 배경</p>

 

여백 (Spacing)

 

  • m-{n}: margin
  • p-{n}: padding
  • mt-4: margin-top 1rem
  • px-2: padding-left & padding-right 0.5rem

 

<div class="p-4 m-2 bg-gray-100">여백 적용</div>

 

글자 스타일 (Typography)

<h1 class="text-3xl font-bold">큰 제목</h1>
<p class="text-sm text-gray-600">작은 글자와 회색</p>

 

레이아웃 ( Layout )

- Flex, items-center, justify-content

- grid, grid-cols-3

<div class="flex items-center justify-between">
  <span>왼쪽</span>
  <span>오른쪽</span>
</div>


상태  접두어

 

  • hover
  • focus
  • active
  • px-2: padding-left & padding-right 0.5rem

<button class="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded">
  버튼
</button>

 

 

1-7. 반응형 디자인과 Variants

 

Tailwind CSS는 클래스 앞에 접두어(prefix) 를 붙여 조건(반응형·상태·부모 상태 등)에 따라 스타일을 바꾸는 방식을 제공합니다.
대표적으로 sm:, md: 같은 반응형, hover:, focus: 같은 상태(상호작용), 그리고 dark:, group-hover:, peer-checked: 등이 있습니다.

  • sm (≥ 640px)
  • md (≥ 768px)
  • lg (≥ 1024px)
  • xl (≥ 1280px)
  • 2xl (≥ 1536px)

이게 정확히 무슨 뜻이냐면 해당 너비에서 스타일이 적용된다는 것입니다.

<h1 class="text-lg md:text-2xl lg:text-4xl">반응형 제목</h1>

<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
  <!-- 카드들 -->
</div>

 

결론

Tailwind CSS는 Utility-first 방식으로 빠르고 일관된 UI 개발을 가능하게 합니다. 미리 정의된 클래스를 조합해 CSS 작성 없이도 스타일링이 가능합니다. 반응형 및 상태 스타일을 간단한 접두어로 처리할 수 있어 생산성이 높습니다. 단, 클래스가 길어지는 가독성 문제는 @apply나 컴포넌트화로 보완이 필요합니다.

728x90
반응형
LIST