|
|
| 1번째 줄: |
1번째 줄: |
| {{인용문|next는 라이믹스 2.0 버전에 들어갈 '''다소 과격한 변경사항들'''을 미리 테스트하는 곳입니다.
| | == 개요 == |
| | '''Next 라이믹스'''는 [[라이믹스]] 2.0 정식화 이전에 큰 변경을 시험하던 <code>next</code> 브랜치에 관한 역사적 문서이다. '''현재의 최신 정식 버전이나 권장 설치 브랜치를 뜻하지 않는다.''' 라이믹스 2.0.0은 2020년 12월 18일 정식 공개되었다.<ref name="v200">[https://rhymix.org/news/132 2.0.0 공식 배포 공지]</ref> |
|
| |
|
| '''모험심이 강하신 분은 next를 써보셔도 되지만''', 이번 여름까지는 웬만하면 develop에 머무시기를 권합니다.^^|깃허브 기진곰님 답변 중}}
| | 2026년 10월 17일 기준 정식 배포는 [[라이믹스/릴리즈 노트/2.1.38|2.1.38]]이다. 현재 설치와 업데이트는 [[라이믹스/설치]], [[라이믹스/매뉴얼/라이믹스 업데이트]]와 [https://rhymix.org/ 공식 배포 안내]를 따른다. 개발 계획은 [https://rhymix.org/roadmap 공식 로드맵]에서 확인한다. |
|
| |
|
| [https://github.com/rhymix/rhymix/tree/next 라이믹스 next 브랜치]
| | == 2.0 개발 과정의 주요 변경 == |
| | next에서 시험되었던 기능 중 라우터, 모바일 푸시, PDO 기반 DB 처리는 2.0 정식 공지에 포함되어 있다. 현재 사용법은 다음 문서로 이어진다. |
|
| |
|
| 라이믹스 2.0의 전신격인 Next 브랜치(여기서는 Next 라이믹스라 칭한다.)에 대해 다양한 내용들을 적는 문서입니다. | | {| class="wikitable" |
| | ! 당시 개발 내용 !! 현재 참고할 문서 |
| | |- |
| | | 짧은주소와 모듈별 라우팅 || [[라이믹스/라우터]] · [[라이믹스/매뉴얼/nginx 설정 방법]] |
| | |- |
| | | 모바일 앱 푸시와 기기 등록 || [[라이믹스/매뉴얼/모바일 앱 푸시 연동하기]] |
| | |- |
| | | PDO·XML 쿼리·외부 DB 연동 || [[라이믹스/매뉴얼/라이믹스 프레임워크]] · [[라이믹스/매뉴얼/DB 쿼리 operator]] |
| | |- |
| | | 알림·메일과 비동기 작업 || [[라이믹스/매뉴얼/Crontab 설정 방법]] |
| | |- |
| | | 레이아웃·스킨과 색상 연동 || [[라이믹스/매뉴얼/테마 제작]] · [[라이믹스/매뉴얼/네모의 꿈 레이아웃 주제 색상]] |
| | |} |
|
| |
|
| ==패치 방향==
| | 2.0에서는 PHP·서버 설정과 서드파티 호환성도 바뀌었다. 과거의 mysqli 전용 설명이나 <code>db.config.php</code> 직접 include 예시는 현재 개발 안내로 사용하지 않는다.<ref name="v200" /> [[라이믹스/XE와의 차이점]] 참고. |
| 과격한 패치와 함께 오류 발생시 복구(롤백)하는 것이 아닌, 추가 패치를 통해 해결하는 것을 목표로 하고 있다.
| |
| 따라서 기존 라이믹스보다 많이 불안정하다.<ref>개발 버전인 [https://github.com/rhymix/rhymix/tree/develop develop 브랜치]보다도 더욱 불안정 하기 때문에 실서비스를 하는 경우, '''절대로 사용하면 안된다.'''</ref>
| |
|
| |
|
| ==추가될 기능들== | | == 과거 시험 결과와 현재 상태의 구분 == |
| 라이믹스 2.0에 추가될 기능들이다. | | 이 문서의 이전 판에는 2020년 6월 13~14일 시험에서 발생한 <code>__clone method called on non-object</code>, <code>_getContent method is not exists</code> 등의 오류 기록이 있었다. 이는 당시 개발 브랜치의 관찰 결과이며, 현재 정식 버전의 재현 가능한 버그 목록은 아니다. 현행 문제는 [[라이믹스/버그]]의 절차에 따라 버전·환경·재현 단계를 기록한다. |
|
| |
|
| * [[#짧은 주소 개선(라우터 기능)|짧은 주소 개선(라우터 기능)]]
| | 쿠키·인증 설정도 당시 실험 설명을 그대로 적용해서는 안 된다. SameSite를 일괄적으로 None으로 바꾸기보다 외부 로그인·결제 흐름과 HTTPS 등 해당 서비스의 요구 사항을 확인하고 시험한다. [[라이믹스/보안]]과 [[라이믹스/매뉴얼/확장 기능 보안 점검]]을 참고한다. |
| * [[#모바일 푸시알림 지원|모바일 푸시알림 지원]]
| |
| * [[#DB 연동 기능 강화|DB 연동 기능 강화]]
| |
| * [[#테마 도입|테마 도입]]
| |
| * [[#게시판 기능 강화|게시판 기능 강화]]
| |
| * [[#알림센터 기능 강화|알림센터 기능 강화]]
| |
|
| |
|
| ===모바일 푸시 기능=== | | == 비공식 기념 이미지 == |
| [[Firebase Cloud Messaging|FCM]]과 [[Apple Push Notification Service|APNs]]을 이용해 알림을 모바일 기기에서 받을 수 있도록 하는 기능.
| | 다음은 2.0 개발 당시 사용자 제작 이미지이며 공식 BI와 구분한다. |
|
| |
|
| 처음에 다음과 같은 요소를 서버로 보낸다.
| | [[파일:라이믹스_2.0_로고_비공식_이니셜.jpg]] |
| * user_id : 아이디
| |
| * password : 비밀번호
| |
| * device_token : 기기 고유 값
| |
| * device_model : 기기 모델명
| |
| | |
| 그러면 서버에서는 아래의 값을 JSON 형식으로 응답한다.
| |
| * member_srl : 사용자 고유번호<ref>RXE에서는 사용자별로 고유 번호가 존재한다.</ref>
| |
| * user_id : 아이디
| |
| * user_name : 유저명
| |
| * nick_name : 닉네임
| |
| * device_key : 기기 값(기기에 해당 값을 가지고 있다가 id와 비밀번호 대신에 해당 값을 사용하여 로그인한다.)<ref>기기에 비밀번호를 저장하지 않는다.</ref>
| |
| | |
| FCM이나 APNs의 API값 등을 입력한다.
| |
| | |
| ====알림센터 기능 강화====
| |
| 알림센터에서 설정한 알림만 전송된다.
| |
| 기존에 알림센터에서 일부 알림만 원하는 경우 설정했던 것 처럼, 알림도 동일하게 설정이 가능하다.
| |
| | |
| [https://github.com/rhymix/rhymix/pull/1325 모바일 푸시 기능 추가 - lcy7747님]
| |
| | |
| | |
| ===짧은 주소 개선(라우터 기능)===
| |
| 더 자세한 내용은 [[라이믹스/라우터]] 문서를 확인하시기 바랍니다.
| |
| | |
| [[라이믹스]]와 [[XpressEngine|XE]]는 짧은 주소를 사용 할 수 있다.
| |
| 예를 들어 '''<nowiki>https://example.com/note/213</nowiki>'''과 같이 짧게 표현이 가능하다.<ref>해당 주소는 <nowiki>https://example.com/index.php?mid=note&document_srl=213</nowiki>를 줄인 것이다.</ref>
| |
| | |
| 하지만 게시판 설정이나 게시글 작성시 주소 뒤에 '''<nowiki>&act=dispBoardWrite</nowiki>와 같은 act가 붙게 된다. 이때 act가 붙는 경우, 짧은 주소를 사용 할 수 없다. 그래서 '''<nowiki>https://example.com/index.php?mid=note&act=dispBoardWrite</nowiki>'''로 접속해야 글쓰기가 가능해진다.
| |
| | |
| 하지만 라우터 기능을 통해 글쓰기 페이지 등에서도 짧은 주소의 사용이 가능해진다. 예를 들어 '''<nowiki>https://example.com/note/213/edit</nowiki>'''나, '''<nowiki>https://example.com/@아이디</nowiki>''' 이런 형태도 사용이 가능해진다.
| |
| | |
| 또한 SEO에 영향을 주지 않도록, 긴 주소로 접속시 짧은 주소로 리다이렉트 될 수 있게 된다.
| |
| | |
| [https://github.com/rhymix/rhymix/pull/1322 라우터(Router) 기능 추가 - 기진곰님]
| |
| | |
| ===썸네일 화질 설정===
| |
| 썸네일 생성시 화질을 설정 할 수 있다.
| |
| 기본값은 75%이며, 50%부터 100%까지 5% 단위로 설정 할 수 있다.
| |
| | |
| 기존에는 썸네일 생성시 화질이 조절되지 않았지만, 이제는 화질을 설정 할 수 있다.
| |
| | |
| ===DB 연동 기능 강화===
| |
| {{인용문|라이믹스 역사상 최대 규모의 PR인 것으로 추정됩니다. ㅎㅎ|PR 내용 중 기진곰님 내용 중}}
| |
| 현재 mysqli<ref>라이믹스는 mysqli 방식만 지원한다.</ref> 방식으로 DB에 접속한다.
| |
| 이러한 상황에서 mysqli 방식에서 [[PHP Data Object|PDO]] 방식으로 변경한다.
| |
| | |
| 또한 XML 스키마, 쿼리 해석 엔진 구현을 통해 다양한 기능들도 지원한다.
| |
| 그리고 XML을 사용하지 않더라도 커스텀 쿼리를 실행 할 수 있게 된다.
| |
| | |
| 마지막으로 '''라이믹스가 설치된 DB 이외의 DB에 임의 접근 후 쿼리 실행이 가능'''해진다.
| |
| | |
| ====장점====
| |
| =====진입장벽 하락=====
| |
| 대부분의 프레임워크들도 PDO 방식으로 DB에 접속하기 때문에, 진입장벽이 낮아진다.
| |
| Prepared Statement 등의 기능을 쉽게 사용 할 수 있으며, 데이터를 하나 하나씩 로드 후 처리 할 수 있게된다.
| |
| | |
| =====PHP 캐시 저장 불필요=====
| |
| XML 스키마, 쿼리 해석 엔진을 구현함으로써 코어에서 설정된 캐시 방법대로 캐시를 할 수 있게된다.
| |
| | |
| =====커스텀 쿼리 실행=====
| |
| 커스텀 쿼리 실행시 테이블 명 앞에 접두사<ref>'''rx_''' 같은 것들</ref> 를 자동으로 붙힘으로써 개발이 용이해진다.
| |
| 또한 디버그에서 커스텀 쿼리를 실행 기록을 볼 수 있게된다.
| |
| | |
| =====타 DB 접근 후 쿼리 실행=====
| |
| 기존에는 라이믹스가 설치된 DB에서만 쿼리를 실행 할 수 있었기 때문에 연동 같은 기능들은 따로 설정해 주어야 했지만, 이제는 라이믹스 내에서 처리가 가능해진다.
| |
| | |
| ===알림 설정===
| |
| ====이메일 전송 방식 경고 메세지====
| |
| <nowiki>PHP mail()</nowiki> 방식을 선택시 아래의 경고 메세지가 뜬다.
| |
| {{인용문|PHP에 내장된 mail() 함수를 사용합니다. 발송 성공률이 매우 낮습니다.<br>
| |
| {{글씨 색|red|이 옵션은 추후 지원되지 않을 수 있으니, 가능하면 다른 방식을 선택하시기 바랍니다.}}}}
| |
| | |
| <nowiki>PHP mail()</nowiki> 방식 보다는 메일 전송 서비스 api를 권장한다.
| |
| | |
| ===보안 설정===
| |
| ====SameSite 쿠키====
| |
| 다른 도메인끼리 쿠키를 전송 할 수 있도록 SameSite 쿠키를 설정 할 수 있다. 크롬 버전 80 이전에는 기본값이 None이었으나, 버전 80 이후부터는 기본값이 Lax로 변경됨에 따라 속성을 설정하지 않은 경우, 속성이 자동으로 Lax로 부여된다.
| |
| | |
| Lax나 Strict를 사용하는 경우, 결제 모듈 등 서드파티 사용시 문제가 발생 할 수 있다. 그렇기 때문에 None으로 설정해야 한다.
| |
| | |
| 라이믹스에서도 SameSite 쿠키를 설정 할 수 있으며, 기본값인 '''표기하지 않음'''을 설정하는 경우, 크롬 버전 80 이상부터는 Lax 취급을 한다.
| |
| | |
| 물론 서버단(Apache2/Nginx)에서 설정이 가능하지만, 복잡하고 웹호스팅 사용시 설정이 불가능하기 때문에 라이믹스에서 설정 할 수 있도록 추가되었다.
| |
| | |
| | |
| ==버그들==
| |
| 과격한 패치들이 있기 때문에 버그들이 창궐하고 있다.
| |
| | |
| ===게시판 일부 기능 사용 불가 버그===
| |
| {{테스트일|{{날짜|2020-06-13}}}}
| |
| | |
| 게시판 설정 중 '''추가 설정''' 메뉴(/index.php?mid=bugs&act=dispBoardAdminBoardAdditionSetup), '''게시글 작성 페이지'''(/index.php?mid=bugs&act=dispBoardWrite) 접속시 아래의 오류가 뜬다.
| |
| | |
| {{인용문|서버 오류<br>
| |
| Error #0 "__clone method called on non-object" in modules/file/file.model.php on line 283<br>
| |
| common/framework/debug.php:663}}
| |
| | |
| 디버그 내용 중 오류 내용은 아래와 같다.
| |
| {{인용문|01. Warning: Creating default object from empty value<br>
| |
| | |
| modules/communication/communication.model.php:32<br>
| |
| modules/communication/communication.controller.php:858<br>
| |
| classes/module/ModuleHandler.class.php:1266<br>
| |
| classes/module/ModuleHandler.class.php:134<br>
| |
| index.php:51<br>
| |
| | |
| 02. Warning: Creating default object from empty value<br>
| |
| | |
| modules/communication/communication.model.php:32<br>
| |
| modules/communication/communication.controller.php:858<br>
| |
| classes/module/ModuleHandler.class.php:1266<br>
| |
| classes/module/ModuleHandler.class.php:134<br>
| |
| classes/context/Context.class.php:1566<br>
| |
| common/framework/debug.php:663<br>
| |
| common/framework/debug.php:542}}
| |
| | |
| | |
| ===메인 페이지 접속시 오류 발생===
| |
| {{테스트일|{{날짜|2020-06-14}}}}
| |
| | |
| 메인 페이지 접속시 다음과 같은 오류가 발생한다.
| |
| {{인용문|_getContent method is not exists
| |
| modules/page/page.view.php:56}}
| |
| | |
| 디버그 오류 창에서는 위의 오류와 함께 아래의 오류가 나온다.
| |
| | |
| {{인용문|02. Warning: count(): Parameter must be an array or an object that implements Countable<br/>
| |
| widgets/content/content.class.php:206
| |
| widgets/content/content.class.php:123
| |
| modules/widget/widget.controller.php:390<br/>
| |
| modules/widget/widget.controller.php:471<br/>
| |
| modules/widget/widget.controller.php:288<br/>
| |
| modules/widget/widget.controller.php:266<br/>
| |
| modules/widget/widget.controller.php:250<br/>
| |
| classes/module/ModuleHandler.class.php:1266<br/>
| |
| classes/display/DisplayHandler.class.php:80<br/>
| |
| classes/module/ModuleHandler.class.php:1180<br/>
| |
| index.php:52}}
| |
| | |
| ==여담==
| |
| 라이믹스 2.0 기념 로고가 있다. 물론 공식 로고는 아니고 유저가 만든 로고이다.
| |
| | |
| [[파일:라이믹스_2.0_로고_비공식_이니셜.jpg]]<br><br> | |
| [[파일:라이믹스_2.0_로고_비공식_full.jpg]] | | [[파일:라이믹스_2.0_로고_비공식_full.jpg]] |
|
| |
|
| ==각주== | | == 출처 == |
| | <references /> |
| | * [https://github.com/rhymix/rhymix/pull/1322 라우터 도입 개발 기록] |
| | * [https://github.com/rhymix/rhymix/pull/1325 모바일 푸시 도입 개발 기록] |
| | {{라이믹스 매뉴얼}} |
| | [[분류:라이믹스/버전|Next]] |