
개선/제안
자동화 기능
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 다수 활용, 사이트 주소 다수 입력 후 가져오기 등 >>> 플러그인 화
- 자동댓글, 해시태그 추출 끝나면 >>>>> 게시판별로 게시물 한 방에 땡겨오기(날짜 예전부터 한 것처럼)
- 애드센스 신청
********************************
- 이전글AI 글 내용 자동 작성 (글 요약 또는 강조 부분에 활용 하면 좋을 듯) : https://rebuilder.co.kr/userdata/325?page=22025.06.05
- 다음글프로그램2025.05.30
빌런은 디스코드, 인스타그램, 페이스북, 카카오톡, 텔레그램 등 다양한 메신저에서 발생하는 범죄, 사기, 보이스피싱, 스캠과 함께 중고 거래, 데이트 폭력, 학교 폭력, 술집 진상, 게임 사기꾼, 나쁜 회사 상사, 일상 속 매너 없는 사람들에 대한 정보를 공유하는 플랫폼입니다. ... 자세히보기
또한, 한국 아이돌, 배우, 해외 유명인, 스포츠 스타, 인플루언서에 대한 팬클럽 게시판도 운영하여, 좋아하는 스타와 소통할 수 있는 공간을 제공합니다. 안전한 커뮤니티에서 우리의 경험을 나누고, 더 나은 사회를 만들어 갑시다. ... 접기
본 사이트의 모든 게시물과 그에 포함된 텍스트, 이미지, 동영상 등 모든 콘텐츠는 본 사이트에서 독자적으로 편집 및 표현 방식을 수정하여 완성된 창작물입니다. 저작권법 및 관련 법령에 따라 보호를 받습니다. 따라서, 본 정보는 사이트 운영자의 명시적인 서면 동의 없이 무단으로 전재, 복사, 배포, 재가공, 또는 어떠한 형태로든 상업적/비상업적으로 활용될 수 없습니다. ... 자세히보기
또한, 게재된 정보는 개인적인 열람 및 참고 이외의 어떠한 용도로도 사용할 수 없습니다. 이를 위반할 경우 관련 법률에 의거하여 민·형사상의 책임을 질 수 있습니다.
본 사이트는 등록자가 게재한 자료의 내용에 대한 정확성, 완전성, 신뢰성을 보증하지 않으며, 해당 정보의 오류나 누락에 대해 어떠한 책임도 지지 않습니다. 또한, 사용자가 본 정보를 신뢰하여 취한 직간접적인 모든 조치나 결과에 대해서도 책임을 부담하지 않습니다. 정보 사용에 따른 모든 위험은 사용자 본인에게 있습니다. ... 접기
댓글목록

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