Files
Gnuboard7/docs/requirements.md
T
2026-04-01 10:30:52 +09:00

7.4 KiB

그누보드7 시스템 요구사항 (System Requirements)

그누보드7 설치 및 운영을 위한 서버/클라이언트 요구사항 문서

TL;DR (5초 요약)

1. PHP 8.2+ 필수
2. MySQL 8.0+ 또는 MariaDB 10.3+ (utf8mb4, utf8mb4_unicode_ci)
3. PHP 필수 모듈 30개 (ctype, curl, gd, intl, redis, imagick 등)
4. 디스크 용량: 최소 700MB / 권장 2GB+
5. 프로덕션: HTTPS 필수, Redis 권장, 큐 워커/스케줄러/Reverb 데몬 필요

1. 서버 요구사항

1.1 운영체제

OS 지원 수준 비고
Linux (Ubuntu 22.04+, CentOS/RHEL 8+) 프로덕션 권장 가장 안정적

1.2 웹서버

웹서버 버전 비고
Nginx 1.18+ 프로덕션 권장
Apache 2.4+ mod_rewrite 활성화 필수
  • Laravel은 public/index.php를 진입점으로 사용
  • Apache 사용 시 .htaccess 파일이 URL 리라이팅 처리

1.3 PHP

항목 요구사항
버전 8.2 이상 (^8.2)
SAPI FPM (권장) 또는 mod_php

1.4 PHP 필수 확장 모듈

모듈 용도
bcmath 정밀 수학 연산 (가격 계산 등)
ctype 문자 타입 검사
curl HTTP 클라이언트
dom XML/HTML DOM 처리
exif 이미지 메타데이터 읽기
fileinfo MIME 타입 감지
filter 데이터 필터링/검증
gd 이미지 처리 (썸네일, 리사이징)
hash 해시 함수
imagick 고급 이미지 처리 (ImageMagick)
intl 국제화 (다국어, 날짜/숫자 포맷)
json JSON 인코딩/디코딩
ldap LDAP 인증 연동
libxml XML 파싱 기반 라이브러리
maxminddb GeoIP 데이터베이스 조회
mbstring 멀티바이트 문자열 처리
memcached Memcached 캐시 드라이버
openssl 암호화/복호화 (AES-256-CBC)
pcntl 프로세스 제어 (큐 워커)
pcre 정규 표현식
pdo 데이터베이스 추상화
pdo_mysql MySQL/MariaDB PDO 드라이버
phar Phar 아카이브 (Composer)
posix POSIX 함수 (프로세스 관리)
redis Redis 캐시/세션/큐 드라이버
session 세션 관리
simplexml 간편 XML 파싱
sodium 최신 암호화 라이브러리
tokenizer PHP 토큰 파싱
xml XML 파서
xmlwriter XML 문서 생성
zip ZIP 압축/해제
zlib 데이터 압축

1.5 PHP 설정 권장값 (php.ini)

설정 최소값 권장값 비고
memory_limit 128M 256M+ 이미지 처리 시 높은 메모리 필요
upload_max_filesize 10M 20M+ 첨부파일 업로드 크기
post_max_size 12M 25M+ upload_max_filesize보다 커야 함
max_execution_time 60 120+ 대량 데이터 처리 시
max_input_vars 1000 5000+ 복잡한 폼 데이터 처리

2. 데이터베이스

2.1 지원 DBMS

DBMS 최소 버전 비고
MySQL 8.0 이상 프로덕션 권장
MariaDB 10.3 이상 MySQL 호환 대안

2.2 설정 요구사항

항목 값 비고
charset utf8mb4 이모지 등 4바이트 문자 지원
collation utf8mb4_unicode_ci 유니코드 정렬
테이블 접두어 g7_ (기본값) .env에서 DB_PREFIX로 변경 가능

선택 기능:

  • Write/Read 분리: Master-Replica 구성 지원 (DB_WRITE_* / DB_READ_* 환경 변수)

3. 디스크 용량

수준 용량 포함 범위
최소 700MB 코어 + 기본 확장
권장 2GB 이상 코어 + 확장 + 첨부파일 + 캐시 + 로그
  • 사용자 업로드 파일, 로그, 캐시 등은 별도 용량 산정 필요
  • storage/ 디렉토리에 쓰기 권한 필수

4. 선택적 서비스 (프로덕션 권장)

4.1 Redis

항목 요구사항 비고
Redis 6.0 이상 캐시, 세션, 큐 드라이버로 사용 가능
  • 프로덕션 환경에서 캐시/세션/큐 성능 향상을 위해 권장
  • PHP redis 확장 필요 (phpredis)

4.2 클라우드 서비스 (AWS)

서비스 용도 필수 여부
AWS S3 파일 스토리지 (클라우드) 선택
AWS SES 이메일 발송 선택
AWS SQS 큐 처리 (대규모 트래픽) 선택
  • aws/aws-sdk-php 패키지 포함됨

4.3 메일 서비스

서비스 비고
Mailgun symfony/mailgun-mailer 패키지 포함됨
AWS SES 위 AWS 서비스 참조
SMTP 자체 SMTP 서버 사용 가능
  • 이메일 발송이 필요 없는 경우 MAIL_MAILER=log로 설정

4.4 WebSocket (Laravel Reverb)

항목 요구사항 비고
Laravel Reverb 포함됨 (laravel/reverb ^1.6) 자체 호스팅 WebSocket 서버
기본 포트 8080 REVERB_PORT로 변경 가능
  • 실시간 알림, 브로드캐스팅 기능 사용 시 필요
  • 대안: Pusher 서비스 (pusher-js 클라이언트 포함됨)

5. 보안

5.1 SSL/TLS

환경 요구사항
프로덕션 HTTPS 필수
  • Laravel Reverb WebSocket도 wss:// 프로토콜 사용 (REVERB_SCHEME=https)
  • Sanctum 세션 인증 시 SESSION_SECURE_COOKIE=true 설정 권장

6. 프로덕션 데몬 프로세스

프로덕션 환경에서 상시 실행해야 하는 프로세스:

프로세스 명령어 관리 도구
큐 워커 php artisan queue:work Supervisor 등
스케줄러 php artisan schedule:run cron (매분 실행)
WebSocket php artisan reverb:start Supervisor 등
# cron 예시 (스케줄러)
* * * * * cd /path/to/g7 && php artisan schedule:run >> /dev/null 2>&1

7. 지원 브라우저

브라우저 지원 범위
Chrome / Edge 최신 2개 버전
Firefox 최신 2개 버전
Safari 최신 2개 버전
  • React 19 + Tailwind CSS 4 호환 범위 기준
  • Internet Explorer 미지원

8. 호스팅 환경별 제한사항

8.1 공유 호스팅 (Shared Hosting)

공유 호스팅에서도 그누보드7 설치는 가능하지만, 호스팅 업체에 따라 아래 기능이 제한될 수 있습니다.

제한될 수 있는 기능:

제한 항목 영향받는 기능 대안
데몬 프로세스 (Supervisor) 큐 워커 상시 실행 불가 QUEUE_CONNECTION=sync (동기 처리)
cron 최소 간격 스케줄러 분 단위 실행 제한 호스팅 cPanel cron (지원 간격 확인)
PHP 확장 제한 (pcntl, posix, redis, imagick 등) 큐 워커, 프로세스 관리, Redis 캐시, 이미지 처리 파일/DB 캐시, GD 라이브러리
PHP 설정 변경 (memory_limit, max_execution_time 등) 대용량 파일 업로드, 이미지 처리 호스팅 관리자에게 변경 요청
커스텀 포트 (80/443 외) Reverb WebSocket (기본 8080 포트) Pusher 등 외부 WebSocket 서비스
파일 권한 (symlink 등) storage/ 심볼릭 링크 php artisan storage:link 대체 방식 확인
디스크 용량 첨부파일, 로그, 캐시 누적 플랜별 용량 확인, 정기 정리