콘텐츠로 이동

3. 기술 스택

dcamp 웹사이트는 검증된 오픈소스 기술들을 기반으로 구축되었습니다. 관리 시스템(admin.dcamp.kr)은 Drupal, 사용자 웹사이트(dcamp.kr)는 Astro를 사용합니다.

┌─────────────────────────────────────────────────────────────────┐
│ dcamp 웹사이트 기술 스택 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [dcamp.kr - 프론트엔드] │
│ Astro + Svelte + Tailwind CSS │
│ │
│ [admin.dcamp.kr - 관리 시스템] │
│ Drupal 11.3 + PHP 8.3 + Svelte (일부 관리자 UI) │
│ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 기술 스택 구조 │
├─────────────────────────────────────────────────────────────────┤
│ [프론트엔드 - 관리자 UI 일부] │
│ Svelte 5 + Vite + Tailwind CSS │
├─────────────────────────────────────────────────────────────────┤
│ [백엔드 - CMS 프레임워크] │
│ Drupal 11.3 + PHP 8.3 │
├─────────────────────────────────────────────────────────────────┤
│ [API 계층] │
│ JSON:API + Simple OAuth (JWT 토큰) │
├─────────────────────────────────────────────────────────────────┤
│ [데이터베이스] │
│ MariaDB 10.11 │
├─────────────────────────────────────────────────────────────────┤
│ [파일 저장소] │
│ AWS S3 / Cloudflare R2 │
└─────────────────────────────────────────────────────────────────┘

기술버전역할선택 이유
Drupal11.3CMS 프레임워크강력한 콘텐츠 모델링, JSON:API 내장 지원
PHP8.3서버 언어성능 향상, 타입 안정성
MariaDB10.11데이터베이스MySQL 호환, 안정성
Drush13CLI 도구배포, 유지보수 자동화
모듈용도
JSON:API ExtrasAPI 응답 커스터마이징
Decoupled Router프론트엔드 라우팅 지원
Simple OAuthOAuth 2.0 기반 인증
모듈용도
User Bundle회원 유형 분리 (일반/관리자)
Simple OAuth Password Grant비밀번호 기반 토큰 발급
Masquerade관리자의 회원 계정 대리 접속
모듈용도
Webform신청서 양식 생성 및 관리
Webform Headless신청서 API 제공
Site Settings사이트 설정값 관리
CKEditor 5 Template콘텐츠 템플릿
모듈용도
Flysystem S3AWS S3/R2 파일 저장
SVG ImageSVG 파일 지원
모듈용도
Gin Theme현대적인 관리자 테마
Coffee빠른 검색 네비게이션
Views Bulk Operations일괄 작업 처리

일부 관리 화면은 Drupal 기본 UI 대신 자체 개발한 인터페이스를 사용합니다.

기술버전용도
Svelte5.xUI 컴포넌트 프레임워크
Vite6.x빌드 도구
Tailwind CSS4.x스타일링

자체 UI를 사용하는 화면:

  • 메인 대시보드
  • 사이트 설정 관리
  • 커스텀 목록/상세 페이지

도구용도
DDEVDocker 기반 로컬 개발 환경
ComposerPHP 의존성 관리
npm프론트엔드 의존성 관리
도구용도
PHPStan정적 코드 분석
PHP_CodeSniffer코딩 표준 검사
Drupal CoderDrupal 코딩 표준

서비스용도연동 방식
AWS S3파일 저장 (운영)Flysystem SDK
Cloudflare R2파일 저장 (대체)S3 호환 API
CloudflareCDN, DDoS 방어DNS/Proxy
SMTP 서버이메일 발송Symfony Mailer

[개발자 로컬] [Git 저장소] [운영 서버]
│ │ │
│ 1. 코드 작성 │ │
│ ──────────────────► │ │
│ │ │
│ │ 2. 배포 스크립트 │
│ │ ──────────────────► │
│ │ (git pull) │
│ │ (composer) │
│ │ (drush deploy) │

소스 코드는 개발사(스컹크웍스스튜디오)의 GitHub 저장소에서 관리합니다.

시스템저장소
관리 시스템github.com/sknkwoxs/dcamp-admin (비공개)
프론트엔드github.com/sknkwoxs/dcamp-astro (비공개)
단계도구설명
버전 관리Git코드 변경 이력 관리
의존성 설치ComposerPHP 패키지 설치
설정 동기화Drush설정 가져오기/내보내기
배포커스텀 스크립트git pull → composer → drush deploy

← 이전: 2. 시스템 아키텍처 | 다음: 4. 데이터베이스 설계 →