콘텐츠로 이동

AI 검색

AI가 매뉴얼 전체에서 답변을 찾아드립니다.

2.7. 개발소스


SP100주년 뮤지엄 사이트의 개발 소스는 Git 저장소를 통해 관리됩니다.

항목내용
저장소 유형Git (Private)
주요 브랜치main, develop, features/80th-anniversary
테마 경로web/app/themes/sknk_80/

main (운영 배포용)
├── develop (개발 통합)
│ │
│ └── features/80th-anniversary (SP100주년 개발)
브랜치용도배포 대상
main운영 서버 배포spsamhwa.com
develop개발 통합 및 테스트스테이징
features/80th-anniversarySP100주년 기능 개발개발 환경

samhwa/
├── config/ # WordPress 설정
├── docs/ # 문서
│ └── museum/ # 뮤지엄 산출물
├── migration/ # MIS 마이그레이션 YML
├── vendor/ # Composer 의존성
└── web/
└── app/
├── mu-plugins/ # Must-Use 플러그인
│ └── museum-admin-menu.php
├── plugins/ # 플러그인
│ └── advanced-custom-fields-pro/
└── themes/
├── sknk/ # 부모 테마
├── sknk_en/ # 영문 차일드 테마
└── sknk_80/ # 뮤지엄 차일드 테마 ★
├── functions.php
├── style.css
├── home.php
├── page-*.php
├── single-*.php
├── 404.php
├── inc/
│ ├── register.php
│ ├── ajax.php
│ ├── event-cpt.php
│ ├── event-comments.php
│ └── event-comments-admin.php
├── twigs/
│ ├── *.twig
│ └── partials/
└── src/
├── css/
├── js/
├── images/
├── videos/
└── fonts/

번호파일명라인 수 (추정)
1functions.php~50
2style.css~20
3home.php~30
4page-80-years.php~50
5page-sp-samhwa.php~40
6page-first-best.php~40
7page-future.php~40
8page-philosophy.php~40
9page-history.php~40
10page-heritage.php~40
11page-event.php~50
12page-coming-soon.php~30
13single-event.php~60
14single-winner.php~50
15404.php~20
16inc/register.php~100
17inc/ajax.php~80
18inc/event-cpt.php~80
19inc/event-comments.php~150
번호파일명
1home.twig
280-years.twig
3sp-samhwa.twig
4first-best.twig
5future.twig
6philosophy.twig
7event.twig
8single-event.twig
9single-winner.twig
10coming-soon.twig
11404.twig
12partials/anniversary-header.twig
13partials/anniversary-footer.twig
14partials/mega-menu.twig
15partials/btn-top.twig
16partials/sub-banner.twig
번호파일명
180.js
280-years.js
380-years.core.js
480-years.lenis.js
580-years.snap.js
680-years.intro.js
780-years.page.js
8sp-samhwa.js
9first-best.js
10future.js
11philosophy.js
12history-scroll.js
13event-lenis.js
14event-comments.js
15wheel-canvas.js
16common/intro.js
17common/accent-utils.js
18common/curtain-utils.js

소스코드 접근 권한은 다음 절차를 거쳐 안내될 예정입니다:

  1. 삼화 측 유관 부서 검토
  2. 접근 권한 범위 결정
  3. Git 계정 생성 또는 권한 부여
  4. 접근 방법 안내
항목설명
담당자명소스 접근이 필요한 담당자
이메일Git 계정 생성용
목적접근 목적 (유지보수, 검토 등)
기간접근 필요 기간

항목버전
Git2.x+
GitHub 계정승인된 계정 필요
PHP8.1+
MySQL8.0+
Node.js18+ (선택)
Composer2.x
DDEV1.21+ (권장)
  • Git 저장소 정보
항목내용
저장소 URLhttps://github.com/sknkwoxs/samhwa/
접근 권한승인된 GitHub 계정만 접근 가능
  • 설정 절차
Terminal window
# 1. 저장소 클론 (권한 부여 후)
git clone https://github.com/sknkwoxs/samhwa/ samhwa
cd samhwa
# 2. DDEV 시작
ddev start
# 3. 의존성 설치
ddev composer install
# 4. DB 스냅샷 복원
ddev snapshot restore --latest
# 5. 사이트 접속
open https://samhwa.sknkwoxs.com/museum/

Terminal window
# 데이터베이스
DB_NAME='samhwa_db'
DB_USER='db_user'
DB_PASSWORD='********'
DB_HOST='localhost'
# WordPress
WP_ENV='production'
WP_HOME='https://spsamhwa.com'
WP_SITEURL='https://spsamhwa.com/wp'
# 멀티사이트
WP_ALLOW_MULTISITE=true
MULTISITE=true
SUBDOMAIN_INSTALL=false # 서브디렉토리 방식
DOMAIN_CURRENT_SITE='spsamhwa.com'
PATH_CURRENT_SITE='/'
SITE_ID_CURRENT_SITE=1
BLOG_ID_CURRENT_SITE=1

주의: .env 파일은 Git에 포함되지 않습니다. 서버에서 직접 관리하세요.


Git 기반 배포 흐름

Terminal window
# 운영 서버 SSH 접속
ssh user@spsamhwa.com
# 프로젝트 디렉토리 이동
cd /var/www/samhwa
# 최신 코드 가져오기
git pull origin main
# Composer 업데이트 (필요시)
composer install --no-dev --optimize-autoloader
# 캐시 클리어 (필요시)
wp cache flush --url=spsamhwa.com/museum

항목운영개발
호스트localhostddev-samhwa-db
포트33063306
DB명samhwa_dbdb
사용자(보안)db
blog_id접두사사이트
1wp_국문
2wp_2_영문
3wp_3_뮤지엄
Terminal window
# 뮤지엄 사이트 대상 명령어
# --url 옵션으로 대상 사이트 지정
# DB 내보내기
wp db export museum-backup.sql --url=spsamhwa.com/museum
# DB 가져오기
wp db import museum-backup.sql
# URL 치환 (개발 → 운영)
wp search-replace 'samhwa.sknkwoxs.com/museum' 'spsamhwa.com/museum' \
--url=spsamhwa.com/museum
# 캐시 클리어
wp cache flush --url=spsamhwa.com/museum

대상경로/방법주기
데이터베이스wp db export일간
업로드 파일/web/app/uploads/sites/3/주간
테마 파일Git 저장소실시간
설정 파일.env, config/변경 시
museum-backup.sh
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backups/museum"
# DB 백업
wp db export ${BACKUP_DIR}/db-${DATE}.sql --url=spsamhwa.com/museum
# 업로드 파일 백업
tar -czf ${BACKUP_DIR}/uploads-${DATE}.tar.gz \
/var/www/samhwa/web/app/uploads/sites/3/
# 30일 이상 된 백업 삭제
find ${BACKUP_DIR} -type f -mtime +30 -delete
Terminal window
# 1. DB 복구
wp db import /backups/museum/db-20260420.sql
# 2. URL 치환 (필요시)
wp search-replace 'old-domain.com' 'spsamhwa.com' \
--url=spsamhwa.com/museum
# 3. 캐시 클리어
wp cache flush --url=spsamhwa.com/museum
# 4. 업로드 파일 복구 (필요시)
tar -xzf /backups/museum/uploads-20260420.tar.gz -C /

증상원인해결 방법
500 에러PHP 에러/var/log/nginx/error.log 확인
404 에러Rewrite 규칙Nginx 설정 확인
흰 화면PHP 메모리memory_limit 증가
로그인 루프쿠키 문제브라우저 캐시 클리어
이미지 깨짐업로드 권한uploads/ 권한 755
Terminal window
# Nginx 에러 로그
tail -f /var/log/nginx/error.log
# PHP 에러 로그
tail -f /var/log/php/error.log
# WordPress 디버그 로그
tail -f /var/www/samhwa/web/app/debug.log
config/application.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Terminal window
# 사이트 목록
wp site list
# 테마 목록
wp theme list --url=spsamhwa.com/museum
# 플러그인 목록
wp plugin list --url=spsamhwa.com/museum
# 사용자 목록
wp user list
Terminal window
# 옵션 조회
wp option get blogname --url=spsamhwa.com/museum
wp option get siteurl --url=spsamhwa.com/museum
# 포스트 타입별 개수
wp post list --post_type=event --url=spsamhwa.com/museum --format=count
wp post list --post_type=winner --url=spsamhwa.com/museum --format=count
Terminal window
# 캐시 클리어
wp cache flush --url=spsamhwa.com/museum
# 트랜지언트 삭제
wp transient delete --all --url=spsamhwa.com/museum
# 리비전 삭제
wp post delete $(wp post list --post_type='revision' --format=ids) --url=spsamhwa.com/museum

구분연락처
개발사스컹크웍스
이메일developer@skunkworks.co.kr
문의 내용소스 접근 권한, 기술 문의

  • 2.2. 코딩가이드 - 코딩 컨벤션
  • 2.6. 프로그램목록정의서 - 프로그램 상세