개발자
개발자 문서
KCMS 위에 무언가를 만들거나 확장하려는 분들을 위한 글입니다. 그냥 쓰는 법은 사용법 에 있습니다.
시작하기
KCMS 는 어떤 기술로 만들어졌나요?
PHP 8.2 이상(FPM) · MariaDB 10.11 이상 · Apache 2.4 + mod_rewrite(AllowOverride All) 위에서 돌아갑니다.
pdo_mysql | DB 접속 |
mbstring | 한글 등 멀티바이트 문자열 |
gd, exif | 이미지 처리·리사이즈 |
fileinfo, curl, zip, openssl | 업로드 검증·외부 연동·압축·보안 |
진입점이 여러 개인가요?
아닙니다. index.php 하나가 모든 요청을 받는 프론트 컨트롤러입니다. .htaccess 가 실제 파일·폴더가 아닌 요청을 전부 여기로 돌립니다.
app/Core/ Router · Database · Auth · View · Csrf · Validator
Uploader · Paginator · Config · Request · Response · App
app/Model/ Board · Post · Member · Group · Point · FileModel …
app/Controller/ Home · Board · Member · Memo · Poll · Faq · Qa …
설치·재설치는 어떻게 하나요?
설치 스크립트는 CLI 에서만 실행됩니다 — 브라우저로 접근하면 403 입니다.
php bin/install.php # 1차 — 스키마 + 기본 데이터 + 관리자 계정
php bin/install2.php # 2차 — 쪽지·설문·FAQ·Q&A·소셜·로그 테이블
php bin/install3.php # SEO — sol_seo + 각 테이블 SEO 컬럼 + 슬러그
여러 번 실행해도 안전합니다(있는 것은 건너뜁니다). 다시 만들어야 하면 --reset 을 붙이는데, 그 범위의 데이터가 지워집니다.
설치가 끝나면 관리자 계정이 함께 만들어집니다. 운영으로 넘기기 전에 반드시 비밀번호를 바꿔야 합니다.
게시판·테마
게시판마다 화면을 다르게 꾸밀 수 있나요?
사이트 전체 테마도 바꿀 수 있나요?
theme/ 아래 폴더 하나가 테마 하나입니다 — basic · company · community. 관리자 환경설정에서 고른 이름의 폴더가 없으면 조용히 basic 을 씁니다.
테마마다 style.css · user.css · theme-init.js 를 완전히 따로 가지므로, 새 테마는 바꾸고 싶은 파일만 두면 나머지는 basic 것을 그대로 씁니다.
여러 언어를 지원하나요?
lang/ 폴더에 언어별 사전이 있고, 각 페이지에 hreflang 대체 링크가 함께 나갑니다. 화면 오른쪽 아래(또는 헤더)의 언어 전환으로 바꿉니다.
연동
RSS 피드가 있나요?
있습니다. 게시판별로 표준 RSS 2.0 을 그대로 받을 수 있습니다.
GET /rss | 사이트 전체 최신글 |
GET /rss/{게시판} | 그 게시판만 |
사이트맵은요?
/sitemap.xml 이 열려 있고, 게시판·페이지가 많으면 /sitemap-{이름}.xml 로 나뉩니다. SEO 코어(app/Core/Seo.php)가 관리합니다.
바깥 프로그램이 쓸 수 있는 REST API 가 있나요?
아직 없습니다. 지금은 위의 RSS·사이트맵처럼 표준 피드만 열려 있고, 인증이 필요한 별도 API 서버는 두지 않았습니다.
API 가 필요하시면 아래 문의로 어떤 용도인지 알려 주세요 — 검토해서 안내드리겠습니다.
요청 처리 순서
브라우저 요청 하나가 어떤 순서로 처리되나요?
실제 파일이 아니면 전부 index.php 로 모여, 아래 순서를 거쳐 화면(또는 JSON·RSS 등)으로 나갑니다.
Router
흐름 결정
스킨이 없거나 테마 폴더가 없으면 View 단계에서 basic 으로 조용히 되돌아갑니다 — 화면이 하얗게 죽는 대신 기본 모습으로 나갑니다.
문의·제안
오류를 발견했거나, 필요한 기능이 있어요
아래에서 바로 남겨 주세요. 1:1 문의로 접수되어 분류가 자동으로 선택된 채 열립니다.