그누보드5 리팩토링
**비개발자 출신 지운아빠가 개인적으로 진행하는 사이드 프로젝트입니다.**#### 프로젝트 개요 (Project Overview)이 프로젝트는 그누보드5(G5) 및 영카트 기반 시스템의 리팩토링 프로젝트입니다.기존 **레거시 구조에 익숙한 개발자들이 AI를 이용해 개발할 때 겪는 병목 현상 및 이로 인한 토큰 소모 해소**를 제일
비개발자 출신 지운아빠가 개인적으로 진행하는 사이드 프로젝트입니다.
프로젝트 개요 (Project Overview)
이 프로젝트는 그누보드5(G5) 및 영카트 기반 시스템의 리팩토링 프로젝트입니다.
기존 레거시 구조에 익숙한 개발자들이 AI를 이용해 개발할 때 겪는 병목 현상 및 이로 인한 토큰 소모 해소를 제일 큰 목표로 삼습니다.
개발자들은 이제 코드를 직접 작성하는 것을 넘어, AI 에이전트에게 문맥(Context)을 제공하고 논리적 오류를 검증하는 프롬프트 엔지니어링의 영역으로 업무를 확장하고 있습니다. 그러나 이러한 AI 주도 개발(AI-Driven Development)의 효율성은 대상 시스템의 아키텍처가 얼마나 'AI 친화적(AI-Friendly)'인가에 따라 달라진다고 할 수 있습니다.
그누보드5(Gnuboard 5)는 초기 PHP 절차적 지향 프로그래밍(Procedural Programming) 패턴을 따르고 있습니다. 핵심 라이브러리 파일인 common.lib.php, shop.lib.php 등은 시스템 전반에 걸친 수천 줄의 유틸리티 함수들이 단일 파일에 집약된 모놀리식(Monolithic) 구조를 취하고 있습니다. 이러한 구조는 인간 개발자가 IDE(통합 개발 환경)의 '정의로 이동(Go to Definition)' 기능을 사용할 때는 큰 문제가 되지 않았으나, 제한된 컨텍스트 윈도우(Context Window)를 가진 AI 모델이 코드를 분석하고 수정하는 데 있어서는 병목 현상을 초래할 수 있습니다.
향후 계획 (Future Plans)
- UI 프레임워크 현대화 (UI Framework Modernization): AI 친화적인 UI/UX 환경 구축 및 개발 생산성 향상을 위해 Tailwind CSS v4를 도입하고 적용합니다.
- 명시적 의존성 문서화 (AI-Specific PHPDoc): AI 에이전트의 코드 이해도와 문맥 파악 능력을 극대화하기 위한 주석 전략을 도입합니다.
- @global 태그 활용: 함수 내부에서 사용되는 전역 변수 의존성을 명시적으로 나열하여 데이터 흐름을 추적 가능하게 합니다.
- @aiagent-description 태그 도입: 커스텀 태그를 통해 해당 함수의 역할, 비즈니스 로직, 제약 사항을 AI가 이해하기 쉬운 자연어로 기술합니다.
프로젝트의 한계 및 제약 사항 (Limitations & Constraints)
- 아키텍처 현대화의 범위 제한 (Scope Limitation on Modernization): 본 프로젝트는 코드 분리 및 정리에 집중하며, Composer 기반의 오토로딩(Autoloading) 도입과 같은 근본적인 PHP 레거시 구조의 현대화는 수행하지 않습니다.
- 개발 주체 및 면책 조항 (Project Leadership & Disclaimer): 본 프로젝트는 기획자 및 디자이너 직군 출신인 지운아빠가 주도하여 진행되므로, 전문 엔지니어링 관점의 코드 정합성(Consistency)이나 기술적 유효성(Validity)을 보장하지 않습니다.
- 면책 (Indemnification): 본 프로젝트의 결과물을 사용하여 발생하는 데이터 손실, 서비스 중단, 보안 사고 등 어떠한 형태의 직·간접적 피해에 대해서도 제작자(및 제작자의 소속사)는 법적 책임을 지지 않습니다. 사용자는 실제 서비스 적용 전 반드시 충분한 테스트와 검증 과정을 거쳐야 합니다.
- 라이선스 정책 (License Policy): 본 프로젝트는 그누보드5(Gnuboard 5)를 기반으로 한 리팩토링 결과물로서, 원본 소프트웨어인 그누보드5의 라이선스 정책을 그대로 따릅니다.
수정 이력 (5)
1. 관리자 UI 레이아웃 전면 개선 - 사이드바/탑바 UX 고도화(접기/펼치기, 반응형 동작, 아이콘 체계 정리, 스크롤 UX 개선) - 관리자 메뉴 렌더링 구조 정리(레거시 클래스/스크립트 의존 축소, Tailwind/바닐라 기반 재작성) 2. 테마/코어 구조 변경 - 관리자/사용자 head.sub.php 의존성 분리 - 테마 사용 강제 방향으로 head/tail 경로 정리 - 중첩/불필요 래퍼(div) 정리 및 템플릿 단순화 3. UI-Kit 개선 - ui-sidebar 문서/데모 추가 및 네비게이션 연동 - UI-kit README 링크 경로 문제 수정 - 카드 외 컴포넌트까지 시맨틱 유틸리티 클래스 확장 - 모달/드롭다운/탭 등 스타일 및 동작 안정화 4. Tailwind 빌드 체계 개선 - common.css(공통)와 theme.css(사용자 화면) 분리 - ui-kit.css 별도 산출물 분리 - 빌드 스크립트 확장(build:root:uikit, build:theme:site) - 다크모드 버튼 대비 개선 포함 최종 반영 5. 사용자 영향/주의사항 - 테마 로딩 경로 및 head/tail 체계가 바뀌어 커스텀 테마/오버라이드가 있으면 점검 필요
1. 변경 사항 - 레거시 모바일 전용 설정(*_mobile_*) 전반 제거 및 반응형 단일 설정 체계로 통합 - 관리자 설정/폼/업데이트 로직에서 모바일 전용 필드 제거 - adm/config*, adm/board*, adm/qa_*, adm/menu_*, adm/faq* - adm/shop_admin/* 내 분류/상품/설정의 모바일 전용 입력/저장 항목 정리 - 게시판/문의/검색/페이지네이션에서 모바일 전용 키 분기 제거 - bbs/*에서 bo_mobile_*, cf_mobile_*, qa_mobile_* 참조 제거 - 테마 설정 정리 - [theme.config.php](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/SIR001/.vscode/extensions/openai.chatgpt-0.4.74-win32-x64/webview/#)의 모바일 전용 키 제거 - 포인트 스킨의 페이지네이션 공통 키로 통일 - 설치 스키마/초기화 정리 - [gnuboard5.sql](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/SIR001/.vscode/extensions/openai.chatgpt-0.4.74-win32-x64/webview/#)에서 모바일 관련 컬럼 정의 제거 - [install_db.php](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/SIR001/.vscode/extensions/openai.chatgpt-0.4.74-win32-x64/webview/#)의 모바일 로고/초기값 처리 제거 - [remove.sql](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/SIR001/.vscode/extensions/openai.chatgpt-0.4.74-win32-x64/webview/#)을 테이블 단위 ALTER 형식으로 축약 정리 2. 영향 - 모바일 전용 별도 설정값 없이 PC/모바일 공통 설정 사용 - 기존 DB에 남아있는 모바일 컬럼은 [remove.sql](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/SIR001/.vscode/extensions/openai.chatgpt-0.4.74-win32-x64/webview/#)로 정리 가능 3. 검증 - 변경 PHP 파일 php -l 문법 검사 통과
- 모달/드롭다운 동작 재구성 - 신규 스크립트 추가: ui-overlay.js, ui-dropdown.js - 드롭다운 가림 방지 자동 위치 보정(뷰포트 기준 재배치) - UI 가이드 다크모드 토글 추가: ui-theme.js + header.php, footer.php, sidebar.php, ui-guide.css - README/가이드 화면 가독성 및 이미지 반영 개선: index.php, ui-cards.php, WChwGxuZl7SE6RiHti5x.jpg - 탭 동작/접근성/활성 표시 보강: ui-tabs.js, ui-tabs.php, ui-guide.css - 버튼 그라데이션 전환 애니메이션 개선: ui-buttons.php - 공통 안정화: common.js의 jQuery 미로드 예외 대응
### 보안 패치 (원본 v5.6.24 반영) - [KVE-2026-0029] Stored XSS 취약점 수정 - [KVE-2025-0828] 영카트 취약점 수정 - 암호화 키 sha256 강화 및 발신자 위장 방지 ### 추가 - UPSTREAM_SYNC.md: 함수 매핑 테이블 및 동기화 가이드 - GitHub Actions: 매주 원본 업데이트 자동 확인 워크플로우
1. 모바일 스킨 시스템 완전 제거 (이슈 #2, #3) 2. 여분필드 시스템 제거 3. 반응형 단일 뷰 전환 (이슈 #3) 4. 카카오 우편번호 서비스 업데이트 5. src/ UI 가이드 개선 6. 레거시 코드 정리
굿굿