dcamp 웹사이트는 검증된 오픈소스 기술들을 기반으로 구축되었습니다. 관리 시스템(admin.dcamp.kr)은 Drupal, 사용자 웹사이트(dcamp.kr)는 Astro를 사용합니다.
┌─────────────────────────────────────────────────────────────────┐
├─────────────────────────────────────────────────────────────────┤
│ Astro + Svelte + Tailwind CSS │
│ [admin.dcamp.kr - 관리 시스템] │
│ Drupal 11.3 + PHP 8.3 + Svelte (일부 관리자 UI) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
├─────────────────────────────────────────────────────────────────┤
│ Svelte 5 + Vite + Tailwind CSS │
├─────────────────────────────────────────────────────────────────┤
│ Drupal 11.3 + PHP 8.3 │
├─────────────────────────────────────────────────────────────────┤
│ JSON:API + Simple OAuth (JWT 토큰) │
├─────────────────────────────────────────────────────────────────┤
├─────────────────────────────────────────────────────────────────┤
│ AWS S3 / Cloudflare R2 │
└─────────────────────────────────────────────────────────────────┘
| 기술 | 버전 | 역할 | 선택 이유 |
|---|
| Drupal | 11.3 | CMS 프레임워크 | 강력한 콘텐츠 모델링, JSON:API 내장 지원 |
| PHP | 8.3 | 서버 언어 | 성능 향상, 타입 안정성 |
| MariaDB | 10.11 | 데이터베이스 | MySQL 호환, 안정성 |
| Drush | 13 | CLI 도구 | 배포, 유지보수 자동화 |
| 모듈 | 용도 |
|---|
| JSON:API Extras | API 응답 커스터마이징 |
| Decoupled Router | 프론트엔드 라우팅 지원 |
| Simple OAuth | OAuth 2.0 기반 인증 |
| 모듈 | 용도 |
|---|
| User Bundle | 회원 유형 분리 (일반/관리자) |
| Simple OAuth Password Grant | 비밀번호 기반 토큰 발급 |
| Masquerade | 관리자의 회원 계정 대리 접속 |
| 모듈 | 용도 |
|---|
| Webform | 신청서 양식 생성 및 관리 |
| Webform Headless | 신청서 API 제공 |
| Site Settings | 사이트 설정값 관리 |
| CKEditor 5 Template | 콘텐츠 템플릿 |
| 모듈 | 용도 |
|---|
| Flysystem S3 | AWS S3/R2 파일 저장 |
| SVG Image | SVG 파일 지원 |
| 모듈 | 용도 |
|---|
| Gin Theme | 현대적인 관리자 테마 |
| Coffee | 빠른 검색 네비게이션 |
| Views Bulk Operations | 일괄 작업 처리 |
일부 관리 화면은 Drupal 기본 UI 대신 자체 개발한 인터페이스를 사용합니다.
| 기술 | 버전 | 용도 |
|---|
| Svelte | 5.x | UI 컴포넌트 프레임워크 |
| Vite | 6.x | 빌드 도구 |
| Tailwind CSS | 4.x | 스타일링 |
자체 UI를 사용하는 화면:
- 메인 대시보드
- 사이트 설정 관리
- 커스텀 목록/상세 페이지
| 도구 | 용도 |
|---|
| DDEV | Docker 기반 로컬 개발 환경 |
| Composer | PHP 의존성 관리 |
| npm | 프론트엔드 의존성 관리 |
| 도구 | 용도 |
|---|
| PHPStan | 정적 코드 분석 |
| PHP_CodeSniffer | 코딩 표준 검사 |
| Drupal Coder | Drupal 코딩 표준 |
| 서비스 | 용도 | 연동 방식 |
|---|
| AWS S3 | 파일 저장 (운영) | Flysystem SDK |
| Cloudflare R2 | 파일 저장 (대체) | S3 호환 API |
| Cloudflare | CDN, DDoS 방어 | DNS/Proxy |
| SMTP 서버 | 이메일 발송 | Symfony Mailer |
[개발자 로컬] [Git 저장소] [운영 서버]
│ ──────────────────► │ │
│ │ ──────────────────► │
소스 코드는 개발사(스컹크웍스스튜디오)의 GitHub 저장소에서 관리합니다.
| 시스템 | 저장소 |
|---|
| 관리 시스템 | github.com/sknkwoxs/dcamp-admin (비공개) |
| 프론트엔드 | github.com/sknkwoxs/dcamp-astro (비공개) |
| 단계 | 도구 | 설명 |
|---|
| 버전 관리 | Git | 코드 변경 이력 관리 |
| 의존성 설치 | Composer | PHP 패키지 설치 |
| 설정 동기화 | Drush | 설정 가져오기/내보내기 |
| 배포 | 커스텀 스크립트 | git pull → composer → drush deploy |
← 이전: 2. 시스템 아키텍처 | 다음: 4. 데이터베이스 설계 →