Skip to main content

TailwindCSS를 잘못 사용하고 있다면? 올바른 적용 방법과 흔히 하는 실수 7가지 완전 정복

Published 5 min readMarkdown

SEO 키워드: TailwindCSS 사용법, CSS 프레임워크, 프론트엔드 개발


# 서론 – “왜 내 Tailwind가 기대와 다를까?”

프론트엔드 개발을 시작한 지 얼마 안 된 초보 개발자라면, CSS 프레임워크 중 하나인 TailwindCSS를 손쉽게 도입하고 바로 멋진 UI를 만들 수 있을 거라 기대했을 겁니다. 실제로 Tailwind는 유틸리티 클래스를 조합해 빠르게 레이아웃을 잡을 수 있다는 장점 때문에 많은 프로젝트에서 채택되고 있죠.

하지만 TailwindCSS 사용법을 제대로 이해하지 못하고 “그냥 클래스를 나열하면 된다”는 식으로 사용한다면, 다음과 같은 문제가 발생합니다.

  • 코드가 점점 길어지고 가독성이 떨어진다.

  • 재사용성이 낮아 유지보수가 어려워진다.

  • 디자인 시스템과 일관성을 유지하기 힘들다.

이 글에서는 TailwindCSS를 잘못 쓰는 흔한 실수 7가지와, 이를 바로잡아 프론트엔드 개발 생산성을 높이는 올바른 사용 전략을 단계별로 소개합니다. 초보자도 쉽게 따라 할 수 있도록 예시와 실전 팁을 곁들였으니, 지금 바로 확인해 보세요!


# 1️⃣ TailwindCSS, “유틸리티 클래스만 쓰면 된다”는 오해

# 문제점

Tailwind는 “utility‑first”라는 철학을 가지고 있어 클래스 하나하나가 CSS 속성을 직접 나타냅니다. 처음엔 bg-blue-500 text-white p-4 같은 짧은 문자열만 보면 충분해 보이지만, 페이지가 커질수록 같은 조합을 여러 군데서 반복하게 됩니다.

# 왜 잘못된 걸까?

  • 중복 코드: 동일한 조합을 복사‑붙여넣기 하면 HTML 파일이 비대해집니다.

  • 디자인 일관성 손실: 색상이나 간격을 바꾸고 싶을 때, 모든 HTML을 일일이 수정해야 합니다.

# 올바른 접근법

Tailwind는 @apply 디렉티브와 컴포넌트(또는 @layer)를 활용해 재사용 가능한 클래스를 만들 수 있습니다. 예를 들어, 버튼 스타일을 하나의 커스텀 클래스로 정의하면 다음과 같이 사용할 수 있죠.

css

/* src/styles/components.css */

@layer components {

  .btn-primary {

    @apply bg-blue-600 text-white font-semibold py-2 px-4 rounded;

  }

}

HTML에서는 <button class='btn-primary'>만 넣으면 동일한 디자인을 재사용할 수 있습니다.


# 2️⃣ “모든 것을 인라인”으로 구현하기

# 문제점

Tailwind는 인라인 스타일처럼 보이지만, 실제로는 CSS 클래스이기 때문에 전역 스타일 시트와는 별개로 관리됩니다. 그런데도 많은 개발자가 <div class='flex items-center justify-center h-screen w-full'>처럼 모든 레이아웃을 한 줄에 몰아넣습니다.

# 왜 위험한가?

  • 가독성 저하: 한 줄에 10~15개의 클래스가 들어가면, HTML 구조를 파악하기 힘들어집니다.

  • 협업 장애: 팀원들이 클래스를 일일이 찾아야 하므로 코드 리뷰가 복잡해집니다.

# 해결책 – 의미 있는 그룹화

클래스를 논리적인 그룹으로 나누어 줄바꿈을 활용하면 가독성이 크게 향상됩니다.

html

<div

  class='

    flex items-center justify-center   /* 레이아웃 */

    h-screen w-full                     /* 사이즈 */

    bg-gray-100                         /* 배경 */

    text-gray-800                       /* 텍스트 색상 */

  '

>
  ...

</div>

또는 컴포넌트를 만들어서 복잡한 레이아웃을 추상화하면, HTML은 훨씬 깔끔해집니다.


# 3️⃣ 디자인 토큰을 무시하고 색상·간격을 직접 지정

# 문제점

Tailwind는 기본 색상 팔레트와 스페이싱 스케일을 제공하지만, 프로젝트마다 디자인 토큰(예: 브랜드 색, 기본 마진) 을 정의해야 합니다. 이를 무시하고 bg-[#123456] 같은 임의의 색상 코드를 사용하면, 나중에 색상을 바꾸고 싶을 때 수백 개의 클래스를 일일이 수정해야 합니다.

# 올바른 방법

tailwind.config.js 파일에 커스텀 색상과 스페이싱을 추가해 디자인 토큰을 중앙에서 관리합니다.

js

// tailwind.config.js

module.exports = {

  theme: {

    extend: {

      colors: {

        brand: '#1E40AF',   // 브랜드 색

        accent: '#F59E0B',

      },

      spacing: {

        '72': '18rem',      // 커스텀 마진/패딩

        '84': '21rem',

      },

    },

  },

};

그 후에는 bg-brand, p-72 같은 표준 클래스만 사용하면 되므로, 색상이나 간격을 바꾸는 작업이 한 줄의 설정만으로 해결됩니다.


# 4️⃣ 반응형 디자인을 놓치기

# 문제점

Tailwind는 sm:, md:, lg: 등 반응형 프리픽스를 제공하지만, 이를 사용하지 않으면 데스크톱에서는 멋지게 보이지만 모바일에서는 레이아웃이 깨지는 경우가 많습니다.

# 실전 팁

  1. Mobile‑First 접근법을 기본으로 잡는다.

  2. 브레이크포인트를 미리 정하고, 작은 화면부터 스타일을 적용한다.

html

<div class='p-4 sm:p-6 md:p-8 lg:p-10'>

  <!-- 화면이 커질수록 패딩이 늘어남 -->

</div>

이렇게 하면 작은 화면에서도 충분히 여백이 확보되고, 큰 화면에서는 더 넉넉한 레이아웃을 제공할 수 있습니다.


# 5️⃣ JIT 모드 미활용

# 문제점

Tailwind v3부터 기본으로 제공되는 JIT(Just‑In‑Time) 모드는 사용된 클래스만 실제 CSS에 포함시켜 파일 크기를 최소화합니다. JIT를 비활성화한 채로 사용하면, 빌드된 CSS 파일이 수 MB에 달해 페이지 로딩 속도가 느려집니다.

# 설정 방법

bash

# tailwind.config.js

module.exports = {

  mode: 'jit',   // JIT 모드 활성화

  purge: ['./src/**/*.html', './src/**/*.js'],

  // ...

}

JIT 모드를 켜면 동적 클래스(bg-${color}-500 등)도 실시간으로 생성되므로, 개발 속도와 퍼포먼스 모두 향상됩니다.


# 6️⃣ 플러그인 활용을 놓치기

# 문제점

Tailwind는 플러그인 생태계가 풍부합니다. 예를 들어 @tailwindcss/forms, @tailwindcss/typography 같은 플러그인을 사용하면, 기본 유틸리티만으로는 구현하기 어려운 폼 스타일링이나 마크다운 렌더링을 손쉽게 처리할 수 있습니다.

# 적용 예시

bash

npm install @tailwindcss/forms
js

// tailwind.config.js

module.exports = {

  plugins: [

    require('@tailwindcss/forms'),   // 폼 스타일 자동 적용

    require('@tailwindcss/typography'), // 마크다운 텍스트 스타일

  ],

};

플러그인을 적절히 활용하면 CSS 코드량을 크게 줄이고 일관된 UI를 유지할 수 있습니다.


# 7️⃣ 문서와 커뮤니티를 무시하고 독자적으로 구현

# 문제점

Tailwind는 방대한 공식 문서와 활발한 커뮤니티가 큰 장점입니다. 하지만 문서를 읽지 않고 “내가 생각한 대로” 구현하면, 이미 검증된 베스트 프랙티스를 놓치게 됩니다.

# 권장 행동

  • 공식 문서(https://tailwindcss.com)에서 최신 가이드와 예시를 확인한다.

  • GitHub Issues, Discord, Stack Overflow 등에서 비슷한 문제를 검색한다.

  • 블로그 포스트(예: “You Are Using TailwindCSS Wrong”)를 읽고 실수를 미리 예방한다.


# 결론 – 올바른 TailwindCSS 사용법으로 생산성 UP!

TailwindCSS는 유틸리티 기반 CSS 프레임워크이지만, “그냥 클래스를 나열하면 된다”는 단순한 접근만으로는 진정한 가치를 누릴 수 없습니다. 이번 글에서 소개한 7가지 실수를 피하고, @apply, 컴포넌트, 디자인 토큰, 반응형 프리픽스, JIT 모드, 플러그인, 그리고 공식 문서 활용을 실천한다면 다음과 같은 효과를 기대할 수 있습니다.

  • 코드 가독성·유지보수성 향상

  • 디자인 일관성 확보

  • 번들 사이즈 감소 및 페이지 로딩 속도 개선

지금 바로 적용해 보세요!

1️⃣ tailwind.config.js에 브랜드 색과 스페이싱을 추가

2️⃣ @apply를 활용해 버튼·카드 같은 공통 컴포넌트 정의

3️⃣ JIT 모드와 플러그인을 활성화하여 빌드 파일을 경량화

작은 변화가 큰 차이를 만든다는 사실, 직접 체험해 보시길 바랍니다.


다음 글에서는 “TailwindCSS와 React를 결합한 효율적인 컴포넌트 설계”를 다룰 예정이니, 관심 있으신 분들은 구독과 알림 설정을 부탁드립니다! 🚀

No comments yet. Be the first to comment.

More from this blog