게시판 필드 타입을 아무리 크게 변경해도 아이콘(이모지)을 넣었을 때 글이 뚝 잘려버리는 이유는 > Info Tech

본문 바로가기

사이트 내 전체검색

뒤로가기 Info Tech

▒ Info Tech ▒ 네트워크/보안/해킹 ▒ 하드웨어 ▒ 소프트웨어
Information Technology Group
▒ Info Tech ▒ 네트워크/보안/해킹 ▒ 하드웨어 ▒ 소프트웨어

PHP 게시판 필드 타입을 아무리 크게 변경해도 아이콘(이모지)을 넣었을 때 글이 뚝 잘려버리는 이유는

페이지 정보

작성자 최고관리자 작성일 26-07-26 14:22 조회 2 댓글 0

본문

게시판 필드 타입을 아무리 크게 변경해도 아이콘(이모지)을 넣었을 때 글이 뚝 잘려버리는 이유는 그누보드와 데이터베이스(DB)의 문자 저장 방식(Charset) 문제 때문입니다. 즉, 글자 수 한도를 초과한 것이 아니라 데이터를 저장하는 방식의 규격이 맞지 않아 발생한 현상입니다. 
원인을 정확히 이해하고, 게시판에서 아이콘과 긴 글을 모두 완벽하게 사용할 수 있는 해결 방법을 안내해 드리겠습니다.

1. 아이콘이 있으면 왜 글이 잘릴까? (원인)
스마트폰이나 PC에서 입력하는 아이콘은 단순한 그림이 아니라 4바이트(4bytes) 크기의 데이터로 구성된 문자(이를 이모지/Emoji라고 부릅니다)입니다. 
  • 기존 그누보드 설정 ( utf8 ): 한 글자를 최대 3바이트까지만 저장할 수 있습니다.
  • 발생하는 문제: 글을 작성하다가 4바이트짜리 이모지 문자가 등장하면, 데이터베이스는 이를 해석하지 못해 치명적인 오류로 인식합니다. 데이터의 안전을 위해 이모지 문자가 입력된 그 자리부터 뒷부분의 글 전체를 통째로 잘라내고 앞부분만 저장하게 됩니다. 

2. DB 필드 타입 변경만으로 긴 글 쓰기가 가능한가요?
네, 순수한 텍스트(한글, 영어, 숫자 등)만 작성하신다면 지난번에 설정한 DB 필드 타입( MEDIUMTEXT 등)과 이전 답변에서 수정한 php 소스 코드 변경만으로 제한 없이 엄청나게 긴 글을 쓰실 수 있습니다. 다만 4바이트 이모지 아이콘이 포함되는 순간 데이터 규격(Charset) 제한에 다시 걸리게 됩니다.

3. 게시판에 아이콘(이모지)과 긴 글을 모두 사용하려면?
데이터베이스와 그누보드가 4바이트 문자를 인식할 수 있도록 문자셋을 utf8mb4 로 업그레이드해 주어야 합니다. 아래 2가지 작업을 추가로 진행해 주세요. 
① 그누보드 설정 파일 수정 ( config.php )
그누보드 프로그램이 DB와 대화할 때 4바이트 형식으로 소통하도록 명령하는 작업입니다.
  1. FTP로 접속하여 그누보드 최상위 경로에 있는 config.php 파일을 엽니다.
  2. G5_DB_CHARSET 을 검색하여 기존 utf8 설정을 아래와 같이 utf8mb4 로 수정하고 저장합니다.
    php
                         define('G5_DB_CHARSET', 'utf8mb4');
    
                         
    코드를 사용할 때는 주의가 필요합니다.
② phpMyAdmin에서 필드의 데이터 정렬 방식 변경
문제가 발생한 해당 게시판 테이블의 문자 저장 방식을 변경해 줍니다. 
  1. phpMyAdmin에서 해당 게시판 테이블을 선택합니다.
  2. 상단의 [구조(Structure)] 탭으로 이동합니다.
  3. wr_subject (제목)와 wr_content (본문) 필드를 체크한 후 [변경(Change)] 단추를 누릅니다.
  4. 속성 중 데이터 정렬 방식(Collation)을 찾아 기존 utf8_general_ci 에서 utf8mb4_general_ci 또는 utf8mb4_unicode_ci 로 변경하고 저장합니다. 

요약하자면,
필드 타입을 바꾼 것은 글을 담을 '그릇의 크기'를 늘린 것이고, 문자셋( utf8mb4 )을 바꾸는 것은 '그릇에 담을 수 있는 물건의 종류(아이콘)'를 허용해 주는 것입니다. 위 설정을 마치시면 긴 글은 물론, 카카오톡이나 스마트폰에서 쓰는 온갖 화려한 이모지 아이콘을 마음껏 섞어 쓰셔도 글이 절대 잘리지 않고 완벽하게 등록됩니다.

댓글목록 0

등록된 댓글이 없습니다.

Copyright © 소유하신 도메인. All rights reserved.

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

PC 버전으로 보기