Rhymix 2.0.0 Release Notes
릴리즈 라이믹스 2020.12.18 23:30 조회 2,003
XE 1.8 버전을 가지치기(fork)하여 라이믹스 프로젝트를 시작한 지 정확히 5년이 되는 날입니다.
오랫동안 준비해 온 라이믹스 2.0.0 정식버전에 드디어 master 딱지를 붙입니다.
라이믹스 개발팀: @bjrambo @conory @kijin @misol
외부 기여자: @bnu @ForPeople @largeden @Lastorder-DC @lcy7747 @nemo9l
지난 7개월간 코어 개발팀 4명과 외부 기여자 6명이 깃허브 커밋 히스토리에 흔적을 남겼습니다. 그 밖에도 2개월여의 베타테스트 기간 동안 수십 건의 버그 신고를 해주신 분들이 있고, 코드상에 흔적이 남지는 않았어도 많은 조언이나 시간적, 금전적 지원을 해주신 분들이 있습니다. 이 자리를 빌려 감사의 말씀을 전합니다.
메이저 업데이트이므로 1.x 버전에서 업데이트하실 분은 호환성 관련된 부분을 필히 숙지하시기 바랍니다. 정식버전 릴리즈 초기에 많은 버그가 발견되고 또 수정될 것으로 보입니다. 특히 PHP 8.0 지원은 아직 완전하지 않은 점 유의하시기 바랍니다.
새로운 기능
1. 짧은주소 대폭 개선 (#1322)
- 글쓰기, 댓글 수정 등 대부분의 화면에 짧은주소가 적용됩니다.
- 서드파티 모듈에서도 각자 쓰고 싶은 짧은주소 형식을 직접 지정할 수 있습니다.
2. 모바일 푸시알림 지원 (#1325)
- 알림센터에 구글 FCM을 연동하여 댓글알림, 쪽지알림 등을 모바일 푸시로 발송할 수 있게 되었습니다.
- 푸시알림을 받을 모바일 기기를 등록하고 관리할 수 있습니다.
- 알림을 수신하는 앱은 각 사이트의 필요에 따라 직접 개발하여야 합니다.
- 연동하는 API 매뉴얼은 추후 공개됩니다.
3. DB 연동 기능 대폭 강화 (#1332)
- 더 다양한 XML 스키마/쿼리 문법을 지원합니다. 기존의 XML 스키마/쿼리도 모두 그대로 사용할 수 있습니다.
- XML을 사용하지 않아도 쉽고 안전하게 커스텀 쿼리를 실행할 수 있도록 지원합니다.
- 외부 DB에서 데이터를 불러오거나, 대량의 데이터를 배열에 담지 않고 순차적으로 처리하는 방식도 지원합니다.
- 다른 프레임워크들과 동일한 PDO 기반이므로, 개발자들의 진입 장벽이 낮아질 것으로 보입니다.
4. 게시판 기능 강화 (#1445)
- 전체공지, 통합게시판 등 사용 빈도가 높은 기능 몇 가지가 기본 탑재됩니다.
- 검색어의 순서를 바꾸어도 검색이 가능하며, 검색어 앞에 "-"를 붙여 금칙어 처리할 수 있습니다.
5. 기타 (사용자 위주)
- SEO 설정에서 트위터 메타 태그를 기본 지원합니다.
- 문서 및 댓글에 파일을 첨부하거나 첨부파일을 삭제할 경우 포인트 부여 및 회수 처리가 더 정확하게 이루어집니다. (#1341)
- 국제전화번호, 국가, 언어, 시간대 등을 확장변수로 받을 수 있습니다. (#1475)
- 알림센터 유저 설정을 세분화하여, 메일/SMS/푸시알림 등을 받을지 말지 선택할 수 있습니다. (#994, #1493)
- CSS 파일 압축시 너무 큰 이미지를 data: URL로 import하지 않도록 변경했습니다.
- 코어 또는 CKEditor를 업데이트하면 플러그인 로딩에 사용하는 timestamp 파라미터를 일괄 변경하여 캐싱으로 인한 오류 발생의 가능성을 줄였습니다.
- 비밀번호 찾기 기능을 사용하여 인증 성공시 로그인 횟수 제한으로 인한 IP 차단을 해제합니다. (#1429)
- 코어에 포함된 모듈, 애드온, 위젯 등은 버전을 별도로 표기하지 않습니다.
- 더 많은 업체의 API를 사용하여 SMS를 발송할 수 있습니다.
6. 기타 (개발자 위주)
- 썸네일 생성시 트리거를 제공하여, 동영상이나 외부 멀티미디어 리소스와 관련된 썸네일 생성을 서드파티 자료가 맡을 수 있습니다.
- 특정 문서나 댓글과 관련된 캐시를 일괄적으로 비울 수 있는 메소드를 제공합니다.
- 다크모드 감지 및 상태 공유를 위한 rx_color_scheme 쿠키 스펙을 도입하였습니다. (#1482)
- Rhymix\Framework\Cache 클래스에서 직접 incr/decr 함수를 지원합니다.
- PHP 8.0 호환성이 개선되었습니다.
버그 수정
라이믹스 1.x ~ 2.0.0 사이에 수정된 버그들은 일일이 나열하지 않겠습니다.
업데이트시 주의가 필요한 부분
1. 서버 환경 관련
- 서버에 PDO 확장모듈이 설치되어 있어야 합니다. mysqli 함수는 더이상 사용하지 않습니다. 라라벨, 코드이그나이터 등 대부분의 프레임워크가 PDO를 기본으로 사용하기 때문에, 절대 다수의 국내외 웹호스팅 업체들은 PDO를 이미 지원합니다. PDO가 별도의 패키지로 분리되어 있는 CentOS 사용자분들만 조심하시면 됩니다.
- nginx 사용자의 경우, 개선된 짧은주소를 사용하려면 rewrite 규칙을 업데이트해야 합니다. 아파치에서는 .htaccess 파일만 제대로 들어 있으면 자동 적용되므로 크게 신경쓰지 않아도 됩니다.
- SSL "선택적 사용" 옵션은 더이상 지원되지 않습니다. "선택적 사용"으로 설정되어 있던 사이트는 "항상 사용" 또는 "사용하지 않음"을 선택해야 합니다. 선택적으로라도 SSL을 사용해 왔다면 당연히 SSL 사용이 가능한 서버이고 인증서도 이미 구해 놓으셨다는 뜻일 테니, 가능하면 "항상 사용"으로 전환하시기를 권장합니다.
- 신규 설치시 DB root 아이디를 사용할 수 없습니다.
2. 서드파티 모듈 사용 및 개발 관련
- module extend 기능을 사용하는 서드파티 모듈은 작동이 중지됩니다.
- 서드파티 모듈에서 독립적으로 작동할 수 있어야 하는 action임에도 불구하고 standalone="false"라고 선언한 경우, 접근이 불가능합니다.
- files/config/db.config.php 파일을 직접 인클루드하여 사용하는 외부 페이지는 더이상 작동하지 않습니다.
- 환경에 따라 오락가락하던 CSS, JS 로딩 순서를 일관성있게 정리했습니다. common → layouts → modules → widgets → addons 순서로 로딩되며, 각 카테고리 안에서는 index값을 사용하여 로딩 순서를 조정할 수 있으나 카테고리를 넘나드는 순서 조정은 허용되지 않습니다.
3. 업데이트 관련
- XE 1.8 미만 버전에서 라이믹스 2.0으로 직접 업데이트하는 것을 공식적으로 지원하지 않습니다. XE 1.8 미만 사용자는 우선 XE 1.8 이상 버전으로 업데이트하고 대시보드에서 모듈 업데이트를 모두 클릭한 후에 라이믹스를 덮어씌워야 합니다.
- 그동안 유지보수가 원활하지 않았던 simple_world, rx_prn 등의 레이아웃 및 스킨은 외부 저장소로 옮겨졌습니다. git으로 업데이트하면 해당 레이아웃 또는 스킨 폴더가 사라질 수 있으니 외부 저장소에서 다시 다운로드하시기 바랍니다.
- 그동안 코어에 포함되어 있었던 recaptcha 애드온이 같은 이름의 서드파티 자료와 충돌한다는 지적이 있어서, recaptcha 애드온을 코어에서 제거하고 동일한 기능을 spamfilter 모듈에 추가하였습니다.