---
url: 'https://dxpr.com/ko/hc/documentation/learn-dxpr-builder/development/contributing'
title: '기여하기 | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T01:40:50+00:00'
updated: '2026-10-24T09:09:48+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  DXPR Builder 개발은 다음 GitHub에서 이루어집니다:
  github.com/dxpr/dxpr_builder. 모든
  기여는 저장소의 다음 문서에 설명된 워크플로를 따릅니다:
  CONTRIBUTING.md.
tags:
  - Tooling
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T09:09:48+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 기여하기
      description: |-
        DXPR Builder 개발은 다음 GitHub에서 이루어집니다:
        github.com/dxpr/dxpr_builder. 모든
        기여는 저장소의 다음 문서에 설명된 워크플로를 따릅니다:
        CONTRIBUTING.md.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T01:40:50+0000'
      dateModified: '2026-10-24T09:09:48+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/ko/hc/documentation/learn-dxpr-builder/development/contributing'
      articleSection: Tooling
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/ko/hc/documentation/learn-dxpr-builder/development/contributing'
      description: |-
        DXPR Builder 개발은 다음 GitHub에서 이루어집니다:
        github.com/dxpr/dxpr_builder. 모든
        기여는 저장소의 다음 문서에 설명된 워크플로를 따릅니다:
        CONTRIBUTING.md.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: 홈
            item: 'https://dxpr.com/ko'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: ko
---
[Help Center](/ko/node/75)/[Documentation](/ko/hc/documentation) /[Learn DXPR Builder](/hc/documentation/learn-dxpr-builder) /[Extend](/hc/documentation/learn-dxpr-builder/extend) /[Tooling](/hc/documentation/learn-dxpr-builder/extend/tooling) # 기여하기.

 Learn DXPR BuilderExtendTooling

   ## In this guide

DXPR Builder 개발은 다음 GitHub에서 이루어집니다: [github.com/dxpr/dxpr\_builder](https://github.com/dxpr/dxpr_builder). 모든 기여는 저장소의 다음 문서에 설명된 워크플로를 따릅니다: [CONTRIBUTING.md](https://github.com/dxpr/dxpr_builder/blob/3.x/CONTRIBUTING.md).

## Git 워크플로

1. 모든 풀 리퀘스트는 GitHub 이슈에 연결되어야 합니다.
2. 브랜치 이름 규칙: `person/target-branch/#issue-description`. 예( `jur/3.x/#42-fix-carousel-autoplay`)
3. 다음에 따라 원자적 커밋을 작성하세요: [alphagov Git styleguide](https://github.com/alphagov/styleguides/blob/master/git.md)
4. 풀 리퀘스트에는 해결책의 간단한 설명이 들어가야 합니다.
5. 변경은 이슈 범위 안에 유지하세요. 관련 없는 서식이나 리팩터링은 하지 마세요.

## 코드 소유자

[@jjroelofs](https://github.com/jjroelofs)(이)가 코드 소유자입니다. 검토 없이는 풀 리퀘스트를 병합할 수 없습니다.

## 코딩 표준

- PHP: [Drupal 코딩 표준](https://www.drupal.org/docs/develop/standards)
- JavaScript: ES6+ 전용(새 코드에 `var`, jQuery 금지). [Airbnb JavaScript 코딩 표준](https://github.com/airbnb/javascript)을 프로젝트 예외와 함께 따르세요.
- CSS: 사용자 정의 속성과 토큰 이름은 다음을 따르세요: [Design System](https://github.com/dxpr/dxpr_builder/blob/3.x/DESIGN-SYSTEM.md).
- 요소의 `showed` 메서드 변경에는 업데이트된 `dxpr_frontend.js`(이)가 포함되어야 합니다. 컨테이너의 저장 버튼을 클릭할 때 편집기가 브라우저 콘솔에 출력하는 전체 출력에서 생성하세요.
- 새 기능에는 QA Analytics 커버리지가 필요합니다.

복제 후 `npm install`(을)를 한 번 실행하세요. 스테이징된 파일을 린트하는 Husky 사전 커밋 후크를 설치합니다. 다음을 보세요: [테스트](/ko/hc/documentation/learn-dxpr-builder/development/testing).

## E2E 테스트 실행

테스트는 PR 댓글의 슬래시 명령으로 실행됩니다:

| 명령 | 설명 |
|---|---|
| `/e2e` | 전체 BS5 편집기 및 익명 스위트 실행. |
| `/e2e groups=group-name` | 특정 테스트 그룹 실행. |
| `/e2e tests=ClassName` | 특정 테스트 클래스 실행. |
| `/e2e-bs3` | BS3 편집기 스위트 실행. |
| `/e2eV2` | DXPR CMS 스택에서 BS5 스위트 실행. |
| `/e2e maven_ref=branch` | 사용자 정의 `dxpr_maven` 브랜치로 테스트. |

빌더 변경에 테스트 변경이 필요하면 QA 엔지니어가 브랜치에서 `dxpr_maven`(을)를 업데이트하고, 풀 리퀘스트에 `/e2e maven_ref=<branch>`(을)를 실행하세요. 빌더 풀 리퀘스트가 먼저 병합되고, 그 다음 `dxpr_maven` 쪽이 병합됩니다.

## 검토 요청 전

1. 변경을 구현하세요.
2. 꼼꼼히 테스트하세요.
3. 정리/리팩터링을 수행하세요.
4. 깨진 것이 없는지 다시 테스트하세요.
5. 깨끗한 git 기록으로 커밋하고 푸시하세요.
6. 린터 검사가 통과했는지 확인하세요.
7. 회귀 테스트를 실행하려면 PR에 `/e2e` 댓글을 작성하세요.
8. 모든 검사가 통과한 뒤 검토를 요청하세요.