AI 글쓰기 및 SNS 연동 기능에 앞서, 멀티테넌트(Multi-Tenant) 환경에서의 구조적 안정성(DB/트래픽), 강력한 보안, 그리고 "완벽한 모바일 사용자 경험(UX)"을 달성하기 위한 1단계 보완 계획입니다.
1. 아키텍처 및 DB 구조 안정화 (Traffic & Scaling)
현재 모든 테넌트(사용자)가 동일한 데이터베이스를 공유하는 구조(Shared-Database, Shared-Schema)입니다. 트래픽 증가 및 테넌트 확장에 대비해 병목현상을 제거하고 데이터 무결성을 강화합니다.
1.1. 데이터베이스 인덱싱 및 쿼리 최적화
- [MODIFY]
database/init.sql및 마이그레이션:-
posts,comments,tenant_settings등 모든 주요 테이블에tenant_id및 조회용 컬럼(예:created_at,board_type)을 결합한 복합 인덱스(Composite Index) 추가. - (예:
CREATE INDEX idx_tenant_board ON posts (tenant_id, board_type, created_at DESC);)
-
- 성능 분석: N+1 쿼리 문제가 발생하는지 확인하여
JOIN또는 Eager Loading 구조로 개편.
1.2. 캐싱(Caching) 레이어 도입 준비
- 동적이지만 자주 변하지 않는 데이터(예:
tenant_settings, 메인 레이아웃 정보 등)의 경우 매 페이지 로드마다 DB 조회를 하지 않도록 캐싱 구조 설계. (Redis/Memcached 연동 준비 또는 파일 기반 캐싱 도입).
2. 보안(Security) 근본적 강화
가입자(정치인, 퍼스널 브랜드 등)의 명성에 직결될 수 있으므로 XSS, CSRF, SQL Injection 에 대한 완전한 방어벽을 구축합니다.
2.1. CSRF (크로스 사이트 요청 위조) 방어
- [MODIFY]
src/Core/Security.php(신규): 세션 기반 CSRF 토큰 생성 및 검증 로직 구현. - [MODIFY]
templates/*: 모든 POST 폼(회원가입, 로그인, 설정, 글쓰기 등)에 CSRF 토큰 필드(<input type="hidden" name="csrf_token">) 강제 적용. - [MODIFY]
src/Controllers/*: POST 요청 시 CSRF 토큰 유효성 필수 검증.
2.2. XSS (크로스 사이트 스크립팅) 완전 차단
- [MODIFY]
src/Controllers/BaseController.php: 뷰(View)로 전달되는 모든 데이터에 대해 기본적으로htmlspecialchars를 적용하는 안전한 출력 헬퍼(Helper) 함수 도입. - [MODIFY] 에디터(WYSIWYG) 보안: 게시물 작성 에디터에서 악성 스크립트를 걸러내는 HTML Purifier 라이브러리 적용 (필요시 백엔드에서 정제).
3. 완벽한 모바일 최적화 (Mobile UI/UX)
단순한 반응형(Responsive)을 넘어, "앱처럼 느껴지는" 모바일 네이티브 UX를 제공합니다.
3.1. 뷰포트 및 레이아웃 재설계
- [MODIFY]
templates/posts/layout_header.php:- 완벽한 모바일 뷰포트 설정 (
width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no). - 모바일에서는 하단 네비게이션 바(Bottom Navigation Bar)를 도입하여 주요 메뉴 접근성 극대화.
- 완벽한 모바일 뷰포트 설정 (
- [MODIFY]
templates/posts/index.php및 CSS:- 모바일 환경에서 글씨 크기, 버튼 터치 영역(Touch Target, 최소 48x48px) 완벽 확보.
- 제스처(스와이프) 동작을 통한 이미지/배너 슬라이더 적용.
- iOS 환경의 안전 영역(Safe Area) 패딩 반영 (
env(safe-area-inset-bottom)등).
3.2. 성능 최적화 (성능이 곧 UX)
- 이미지 최적화: 업로드되는 프로필 및 게시물 사진의 자동 리사이징 및 WebP 포맷 변환 로직 도입 (현재 로직 리뷰 및 보강).
- 에셋 로딩: CSS/JS 파일의 Minify 적용, 비동기(Defer) 로딩으로 모바일 렌더링 블록 요소 제거.
IMPORTANT
User Review Required
- 캐싱 도입: 트래픽 최적화를 위해 서버에 Redis나 Memcached 모듈을 설치할 수 있는 환경(서버 권한 등)이 되시는지요? 어렵다면 가벼운 형태의 File 캐싱이나 APCu 캐싱으로 설계하겠습니다.
- UI 프레임워크: 현재 사용 중인 CSS 구조가 TailwindCSS 계열인지 바닐라 CSS인지 등 세부 UI 개선을 위해 선호하시거나 이미 적용된 CSS 프레임워크가 있다면 알려주세요. (완벽한 커스텀을 위해서는 바닐라 CSS에 현대적 Flex/Grid를 얹어 고도화하는 것이 좋습니다.)
4. 진행 순서 (Verification Plan)
- 보안/DB 구조 작업: CSRF 토큰 적용 및 테이블 인덱스 추가.
- 백엔드 로직 정비: 보안 검증 강화 및 쿼리 최적화 확인.
- 모바일 UI/UX 적용: View 템플릿 수정, 하단 네비게이션 추가, 모바일 최적화 CSS 적용.
- 성능 테스트: 모바일(Lighthouse 등) 로딩 속도, 터치 딜레이 테스트 및 멀티테넌트 트래픽 부하 시뮬레이션.
댓글 (0)
댓글 쓰기