📋 시스템 개요

그룹웨어 메신저 시스템은 그누보드 기반의 실시간 메시징 솔루션입니다. 웹 기반으로 동작하며, 직관적인 사용자 인터페이스와 강력한 관리 기능을 제공합니다.

주요 특징
• 실시간 메시지 전송 및 수신
• 다중 대화창 지원
• 파일 첨부 기능
• 관리자 통계 및 모니터링
• 반응형 웹 디자인

✨ 주요 기능

💬
실시간 메시징
1초 이내의 빠른 메시지 전송과 실시간 알림으로 원활한 소통을 지원합니다.
🗂️
다중 대화창
여러 사용자와 동시에 대화할 수 있는 다중 창 시스템을 제공합니다.
📎
파일 공유
이미지, 문서, 압축파일 등 다양한 형식의 파일을 안전하게 공유할 수 있습니다.
📊
통계 관리
실시간 사용자 현황, 메시지 통계, 활성도 분석 등 상세한 관리 기능을 제공합니다.
🔒
보안
XSS 방지, 파일 업로드 보안, 권한 관리 등 강력한 보안 기능을 내장하고 있습니다.
📱
반응형 디자인
PC, 태블릿, 모바일 등 모든 디바이스에서 최적화된 사용자 경험을 제공합니다.

⚙️ 시스템 요구사항

구분 최소 요구사항 권장 사양
PHP 버전 PHP 7.0 이상 PHP 8.0 이상
MySQL 버전 MySQL 5.6 이상 MySQL 8.0 이상
웹서버 Apache 2.4 / Nginx 1.14 Apache 2.4 / Nginx 1.18
그누보드 그누보드 5.4 이상 그누보드 5.5 이상
디스크 공간 최소 100MB 1GB 이상
브라우저 Chrome 70+, Firefox 65+, Safari 12+ 최신 브라우저 권장

🔧 설치 가이드

설치 전 주의사항
• 그누보드가 먼저 설치되어 있어야 합니다
• 관리자 권한으로 설치해야 합니다
• 설치 중 기존 데이터가 손실될 수 있으니 백업을 권장합니다

📋 설치 단계

1단계: 파일 업로드

메신저 시스템 파일들을 그누보드 루트 디렉토리의 messenger 폴더에 업로드합니다.

/your-gnuboard-root/ ├── messenger/ │ ├── index.php │ ├── admin.php │ ├── api_easy.php │ ├── config.php │ ├── install.php │ └── uploads/ (쓰기 권한 필요)
2단계: 권한 설정

업로드 폴더에 쓰기 권한을 부여합니다.

chmod 755 messenger/ chmod 777 messenger/uploads/
3단계: 설치 실행

웹 브라우저에서 install.php에 접속하여 설치를 진행합니다.

http://yourdomain.com/messenger/install.php
4단계: 데이터베이스 생성

설치 스크립트가 자동으로 필요한 데이터베이스 테이블을 생성합니다.

  • messenger_messages: 메시지 저장
  • messenger_online: 온라인 상태 관리
  • messenger_files: 첨부파일 정보
5단계: 설치 완료

설치가 완료되면 install.php 파일을 삭제하고 메신저 시스템을 사용합니다.

⚙️ 환경 설정

config.php 파일에서 메신저 시스템의 각종 설정을 변경할 수 있습니다.

// 메시지 관련 설정 'max_message_length' => 1000, // 최대 메시지 길이 'messages_per_page' => 50, // 페이지당 메시지 수 'polling_interval' => 3000, // 폴링 간격 (밀리초) // 파일 업로드 설정 'allow_file_upload' => true, // 파일 업로드 허용 'max_file_size' => 5 * 1024 * 1024, // 최대 파일 크기 (5MB) // 권한 관리 'min_level_to_use' => 2, // 메신저 사용 최소 레벨 'admin_levels' => [10], // 관리자 레벨

🗃️ 데이터베이스 구조

테이블명 용도 주요 필드
messenger_messages 메시지 저장 msg_id, sender_id, receiver_id, message, send_time
messenger_online 온라인 상태 user_id, last_seen, status
messenger_files 첨부파일 정보 file_id, original_name, file_path, file_size
messenger_blocked 차단 목록 blocker_id, blocked_id, block_time

📱 사용자 가이드

메신저 시스템은 직관적이고 사용하기 쉬운 인터페이스를 제공합니다. 로그인한 모든 사용자가 실시간으로 메시지를 주고받을 수 있습니다.

💬 기본 사용법

메신저 접속

그누보드에 로그인한 후 메신저 메뉴 또는 직접 URL로 접속합니다.

http://yourdomain.com/messenger/
사용자 목록 확인

메인 화면에서 대화 가능한 사용자 목록을 확인할 수 있습니다.

  • 🟢 온라인: 현재 접속 중인 사용자
  • ⚪ 오프라인: 접속하지 않은 사용자
  • 👑 관리자 표시
  • 읽지 않은 메시지 수 표시
대화 시작

사용자 목록에서 "💬 대화하기" 버튼을 클릭하면 새 대화창이 열립니다.

새 대화창이 팝업으로 열리며, 실시간 메시지 교환이 가능합니다.
메시지 전송

하단 입력창에 메시지를 입력하고 Enter 키 또는 전송 버튼을 클릭합니다.

키보드 단축키
• Enter: 메시지 전송
• Shift + Enter: 줄바꿈
• ESC: 대화창 닫기

🚀 고급 기능

다중 대화창 관리

여러 사용자와 동시에 대화할 수 있는 강력한 기능입니다:

  • 드래그 이동: 대화창 헤더를 드래그하여 위치 이동
  • 크기 조절: 모서리를 드래그하여 창 크기 변경
  • 최소화: "—" 버튼으로 창 최소화
  • 창 관리: 우하단 관리자 UI로 일괄 관리
다중창 단축키
• Ctrl + T: 모든 창 타일링
• Ctrl + C: 모든 창 중앙 정렬
• Ctrl + Shift + C: 모든 창 닫기
• Ctrl + 1~9: 특정 창으로 이동

실시간 알림

새 메시지 도착 시 다양한 방식으로 알림을 제공합니다:

  • 브라우저 푸시 알림 (권한 허용 필요)
  • 소리 알림
  • 창 깜빡임 효과
  • 읽지 않은 메시지 배지

📎 파일 공유

다양한 방법으로 파일을 공유할 수 있습니다:

파일 첨부 방법
  • 📎 버튼 클릭: 파일 선택 다이얼로그 열기
  • 드래그 & 드롭: 파일을 채팅창에 끌어다 놓기
  • Ctrl + V: 클립보드 이미지 붙여넣기
지원 파일 형식
분류 지원 형식 최대 크기
이미지 jpg, png, gif, webp, bmp 10MB
문서 pdf, doc, docx, xls, xlsx, ppt, pptx, txt 10MB
압축파일 zip, rar, 7z 10MB
미디어 mp3, mp4, avi, mov 10MB
파일 미리보기 및 다운로드
  • 이미지: 클릭 시 확대보기 (이미지 뷰어)
  • 기타 파일: 클릭 시 즉시 다운로드
  • 파일 정보: 파일명, 크기, 업로드 시간 표시

👑 관리자 가이드

관리자는 메신저 시스템의 전반적인 관리와 모니터링을 할 수 있습니다. 레벨 10 이상의 사용자에게 관리자 권한이 부여됩니다.

🛠️ 관리 패널

관리자 패널은 다음 URL로 접속할 수 있습니다:

http://yourdomain.com/messenger/admin.php

주요 관리 기능

📊
실시간 통계
전체/오늘/주간 메시지 수, 온라인 사용자 현황을 실시간으로 모니터링
👥
사용자 관리
온라인 상태, 활성 사용자, 메시지 전송 현황 관리
💬
메시지 관리
최근 메시지 조회, 개별 메시지 삭제, 메시지 백업
🔧
시스템 관리
오래된 데이터 정리, 사용자 상태 초기화, 시스템 설정

👥 사용자 관리

온라인 사용자 모니터링

실시간으로 접속 중인 사용자들을 모니터링할 수 있습니다:

  • 사용자 ID 및 이름
  • 접속 상태 (온라인/오프라인)
  • 마지막 활동 시간
  • 상태 메시지

활성 사용자 분석

메시지 전송량을 기준으로 활성 사용자를 분석합니다:

  • 메시지 전송 수 기준 TOP 10
  • 첫 메시지 및 마지막 메시지 시간
  • 사용자별 활동 패턴 분석

사용자 권한 관리

레벨 권한 기능
1 이하 접근 불가 메신저 사용 불가
2~9 일반 사용자 메시지 송수신, 파일 공유
10 이상 관리자 모든 기능 + 관리 패널 접근

📊 통계 관리

상세한 통계 페이지는 다음 URL로 접속할 수 있습니다:

http://yourdomain.com/messenger/stats.php

제공되는 통계 정보

  • 실시간 통계: 현재 온라인 사용자, 읽지 않은 메시지
  • 시간별 통계: 24시간 메시지 전송 패턴
  • 일별 통계: 최근 7일간 메시지 추이
  • 월별 통계: 장기간 사용 패턴 분석
  • 사용자 순위: 활성 사용자 TOP 10

관리 작업

주의사항
다음 작업들은 데이터 손실을 초래할 수 있으므로 신중하게 실행하세요.
오래된 메시지 정리

30일 이상 된 메시지를 일괄 삭제하여 데이터베이스 용량을 관리합니다.

메시지 백업

모든 메시지 데이터를 CSV 파일로 내보내어 백업할 수 있습니다.

사용자 상태 초기화

모든 사용자의 온라인 상태를 오프라인으로 초기화합니다.

전체 메시지 삭제

모든 메시지를 삭제합니다. (복구 불가능)

🛠️ 문제해결

메신저 시스템 사용 중 발생할 수 있는 문제들과 해결 방법을 안내합니다.

일반적인 문제

🔴 메시지가 전송되지 않는 경우

네트워크 연결 확인

브라우저의 개발자 도구에서 네트워크 오류를 확인합니다.

권한 확인

사용자 레벨이 2 이상인지 확인합니다.

데이터베이스 확인

messenger_messages 테이블이 정상적으로 생성되었는지 확인합니다.

🔴 파일 업로드가 실패하는 경우

파일 크기 확인

10MB 이하의 파일인지 확인합니다.

폴더 권한 확인

uploads 폴더의 쓰기 권한을 확인합니다.

chmod 777 messenger/uploads/
PHP 설정 확인

PHP의 업로드 관련 설정을 확인합니다.

upload_max_filesize = 10M post_max_size = 10M max_execution_time = 300

🔴 실시간 업데이트가 작동하지 않는 경우

JavaScript 오류 확인

브라우저 콘솔에서 JavaScript 오류를 확인합니다.

폴링 간격 조정

config.php에서 폴링 간격을 조정합니다.

'polling_interval' => 5000, // 5초로 늘림
서버 성능 확인

서버의 메모리와 CPU 사용량을 확인합니다.

고급 문제해결

데이터베이스 관련 문제

-- 테이블 재생성 (데이터 손실 주의) DROP TABLE IF EXISTS g5_messenger_messages; DROP TABLE IF EXISTS g5_messenger_online; DROP TABLE IF EXISTS g5_messenger_files; -- install.php 재실행 또는 수동 생성

성능 최적화

  • 인덱스 추가: 대용량 메시지 처리 시 데이터베이스 인덱스 최적화
  • 정기 정리: 오래된 메시지와 파일의 정기적 삭제
  • 캐싱: 온라인 사용자 정보 캐싱으로 성능 개선

보안 강화

보안 체크리스트
• install.php 파일 삭제
• 업로드 폴더 직접 접근 차단
• 정기적인 백업 실시
• 사용자 권한 주기적 검토

❓ 자주 묻는 질문

Q1. 메신저는 어떤 브라우저에서 사용할 수 있나요?

Chrome 70+, Firefox 65+, Safari 12+, Edge 79+ 등 모든 모던 브라우저에서 사용 가능합니다. 최적의 경험을 위해서는 최신 브라우저 사용을 권장합니다.

Q2. 모바일에서도 사용할 수 있나요?

네, 반응형 디자인으로 제작되어 스마트폰과 태블릿에서도 원활하게 사용할 수 있습니다. 모바일에서는 다중 창 기능이 제한되어 한 번에 하나의 대화만 가능합니다.

Q3. 메시지 히스토리는 얼마나 오래 보관되나요?

기본적으로 모든 메시지가 영구 보관됩니다. 관리자가 설정에 따라 오래된 메시지를 정기적으로 삭제할 수 있습니다. 중요한 메시지는 별도로 백업하는 것을 권장합니다.

Q4. 동시에 몇 명과 대화할 수 있나요?

이론적으로는 제한이 없지만, 브라우저 성능을 고려하여 동시에 10개 이하의 대화창을 사용하는 것을 권장합니다. 너무 많은 창을 열면 브라우저가 느려질 수 있습니다.

Q5. 파일 업로드에 제한이 있나요?

파일당 최대 10MB까지 업로드 가능하며, 이미지, 문서, 압축파일, 오디오/비디오 파일을 지원합니다. 보안상의 이유로 실행 파일(.exe, .bat 등)은 업로드할 수 없습니다.

Q6. 메시지를 삭제할 수 있나요?

현재 버전에서는 일반 사용자가 직접 메시지를 삭제할 수는 없습니다. 관리자만 개별 메시지를 삭제하거나 전체 메시지를 정리할 수 있습니다.

Q7. 알림 설정을 변경할 수 있나요?

브라우저 푸시 알림은 브라우저 설정에서 허용/차단할 수 있습니다. 소리 알림은 현재 자동으로 재생되며, 향후 업데이트에서 사용자 설정 기능이 추가될 예정입니다.

Q8. 관리자 권한은 어떻게 부여하나요?

그누보드 관리자 페이지에서 해당 사용자의 레벨을 10 이상으로 설정하면 자동으로 메신저 관리자 권한이 부여됩니다. config.php에서 관리자 레벨을 변경할 수도 있습니다.

Q9. 백업은 어떻게 하나요?

관리자 페이지에서 '메시지 백업' 기능을 사용하여 CSV 파일로 내보낼 수 있습니다. 또한 데이터베이스를 직접 백업하거나 messenger 폴더 전체를 백업하는 것을 권장합니다.

Q10. 그룹 채팅은 지원하나요?

현재 버전은 1:1 개인 메시지만 지원합니다. 그룹 채팅 기능은 향후 업데이트에서 제공될 예정입니다. 현재는 여러 사용자와 개별적으로 대화하는 방식으로 사용해주세요.

기술 지원

추가 도움이 필요하시나요?
• 매뉴얼에서 답을 찾지 못한 경우
• 설치 또는 설정 중 문제가 발생한 경우
• 커스터마이징이나 기능 추가를 원하는 경우

개발자에게 문의하거나 그누보드 커뮤니티를 활용해주세요.

🔄 업데이트 및 버전 히스토리

버전 1.0.0 (2025-06-03)

초기 릴리즈
• 실시간 1:1 메시징 기능
• 다중 대화창 시스템
• 파일 첨부 및 공유
• 관리자 패널 및 통계
• 반응형 웹 디자인

계획된 업데이트

버전 1.1.0 (예정)
• 그룹 채팅 기능
• 이모티콘 지원
• 메시지 검색 기능
• 다크 모드 테마
• 모바일 앱 지원

업데이트 방법

백업

업데이트 전 반드시 데이터베이스와 파일을 백업하세요.

파일 교체

새 버전의 파일들을 기존 messenger 폴더에 덮어씁니다.

데이터베이스 업데이트

update.php가 있다면 실행하여 데이터베이스를 업데이트합니다.

테스트

업데이트 후 모든 기능이 정상 작동하는지 확인합니다.

👨‍💻 개발자 정보

🏗️
시스템 구조
Frontend: HTML5, CSS3, JavaScript (ES6+)
Backend: PHP 7.0+, MySQL 5.6+
Framework: 그누보드 5.4+
📂
파일 구조
• index.php - 메인 메신저 페이지
• admin.php - 관리자 패널
• api_easy.php - API 엔드포인트
• config.php - 설정 파일
🔧
커스터마이징
CSS 스타일 수정, 폴링 간격 조정, 파일 업로드 제한 변경 등이 가능합니다. config.php와 CSS 파일을 수정하세요.

API 엔드포인트

엔드포인트 메소드 기능
/api_easy.php?action=get_users GET 사용자 목록 조회
/api_easy.php?action=send_message POST 메시지 전송
/api_easy.php?action=get_messages GET 메시지 히스토리 조회
/api_easy.php?action=check_new_messages GET 새 메시지 확인
/api_easy.php?action=mark_as_read POST 읽음 처리

라이선스

오픈소스 라이선스
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자유롭게 사용, 수정, 배포할 수 있으며, 상업적 이용도 가능합니다. 단, 저작권 표시와 라이선스 전문을 포함해야 합니다.