자주자주 공지를 확인하세요!

라이믹스/Next 라이믹스: 두 판 사이의 차이

Gaon12 (토론 / 기여)
m →짧은 주소 개선(라우터 기능): 자세한 내용은 별도의 문서 확인
Gaon12 (토론 / 기여)
Next를 2.0 개발 역사로 정리, 현행 기능·정식 배포 안내 연결과 구형 설정 정정
 
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]]

2026년 10월 17일 (토) 21:04 기준 최신판

개요[편집 / 원본 편집]

Next 라이믹스는 라이믹스 2.0 정식화 이전에 큰 변경을 시험하던 next 브랜치에 관한 역사적 문서이다. 현재의 최신 정식 버전이나 권장 설치 브랜치를 뜻하지 않는다. 라이믹스 2.0.0은 2020년 12월 18일 정식 공개되었다.[1]

2026년 10월 17일 기준 정식 배포는 2.1.38이다. 현재 설치와 업데이트는 라이믹스/설치, 라이믹스/매뉴얼/라이믹스 업데이트와 공식 배포 안내를 따른다. 개발 계획은 공식 로드맵에서 확인한다.

2.0 개발 과정의 주요 변경[편집 / 원본 편집]

next에서 시험되었던 기능 중 라우터, 모바일 푸시, PDO 기반 DB 처리는 2.0 정식 공지에 포함되어 있다. 현재 사용법은 다음 문서로 이어진다.

당시 개발 내용 현재 참고할 문서
짧은주소와 모듈별 라우팅 라이믹스/라우터 · 라이믹스/매뉴얼/nginx 설정 방법
모바일 앱 푸시와 기기 등록 라이믹스/매뉴얼/모바일 앱 푸시 연동하기
PDO·XML 쿼리·외부 DB 연동 라이믹스/매뉴얼/라이믹스 프레임워크 · 라이믹스/매뉴얼/DB 쿼리 operator
알림·메일과 비동기 작업 라이믹스/매뉴얼/Crontab 설정 방법
레이아웃·스킨과 색상 연동 라이믹스/매뉴얼/테마 제작 · 라이믹스/매뉴얼/네모의 꿈 레이아웃 주제 색상

2.0에서는 PHP·서버 설정과 서드파티 호환성도 바뀌었다. 과거의 mysqli 전용 설명이나 db.config.php 직접 include 예시는 현재 개발 안내로 사용하지 않는다.[1] 라이믹스/XE와의 차이점 참고.

과거 시험 결과와 현재 상태의 구분[편집 / 원본 편집]

이 문서의 이전 판에는 2020년 6월 13~14일 시험에서 발생한 __clone method called on non-object, _getContent method is not exists 등의 오류 기록이 있었다. 이는 당시 개발 브랜치의 관찰 결과이며, 현재 정식 버전의 재현 가능한 버그 목록은 아니다. 현행 문제는 라이믹스/버그의 절차에 따라 버전·환경·재현 단계를 기록한다.

쿠키·인증 설정도 당시 실험 설명을 그대로 적용해서는 안 된다. SameSite를 일괄적으로 None으로 바꾸기보다 외부 로그인·결제 흐름과 HTTPS 등 해당 서비스의 요구 사항을 확인하고 시험한다. 라이믹스/보안과 라이믹스/매뉴얼/확장 기능 보안 점검을 참고한다.

비공식 기념 이미지[편집 / 원본 편집]

다음은 2.0 개발 당시 사용자 제작 이미지이며 공식 BI와 구분한다.

출처[편집 / 원본 편집]

최근 바뀜

더 보기