tokens/ 폴더
역할: 디자인 시스템의 모든 값을 정의하는 폴더입니다.
- 포함해야 할 것: 색상, 타이포그래피, 간격, 둥근 모서리, breakpoint 등의 값 정의
- 포함하면 안 될 것: 실제 CSS 스타일 규칙, 컴포넌트 스타일
- 의존성: 다른 폴더에 의존하지 않음 (가장 아래 레이어)
tokens 폴더는 순수한 값 정의만 포함하며, 실제 스타일을 작성하지 않습니다.
요약 설명디자인 시스템은 지금까지 배운 모든 요소들을 체계적으로 정리한 결과물입니다.
SCSS는 파일 구조가 곧 설계이므로, 각 폴더의 역할을 명확히 하고 책임을 분리하는 것이 중요합니다.
역할이 섞이면 유지보수가 불가능해지므로, 처음부터 올바른 구조로 설계해야 합니다.이 페이지에서는 tokens, base, layout, components, themes 폴더의 역할, 각 폴더에 들어갈 파일, 그리고 import/use 흐름을 상세히 알아봅니다.
디자인 시스템의 전체 폴더 구조와 각 폴더의 역할입니다.
각 폴더는 명확한 책임을 가지며, 다른 폴더에 의존하지 않는 독립적인 구조를 유지합니다.
위에서 아래로 순서대로 의존성이 흐릅니다. tokens가 가장 아래 레이어이고, main.scss가 모든 것을 결합합니다.
각 폴더가 담당하는 역할과 책임을 명확히 정의합니다.
폴더별로 무엇이 들어가야 하고 무엇이 들어가면 안 되는지 이해하는 것이 중요합니다.
역할: 디자인 시스템의 모든 값을 정의하는 폴더입니다.
tokens 폴더는 순수한 값 정의만 포함하며, 실제 스타일을 작성하지 않습니다.
역할: 기본 HTML 요소의 스타일을 정의하는 폴더입니다.
base 폴더는 프로젝트의 기본 스타일을 정의하며, 모든 컴포넌트의 기반이 됩니다.
역할: 페이지 레이아웃과 구조를 정의하는 폴더입니다.
layout 폴더는 페이지 전체 구조를 담당하며, 반응형 로직도 여기에서 관리합니다.
역할: 재사용 가능한 UI 컴포넌트를 정의하는 폴더입니다.
components 폴더의 각 파일은 독립적으로 동작하며, 다른 컴포넌트에 의존하지 않습니다.
역할: 테마별 토큰 값을 정의하는 폴더입니다.
themes 폴더는 tokens의 값을 테마별로 재정의하며, 컴포넌트 코드는 변경하지 않습니다.
main.scss는 모든 파일을 올바른 순서로 import하는 메인 파일입니다.
의존성 순서를 고려하여 import해야 하며, 일반적으로 tokens → base → layout → components → themes 순서로 구성합니다.
의존성 순서를 고려한 main.scss 구성입니다.
이 순서를 지켜야 각 레이어가 필요한 값을 사용할 수 있습니다.
각 폴더에 index 파일을 만들어 @forward로 정리하면 더 체계적으로 관리할 수 있습니다.
@forward를 사용하면 각 폴더의 내부 구조를 숨기고, 폴더 단위로 관리할 수 있습니다.
각 레이어 간의 의존성 관계를 이해하면 올바른 구조를 설계할 수 있습니다.
의존성은 단방향으로만 흐르며, 아래 레이어는 위 레이어에 의존하지 않습니다.
아래는 레이어 간 의존성 관계입니다.
이 구조를 지키면 의존성 순환 문제를 방지하고, 각 레이어를 독립적으로 테스트하고 수정할 수 있습니다.
디자인 시스템 구조를 실무에 적용할 때 주의할 사항들입니다.
디자인 시스템 SCSS 구조에 대해 알아본 내용을 정리합니다.
다음 페이지에서는 Vue/React 컴포넌트 스타일 구조를 알아봅니다.