개선/제안

2025.06.01 12:24

자동화 기능

01. 게시판 기본기능
   - 뱃지/강조, 댓글 파일첨부, 해시태그 직접 입력 ( > 제목 해시태그 변환 > 제목)

---------------------------------------------------------------------------------------------------------------------------------------------------------------

02. 동영상 링크, 본문 자동삽입

   - 그누보드폴더/extend/vl_auto_media_player_embed.php

   - 대상 : 유튜브, 비메오, 페이스북, 데일리모션, 트위치, 럼블, mp4, mp3
   - 제안: vl_auto_media_player_embed.php
   - (미디어 플레이어 임베드 기능을 더 명확하게 표현)
   - 기능설명 : 게시판 글작성 시 링크 1,2 에 유튜브 비메오 등을 넣으면 게시판 본문에서 해당 영상 및 음악이 플레이어를 통해 출력되고, 재생되는 기능
 
---------------------------------------------------------------------------------------------------------------------------------------------------------------

03.. 네어버 서치 어드바이저 수집요청 API 만들기

   - 그누보드폴더/extend/vl_search_api_call.php
   - 그누보드폴더/extend/vl_google_api_call.php
   - 그누보드폴더/extend/vl_naver_api_call.php

   - call_search_apis 함수는 URL과 동작 타입(예: update, sitemap)을 받아 네이버와 구글 API를 동시에 호출합니다.
   - 네이버와 구글의 응답 결과를 배열 형태로 반환합니다.
   - write_update.php에서는 호출만 처리하며, 로직이 간단
   - 코드 재사용성 증가: 네이버와 구글 API 호출을 하나의 함수로 통합.
   - 유지보수 간소화: API 호출 로직을 중앙 관리.
   - 실행 간결화: 게시물 등록/수정 시 호출만으로 처리.
   - 이 코드로 네이버와 구글 수집 요청을 효율적 처리, 필요 시 커스터마이징도 가능

---------------------------------------------------------------------------------------------------------------------------------------------------------------

04. 자동댓글

   - 그누보드폴더/extend/vl_auto_comment_board.php
   - 그누보드폴더/theme/rb.basic/skin/board/게시판폴더이름/write_update.skin.php

   - (AI 기반 자동 댓글 생성 기능을 표현)
   -. 기능설명 : 웹사이트 관리자 및 모든 사용자가 게시물을 통해 글을 작성하면, ai api를 활용해서 제목과 글 내용을 분석한 후 그에 맞는 댓글을 대신 작성해주고 디비에 기록해주는 기능
   - 자동 댓글 생성 : 새로운 게시물에 봇 계정으로 자동 댓글을 추가해 사용자 참여를 유도하거나, 빈 게시물 페이지가 생기지 않도록 합니다.
   - 댓글을 추가해 사용자 참여를 유도하거나, 빈 게시물 페이지가 생기지 않도록 할만한 댓글
   - 배열방식 >>> 글내용을 분석해서 chatGPT가 댓글 달 수 있도록 수정 (벤치마킹 : 자동 답변 (chatgpt))  자동 댓글 : ChatGPT API > 제미나이로 변경
     (이전 : 지정된 댓글을 배열순으로 정리해서 랜덤으로 DB 기록)
   - 댓글 지정 시간 : 원글작성시간 + 47초, 시간 지정 가능
   - 자동댓글, 원하지 않는 게시판 지정
   -  댓글 생성 프롬프트 변경.
     역할 지정: "당신은 친절하고 공감 능력이 뛰어난 사람입니다" 와 같이 AI 모델에게 특정 역할을 부여함으로써, 댓글의 톤과 스타일을 제어할 수 있습니다.
     구체적인 지시: "자연스럽고, 문맥에 맞는 긍정적인 톤으로", "중간에 끊기지 않고 완성도 있게", "완전한 문장으로 마무리" 와 같이 구체적인 지시 사항을 추가하여 AI가 원하는 결과물을 생성하도록 유도합니다.
     댓글 작성 가이드라인: AI가 댓글을 작성할 때 참고할 수 있는 명확한 가이드라인을 제공합니다. 이를 통해 댓글의 질을 높이고 일관성을 유지할 수 있습니다.
     구분선("---"): 시각적으로 정보를 구분하여 AI가 정보를 더 쉽게 이해하도록 돕습니다.

---------------------------------------------------------------------------------------------------------------------------------------------------------------

05. 해시태그 추출 > 제목,내용 PHP방식으로 해시태그 추출

   - 그누보드폴더/extendvl_hashtag.extend.php
   - 그누보드폴더/extend/vl_auto_hashtag_board.php
   - 그누보드폴더/theme/rb.basic/skin/board/게시판폴더이름/write_update.skin.php
   - 그누보드폴더/theme/rb.basic/skin/board/게시판폴더이름/write.skin.php

   - 목적 : 키워드 기반 자동 해시태그 생성**: 게시물이 등록될 때, 제목과 내용을 분석하여 해시태그를 자동으로 생성합니다. 간단한 키워드 빈도 분석부터 시작해서 필요하면 NLP 라이브러리를 활용하여 더 정교한 해시태그 추천 기능을 구현할 수도 있습니다.
   - 내용에서 단어 추출: 게시물의 내용(description 또는 content)에서 단어를 추출합니다.
   - 단어 빈도 계산: 각 단어가 얼마나 자주 등장하는지 계산합니다.
   - 빈도가 높은 단어 선택: 빈도가 높은 상위 5개의 단어를 키워드로 추출합니다.
   - 해시태그 형식 변환: 키워드를 키워드,(쉼표) 형식으로 변환하여 wr_tag 칼럼에 삽입합니다.
   - 내용에서 구두점과 특수문자를 제거하고, 소문자로 변환하여 단어를 추출합니다.
   - 단어들의 빈도를 계산한 후, 상위 5개를 해시태그 형식으로 변환합니다.
   - 불용어 제외 기능 추가 또는 명사만 추출 > 라이브러리 미활용 > 제미나이 AI에게 제목/글내용 주고, 키워드 추출요청
   - 해시태그 자동등록 시 키워드 추가 등록 (Table : rb_tag) -> write.update.skin.php 추가코드 확인

---------------------------------------------------------------------------------------------------------------------------------------------------------------

00. SNS 자동 공유 :  ***************
   - 마지막으로, 등록된 게시물을 페이스북, 트위터 등 SNS에 자동으로 공유하는 기능을 추가합니다. 이 기능은 특정 시간대마다 실행되도록 하거나, 새로운 게시물 등록 시마다 자동 공유되도록 설정할 수 있습니다.

---------------------------------------------------------------------------------------------------------------------------------------------------------------

00. 게시물 내용 자동 확장/보충 ************
제안: vl_auto_content_expander.php
(컨텐츠 자동 확장/보충 기능을 표현)
 -. 기능설명 : 게시판에 글 작성자가 글을 작성하는데 특정 글자수 미만으로 글이 너무 짧으면, 나머지 내용을 ai api 를 활용해서 내용에 보충 글을 자동으로 작성해주는 기능

-----------------------------------------------------------------------------------------------------------------------------------------------

05. RSS 게시판 만들기 순서
제안: vl_auto_rss_post.php
(RSS 피드 기반 자동 포스팅 기능을 표현)
 -. 기능설명 : rss 등의 기술? 을 통해 특정 사이트의 특정 주제들을 가져와 나의 웹사이트에 지정된 게시판에 글을 자동으로 등록해주는 기능

자동 게시물 등록 (RSS 기반)**: 먼저 RSS 피드를 통해 다른 사이트에서 게시물을 자동으로 수집하고, 그누보드에 등록되도록 하고, 게시물 등록 기능이 안정적으로 작동하면 이후 추가할 기능의 토대가 됩니다.
로직/기능 벤치마크 : https://sir.kr/cmall/item.php?it_id=1565826186&device=pc

1) curl 활용 SSL 인증 우회

2) 최초 가져오기 : + 최소 가져 올 때 기간 정하기 예 일주일 치 등 (최초 가져올 오래된 일자 지정 및 갯수 지정)
   - 가져올때 최근 게시물부터 가져오기 때문에 전체를 가져온 후 그 이 후 처리해야함)

3) 이후 가져오기 : 최신 게시물 날짜를 비교하여 중복되지 않는 새 게시물만 추가하고, wr_datetime과 wr_last에 원본 작성 날짜를 설정

4) 정렬 기준 : wr_num 계산(등록) 기준 (wr_num 등록기준 없을 경우 : 삭제, 수정, 댓글작성 문제 발생)
   - 오래된 게시물부터 -1, 그 다음 -2, 이렇게 순차적으로 부여하여 최신 게시물이 가장 작은 wr_num 값을 갖도록 수정
   - 모든 새 게시물을 시간 순으로 배열한 후,
   - 가장 오래된 게시물부터 차례대로 wr_num을 감소시키며 등록하는 방식
   - 이렇게 하면 게시물의 원본 작성 날짜에 따라 오래된 게시물부터 -1, -2, ..., 최신 게시물이 -N 형태로 정렬
   - 추가 : 최초 가져오기 후 이후 신규로 가져올 때 해당 게시물에 다시 wr_num값에 -1을 부여하는 문제 해결) 
   - 가장 작은 wr_num 값 확인: get_min_wr_num() 함수를 통해 현재 게시판에서 가장 작은 wr_num 값을 가져옴
   - wr_num 값 감소: 새로운 게시물 등록 시마다 current_wr_num--를 적용하여, 가장 작은 값보다 더 작은 wr_num 값이 되도록
   - 이제 추가 게시물이 등록될 때마다 기존 게시물의 wr_num 값을 기준으로 더 작은 wr_num 값을 가지게 되어, 정렬된 순서가 유지

5) 댓글 매칭 : wr_parent 가져오기 기준
   - wr_id 값이 해당 게시물의 고유 ID 역할을 하며, 댓글을 등록할 때 부모 게시물 ID와 동일해야 댓글이 올바르게 연결 됨. 따라서 새 게시물을 등록할 때, wr_id 값을 wr_parent 컬럼에도 동일하게 넣어주면 댓글 기능이 정상적으로 작동
   - 게시물 삽입 후 wr_id 가져오기: sql_insert_id() 함수를 사용해 wr_id 값을 가져옴
   - wr_parent 필드 업데이트: 새로 가져온 wr_id 값을 wr_parent 필드에 저장하기 위해 UPDATE 쿼리를 수행

6) 추가 디비 > 게시자/작성자 정보 등록 (없을 경우 게시물 수정 못하는 문제 발생)
   - md_id, mid_name, mid_email (게시물의 작성자 정보를 보여주기 위해, 대표 아이디 또는 운영자 아이디 정보 기록 필요)
   - wr_ip (지금은 아니지만 나중에 실행관련 해당 아이피 아니면 실행 불가 같은 기능 필요할 수 있어서 디비 기록)
   - 작성자 ID(mid_id), 작성자 이름(mid_name), 작성자 이메일(mid_email), 작성 IP(wr_ip) 정보를 가져오거나, 정보가 없을 경우 기본값을 할당하도록 수정
   - 작성자 정보 가져오기: author, author_name, author_email 필드에서 작성자 정보를 추출, 정보가 없을 경우 $default_md_id, $default_mid_name, $default_mid_email, $default_wr_ip에 지정된 기본값을 사용
   - wr_ip 설정: IP 주소는 서버의 $_SERVER['REMOTE_ADDR'] 값을 기본값으로 설정

7) 추가 디비 > 내용 작성 옵션 (html1)
   - 글등록 시 wr_option colom > html1 값 저장되어야, 게시물 쓰기 html로 작성한 게시물 정상적으로 출력 
   - 기타 여분필드 가져오기 wr_1, wr_2, wr_tag 임의값 등록 불필요, rss 해당 값 없음)

8) 해시태그 추출, 자동삽입
   a 키워드 추출 방법
   - 내용에서 단어 추출: 게시물의 내용(description 또는 content)에서 단어를 추출
   - 단어 빈도 계산: 각 단어가 얼마나 자주 등장하는지 계산
   - 빈도가 높은 단어 선택: 빈도가 높은 상위 5개의 단어를 키워드로 추출
   - 해시태그 형식 변환: 키워드를 키워드,(쉼표) 형식으로 변환하여 wr_tag 칼럼에 삽입
   b  키워드 추출 로직
   - 키워드추출 정규식 순서 : html 제거 > 한글만 남기기 > 앞뒤 공백제거 > 키워드 필터링 > 쉼표로 구분된 키워드 문자열
   - 내용에서 구두점과 특수문자를 제거하고, 소문자로 변환하여 단어를 추출
   - 단어들의 빈도를 계산한 후, 상위 5개를 해시태그 형식으로 변환
   c  키워드 추출 함수 주요설명
   d  텍스트 전처리 강화:
   - HTML 태그 완전 제거
   - HTML 엔티티 디코딩
   - URL과 이메일 주소 제거
   - 줄바꿈/탭 처리
   e  한글 처리 개선:
   - 특수문자 제거 시 한글 자음/모음 보존
   - 초성으로만 이루어진 단어 제외 로직 강화
   - 영문 제거 강화 preg_replace('/\b[\w\d]+\b/', '', $content) 추가하여 영문자와 숫자가 포함된 단어를 제거
   - 한글 완성형 문자(가-힣)만 남기도록 필터링 강화
   - 단어 검증 강화 preg_match('/^[가-힣]+$/u', $word) 를 사용하여 한글로만 이루어진 단어만 선택
   - 혼합된 문자(한글+영문)가 포함된 단어 제외
   f  키워드 품질 향상:
   - 최소 2회 이상 등장한 단어만 선택
   - 2글자 이상 단어만 처리
   - 해시태그 형식으로 출력 (#키워드) - 변경 > 쉼표(,) 형태로 구분
   g  불용어 처리 개선:
   - 추가적인 한글 불용어 확장
   - 불용어 필터링 로직 강화
   - 더 많은 한국어 불용어 추가하여 키워드 품질 향상
   h  명사만 추출 (명사 추출 라이브러리 사용 시 불용어 방식 제거 하기)  -> api 로 대체
   - KoNLPy 설치 (시놀로지에 Python 환경 구축) 후 라이브러리 통한 추출 필요
   i 해시태그 자동등록 시 키워드 추가 등록 (Table : rb_tag) -> write.update.skin.php 추가코드 확인

9) rss 가져올만한, 저작권문제 없는 사이트 목록 해외 뉴스, 스포츠 등 주석처리
   - ... 

10) 자동댓글 연동하기 (-. 글내용 하단 공통 멘트 추가 하기 저작권 관련 등등의 내용을.....)
   - 자동 댓글 내용 배열 정의, 자동 댓글 등록 함수 생성(insert_auto_comment), DB 등록 : 랜덤으로 자동 댓글 내용 선택 및 등록
   - 자동댓글 기능 : $latest_post_date = get_latest_post_date($bo_table); 문제 확임됨
   - RSS 게시판, 자동댓글 로직상 최신 게시물 가져오는 방식이, RSS게시판 DB에 등록된 마지막 게시물의 작성일자 확인 후 원문의 xml과 비교하는데, DB의 마지막이 댓글이므로, 댓글의 작성일자(가져오는 날짜,시간)를 인식하여, 더이상 게시물이 없는 것오로 판단하여, 게시물을 추가로 못 가져오는 문제 확인
   - 처리방법 : 등록된 게시물의 wr_datetime = 댓글의 wr_datetime 를 동일하게 등록 > 이후 최신 게시물 날짜 가져올 떄 원문의 게시글 날짜를 가져와 이후 RSS 데이터 가져올 수 있음
     (자동 댓글 등록 함수 수정)
   - 조회수 1 처리 : 댓글이 달렸기 때문에 조회수가 0 일수 없으므로, 조회수 값을 임의로 1 부여한다. wr_hit
   - 배열방식(8번 해시태그 추출, 자동삽입) >>> 글내용을 분석해서 chatGPT가 댓글 달 수 있도록 수정 (벤치마킹 : 자동 답변 (chatgpt))  *************************

11) 기타 기능 및 에러 해결
    - 게시물번호 - (마이너스) 발생 -> 게시물수 +1 -> Table : g5_board -> bo_write_count +1 증가 되도록 코드 추가
    - 새글에도 업데이트 (Table : rebuilder_board_new) -> 최초수집이다 보니 예전글을 가져와서 등록일자가 원문글의 등록일자를 그대로 사용 해서, 안 보이는 것으로 착각 함

-------------------------------------------------------------------------------------------------------------------------------------------------

06. 유튜브 데이터 API 가져오기, 영상 추출 : Youtube Data V3 API
제안: vl_auto_youtube_post.php
(유튜브 채널 컨텐츠 자동 포스팅 기능을 표현)
 -. 기능설명 : 게시물 자동포스팅과 비슷한데 유튜브의 특정 채널을 지정하면 그 유튜브 채널에 등록된 유튜브 링크 및 제목, 내용을 지정한 나의 웹사이트 게시판에 자동으로 등록하는 기능

(교육영상) https://brunch.co.kr/brunchbook/youtubeapi
이 코드는 정기적으로 실행하면 YouTube 채널의 2020년 이후 동영상들을 가장 오래된 것부터 순차적으로, 중복 없이 그누보드 게시판에 등록할 수 있습니다.
.composer / vendor / google api 등 설치 필수 / PHP 7.* 와 8.* 함수명 상이하므로 버전에 맞추어 설치

1) 기본 설정
   - 그누보드 공통 파일 include
   - Google API 클라이언트 라이브러리 사용
   - YouTube 채널 ID, API 키, 게시판 테이블명 설정
   - 2020년 이후 게시물만 수집하도록 설정

2) 데이터 수집
   - YouTube API를 통해 채널의 업로드된 동영상 목록 가져오기
   - 페이지네이션을 통해 최대 100개의 동영상 정보 수집
   - 각 동영상의 제목, 설명, URL, 게시일 등의 정보 저장
   - 영상 대표이지미(썸네일) 이미지파일 및 경로 db 저장 후 썸네일 생성
   - 310 x 175 권장 (가로 3행 시)

3) 데이터 정리 및 필터링
   - 수집된 모든 동영상을 게시일 기준으로 오래된 순 정렬
   - 이미 등록된 게시물 제외 (중복 체크)
   - 정렬된 목록에서 가장 오래된 것부터 10개만 선택

4) 게시물 등록
   - 그누보드 게시판에 선택된 10개의 동영상 정보 등록
   - 각 게시물에 대한 고유 번호(wr_num) 자동 할당
   - 게시물 부모-자식 관계 설정(wr_parent)
   - wr_option HTML 옵션 적용
   - wr_hit 임의값 1 부여

5). 에러 처리
   - YouTube API 관련 오류 처리
   - 일반적인 예외 상황 처리

6) 캐시 시스템 추가:
   - get_cache() 와 set_cache() 함수 구현
   - g5_cache 테이블 사용 (아래 SQL로 생성 필요)

7) 비디오 정보 일괄 처리:
   - process_videos_batch() 함수로 50개씩 배치 처리
   - API 호출 횟수 최소화
   - 결과 캐싱으로 반복 요청 방지
   - 쇼츠 영상 제외

8) 성능 최적화:
   - API 호출 최소화
   - 캐시를 통한 응답 시간 개선
   - 배치 처리로 효율성 향상
   - 캐시 테이블 생성을 위한 SQL:
     CREATE TABLE IF NOT EXISTS g5_cache (
         cache_key VARCHAR(255) NOT NULL PRIMARY KEY,
         cache_value LONGTEXT NOT NULL,
         expire_date DATETIME NOT NULL,
         created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
         INDEX (expire_date)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

9) 기타 기능 및 에러 해결
    - 해시태그 등록 시 rb_tag 테이블에도 등록되도록 코드 추가
    - 해시태그 자동등록 시 키워드 추가 등록 (Table : rb_tag) -> write.update.skin.php 추가코드 확인
    - 해시태그 관련 - 프롬프트에 띄어씌 안되고 명사여야 하고 - 이런 특수기호 안되고... 단어만 가져올 것.
    - 게시물번호 - (마이너스) 발생 -> 게시물수 +1 -> Table : g5_board -> bo_write_count +1 증가 되도록 코드 추가
    - 새글에도 업데이트 (Table : rebuilder_board_new) -> 최초수집이다 보니 예전글을 가져와서 등록일자가 원문글의 등록일자를 그대로 사용 해서, 안 보이는 것으로 착각 함

-------------------------------------------------------------------------------------------------------------------------------------------------

00. SNS 내용 가져오기 ***************

-------------------------------------------------------------------------------------------------------------------------------------------------

   - 준비중 / 전문 읽어오기 기능 : - 부분 공개된 피드에 대해 원문 링크를 읽어와 분석 후 전체 내용을 저장
   - 준비중 / 구글 번역 기능 : - 드를 읽어와 구글 번역기를 이용해 번역후 설정된 게시판에 저장
   - 준비중 /  크론 기능 지원 : - 마지막으로 실행한 시간을 파일이나 데이터베이스에 저장하여, 이후 실행 시 해당 시간 이후의 새로운 동영상만 가져올 수 있도록 설정
   - 최종기능... $rss_url  다수 활용, 사이트 주소 다수 입력 후 가져오기 등 >>> 플러그인 화

   - 자동댓글, 해시태그 추출 끝나면 >>>>> 게시판별로 게시물 한 방에 땡겨오기(날짜 예전부터 한 것처럼)
   - 애드센스 신청

********************************

    0 0
    공유 더보기
    페이스북으로 공유 트위터로 공유 카카오톡으로 공유 공유링크 공유
소개 공유하고, 소통하다

빌런은 디스코드, 인스타그램, 페이스북, 카카오톡, 텔레그램 등 다양한 메신저에서 발생하는 범죄, 사기, 보이스피싱, 스캠과 함께 중고 거래, 데이트 폭력, 학교 폭력, 술집 진상, 게임 사기꾼, 나쁜 회사 상사, 일상 속 매너 없는 사람들에 대한 정보를 공유하는 플랫폼입니다. ... 자세히보기


또한, 한국 아이돌, 배우, 해외 유명인, 스포츠 스타, 인플루언서에 대한 팬클럽 게시판도 운영하여, 좋아하는 스타와 소통할 수 있는 공간을 제공합니다. 안전한 커뮤니티에서 우리의 경험을 나누고, 더 나은 사회를 만들어 갑시다. ... 접기

저작권 저작권 저작권 주의사항.

본 사이트의 모든 게시물과 그에 포함된 텍스트, 이미지, 동영상 등 모든 콘텐츠는 본 사이트에서 독자적으로 편집 및 표현 방식을 수정하여 완성된 창작물입니다. 저작권법 및 관련 법령에 따라 보호를 받습니다. 따라서, 본 정보는 사이트 운영자의 명시적인 서면 동의 없이 무단으로 전재, 복사, 배포, 재가공, 또는 어떠한 형태로든 상업적/비상업적으로 활용될 수 없습니다. ... 자세히보기


또한, 게재된 정보는 개인적인 열람 및 참고 이외의 어떠한 용도로도 사용할 수 없습니다. 이를 위반할 경우 관련 법률에 의거하여 민·형사상의 책임을 질 수 있습니다.


본 사이트는 등록자가 게재한 자료의 내용에 대한 정확성, 완전성, 신뢰성을 보증하지 않으며, 해당 정보의 오류나 누락에 대해 어떠한 책임도 지지 않습니다. 또한, 사용자가 본 정보를 신뢰하여 취한 직간접적인 모든 조치나 결과에 대해서도 책임을 부담하지 않습니다. 정보 사용에 따른 모든 위험은 사용자 본인에게 있습니다. ... 접기

    댓글목록

    profile_image
    관리자미니홈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물  5일 전 2025-06-01 12:25

    현재 댓글 생성 서비스를 이용할 수 없습니다.

    여기에 답글