Guidebook
ComponentsStorybook

Frameworks

Gulp · Nunjucks

Gulp 5와 Nunjucks로 정적 페이지를 구성하는 방법을 단계별로 확인합니다.

이 저장소의 Gulp 구현은 Gulp 5로 빌드 작업을 구성하고 Nunjucks 템플릿을 HTML로 변환합니다. 루트에서 pnpm dev:gulp를 실행하면 공통 스타일과 자산을 준비한 뒤 6102 포트에 개발 서버를 엽니다.

Gulp란?

Gulp는 Node.js 환경에서 반복되는 웹 개발 작업을 자동화하는 task runner입니다. source 파일을 stream으로 읽고 여러 변환 작업을 pipeline으로 연결해 HTML 생성, 스타일 처리, script와 asset 복사, 파일 감시와 browser reload를 수행할 수 있습니다.

Gulp 자체가 화면을 렌더링하는 UI framework는 아닙니다. 프로젝트에서 필요한 build 절차를 JavaScript 함수로 정의하고, 각 함수를 순차 또는 병렬로 조합하는 build 도구입니다.

주요 특징

  • src()와 dest() 사이에 plugin을 연결하는 stream 기반 file 처리
  • series()와 parallel()을 이용한 명시적인 작업 순서 구성
  • watch()를 이용한 file 변경 감지와 반복 작업 자동화
  • 일반 JavaScript 함수와 module export를 사용하는 유연한 gulpfile
  • Nunjucks 같은 template engine, BrowserSync와 다양한 plugin 조합

역할

Gulp 앱은 Nunjucks로 공통 layout과 component fragment를 조립해 정적 HTML을 만듭니다. gulpfile.js는 page 변환, script와 public asset 복사를 담당하고 BrowserSync로 결과를 확인합니다. 생성 결과는 HTML 구현 및 Storybook Gulp 예제와 동일한 DOM·접근성 계약을 유지해야 합니다.

문서 구성

메뉴 내용
Gulp 시작 Gulp의 역할, 프로젝트 구조와 기본 build 실행
Gulp 기본 설정 Node.js, package.json, CLI와 gulpfile 준비
Gulp 기본 API src·dest, 공개 작업, series·parallel과 비동기 완료
HTML 편집 (Gulp NJK) 출력·조건·반복, 상속·include, macro와 escape
Web Server & Watching Files BrowserSync, watch와 reload 순서
Assets 세팅 SCSS, JavaScript와 image build pipeline
배포 (Deploying) production build 검증과 정적 hosting

구현 위치

textapps/gulp/
├── gulpfile.js
└── src/
    ├── components/
    ├── data/
    ├── pages/
    └── templates/

컴포넌트의 최종 HTML 구조와 접근성 계약은 Storybook Gulp 탭을 기준으로 비교합니다.

문서 안내

가이드북소개기초디자인 토큰기초접근성컴포넌트기본 요소컴포넌트레이아웃컴포넌트폼컴포넌트네비게이션컴포넌트데이터 표시컴포넌트피드백컴포넌트기타활용 가이드UI 패턴활용 가이드작성 지침프레임워크프레임워크 구현프레임워크Gulp프레임워크GulpGulp 시작프레임워크GulpGulp 기본 설정프레임워크GulpGulp 기본 API프레임워크GulpHTML 편집 (Gulp NJK)프레임워크GulpWeb Server & Watching Files프레임워크GulpAssets 세팅프레임워크Gulp배포 (Deploying)프레임워크Vue프레임워크Vue빠른 시작프레임워크Vue핵심 기초프레임워크Vue상태와 반응성프레임워크Vue컴포넌트 심화프레임워크Vue페이지와 라우팅프레임워크Vue재사용성프레임워크Vue내장 컴포넌트프레임워크Vue확장하기프레임워크Vue베스트 프랙티스프레임워크VueTypeScript프레임워크Vue추가 주제프레임워크React프레임워크React빠르게 시작하기프레임워크ReactUI 표현프레임워크React조건과 목록프레임워크React상호작용프레임워크React페이지와 라우팅프레임워크ReactState 관리프레임워크React탈출구프레임워크ReactReact로 사고하기프레임워크WebSquare프레임워크WebSquare스튜디오프레임워크WebSquare화면과 이벤트프레임워크WebSquare컴포넌트프레임워크WebSquareDataCollection프레임워크WebSquareSubmission프레임워크WebSquare사용하기프레임워크WebSquareSP5 설정프레임워크WebSquare심화 가이드프레임워크Svelte프레임워크Svelte빠른 시작프레임워크Svelte핵심 기초프레임워크Svelte상태와 반응성프레임워크Svelte컴포넌트 심화프레임워크Svelte페이지와 라우팅프레임워크SvelteTypeScript프레임워크Svelte베스트 프랙티스프레임워크SolidJS프레임워크SolidJS빠른 시작프레임워크SolidJSUI 표현프레임워크SolidJSSignals와 Effects프레임워크SolidJS컴포넌트 심화프레임워크SolidJS페이지와 라우팅프레임워크SolidJS베스트 프랙티스프레임워크Qwik프레임워크Qwik빠른 시작프레임워크Qwik컴포넌트프레임워크Qwik상태와 반응성프레임워크Qwik페이지와 라우팅프레임워크Qwik베스트 프랙티스프레임워크Remix프레임워크Remix빠른 시작프레임워크RemixUI 표현프레임워크Remix페이지와 라우팅프레임워크RemixLoader와 Action프레임워크Remix베스트 프랙티스프레임워크Angular프레임워크Angular빠른 시작프레임워크Angular핵심 기초프레임워크Angular상태와 반응성프레임워크Angular컴포넌트 심화프레임워크Angular페이지와 라우팅프레임워크AngularTypeScript프레임워크Angular베스트 프랙티스프레임워크Astro프레임워크Astro빠른 시작프레임워크Astro페이지와 라우팅프레임워크AstroIslands프레임워크Astro컴포넌트 통합프레임워크Astro베스트 프랙티스