라이믹스/Next 라이믹스

-

next는 라이믹스 2.0 버전에 들어갈 다소 과격한 변경사항들을 미리 테스트하는 곳입니다.

모험심이 강하신 분은 next를 써보셔도 되지만, 이번 여름까지는 웬만하면 develop에 머무시기를 권합니다.^^

 
— 깃허브 기진곰님 답변 중

라이믹스 next 브랜치

라이믹스 2.0의 전신격인 Next 브랜치(여기서는 Next 라이믹스라 칭한다.)에 대해 다양한 내용들을 적는 문서입니다.

패치 방향[편집 / 원본 편집]

과격한 패치와 함께 오류 발생시 복구(롤백)하는 것이 아닌, 추가 패치를 통해 해결하는 것을 목표로 하고 있다. 따라서 기존 라이믹스보다 많이 불안정하다.[1]

추가될 기능들[편집 / 원본 편집]

라이믹스 2.0에 추가될 기능들이다.

모바일 푸시 기능[편집 / 원본 편집]

FCMAPNs을 이용해 알림을 모바일 기기에서 받을 수 있도록 하는 기능.

처음에 다음과 같은 요소를 서버로 보낸다.

  • user_id : 아이디
  • password : 비밀번호
  • device_token : 기기 고유 값
  • device_model : 기기 모델명

그러면 서버에서는 아래의 값을 JSON 형식으로 응답한다.

  • member_srl : 사용자 고유번호[2]
  • user_id : 아이디
  • user_name : 유저명
  • nick_name : 닉네임
  • device_key : 기기 값(기기에 해당 값을 가지고 있다가 id와 비밀번호 대신에 해당 값을 사용하여 로그인한다.)[3]

FCM이나 APNs의 API값 등을 입력한다.

알림센터 기능 강화[편집 / 원본 편집]

알림센터에서 설정한 알림만 전송된다. 기존에 알림센터에서 일부 알림만 원하는 경우 설정했던 것 처럼, 알림도 동일하게 설정이 가능하다.

모바일 푸시 기능 추가 - lcy7747님


짧은 주소 개선(라우터 기능)[편집 / 원본 편집]

라이믹스XE는 짧은 주소를 사용 할 수 있다. 예를 들어 https://example.com/note/213과 같이 짧게 표현이 가능하다.[4]

하지만 게시판 설정이나 게시글 작성시 주소 뒤에 &act=dispBoardWrite와 같은 act가 붙게 된다. 이때 act가 붙는 경우, 짧은 주소를 사용 할 수 없다. 그래서 https://example.com/index.php?mid=note&act=dispBoardWrite로 접속해야 글쓰기가 가능해진다.

하지만 라우터 기능을 통해 글쓰기 페이지 등에서도 짧은 주소의 사용이 가능해진다. 예를 들어 https://example.com/note/213/edit나, https://example.com/@아이디 이런 형태도 사용이 가능해진다.

또한 SEO에 영향을 주지 않도록, 긴 주소로 접속시 짧은 주소로 리다이렉트 될 수 있게 된다.

라우터(Router) 기능 추가 - 기진곰님

썸네일 화질 설정[편집 / 원본 편집]

썸네일 생성시 화질을 설정 할 수 있다. 기본값은 75%이며, 50%부터 100%까지 5% 단위로 설정 할 수 있다.

기존에는 썸네일 생성시 화질이 조절되지 않았지만, 이제는 화질을 설정 할 수 있다.

DB 연동 기능 강화[편집 / 원본 편집]

-

라이믹스 역사상 최대 규모의 PR인 것으로 추정됩니다. ㅎㅎ

 
— PR 내용 중 기진곰님 내용 중

현재 mysqli[5] 방식으로 DB에 접속한다. 이러한 상황에서 mysqli 방식에서 PDO 방식으로 변경한다.

또한 XML 스키마, 쿼리 해석 엔진 구현을 통해 다양한 기능들도 지원한다. 그리고 XML을 사용하지 않더라도 커스텀 쿼리를 실행 할 수 있게 된다.

마지막으로 라이믹스가 설치된 DB 이외의 DB에 임의 접근 후 쿼리 실행이 가능해진다.

장점[편집 / 원본 편집]

진입장벽 하락[편집 / 원본 편집]

대부분의 프레임워크들도 PDO 방식으로 DB에 접속하기 때문에, 진입장벽이 낮아진다. Prepared Statement 등의 기능을 쉽게 사용 할 수 있으며, 데이터를 하나 하나씩 로드 후 처리 할 수 있게된다.

PHP 캐시 저장 불필요[편집 / 원본 편집]

XML 스키마, 쿼리 해석 엔진을 구현함으로써 코어에서 설정된 캐시 방법대로 캐시를 할 수 있게된다.

커스텀 쿼리 실행[편집 / 원본 편집]

커스텀 쿼리 실행시 테이블 명 앞에 접두사[6] 를 자동으로 붙힘으로써 개발이 용이해진다. 또한 디버그에서 커스텀 쿼리를 실행 기록을 볼 수 있게된다.

타 DB 접근 후 쿼리 실행[편집 / 원본 편집]

기존에는 라이믹스가 설치된 DB에서만 쿼리를 실행 할 수 있었기 때문에 연동 같은 기능들은 따로 설정해 주어야 했지만, 이제는 라이믹스 내에서 처리가 가능해진다.

알림 설정[편집 / 원본 편집]

이메일 전송 방식 경고 메세지[편집 / 원본 편집]

PHP mail() 방식을 선택시 아래의 경고 메세지가 뜬다.

-

PHP에 내장된 mail() 함수를 사용합니다. 발송 성공률이 매우 낮습니다.
이 옵션은 추후 지원되지 않을 수 있으니, 가능하면 다른 방식을 선택하시기 바랍니다.

PHP mail() 방식 보다는 메일 전송 서비스 api를 권장한다.

보안 설정[편집 / 원본 편집]

SameSite 쿠키[편집 / 원본 편집]

다른 도메인끼리 쿠키를 전송 할 수 있도록 SameSite 쿠키를 설정 할 수 있다. 크롬 버전 80 이전에는 기본값이 None이었으나, 버전 80 이후부터는 기본값이 Lax로 변경됨에 따라 속성을 설정하지 않은 경우, 속성이 자동으로 Lax로 부여된다.

Lax나 Strict를 사용하는 경우, 결제 모듈 등 서드파티 사용시 문제가 발생 할 수 있다. 그렇기 때문에 None으로 설정해야 한다.

라이믹스에서도 SameSite 쿠키를 설정 할 수 있으며, 기본값인 표기하지 않음을 설정하는 경우, 크롬 버전 80 이상부터는 Lax 취급을 한다.

물론 서버단(Apache2/Nginx)에서 설정이 가능하지만, 복잡하고 웹호스팅 사용시 설정이 불가능하기 때문에 라이믹스에서 설정 할 수 있도록 추가되었다.


버그들[편집 / 원본 편집]

과격한 패치들이 있기 때문에 버그들이 창궐하고 있다.

게시판 일부 기능 사용 불가 버그[편집 / 원본 편집]

아래의 내용은 2020년 6월 13일에 테스트한 결과입니다.

현재와 결과가 다를 수 있습니다!

게시판 설정 중 추가 설정 메뉴(/index.php?mid=bugs&act=dispBoardAdminBoardAdditionSetup), 게시글 작성 페이지(/index.php?mid=bugs&act=dispBoardWrite) 접속시 아래의 오류가 뜬다.

-

서버 오류
Error #0 "__clone method called on non-object" in modules/file/file.model.php on line 283
common/framework/debug.php:663

디버그 내용 중 오류 내용은 아래와 같다.

-

01. Warning: Creating default object from empty value

modules/communication/communication.model.php:32
modules/communication/communication.controller.php:858
classes/module/ModuleHandler.class.php:1266
classes/module/ModuleHandler.class.php:134
index.php:51

02. Warning: Creating default object from empty value

modules/communication/communication.model.php:32
modules/communication/communication.controller.php:858
classes/module/ModuleHandler.class.php:1266
classes/module/ModuleHandler.class.php:134
classes/context/Context.class.php:1566
common/framework/debug.php:663
common/framework/debug.php:542


메인 페이지 접속시 오류 발생[편집 / 원본 편집]

아래의 내용은 2020년 6월 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
widgets/content/content.class.php:206 widgets/content/content.class.php:123 modules/widget/widget.controller.php:390
modules/widget/widget.controller.php:471
modules/widget/widget.controller.php:288
modules/widget/widget.controller.php:266
modules/widget/widget.controller.php:250
classes/module/ModuleHandler.class.php:1266
classes/display/DisplayHandler.class.php:80
classes/module/ModuleHandler.class.php:1180
index.php:52

여담[편집 / 원본 편집]

라이믹스 2.0 기념 로고가 있다. 물론 공식 로고는 아니고 유저가 만든 로고이다.

라이믹스 2.0 로고 비공식 이니셜.jpg

라이믹스 2.0 로고 비공식 full.jpg

각주[편집 / 원본 편집]

  1. 개발 버전인 develop 브랜치보다도 더욱 불안정 하기 때문에 실서비스를 하는 경우, 절대로 사용하면 안된다.
  2. RXE에서는 사용자별로 고유 번호가 존재한다.
  3. 기기에 비밀번호를 저장하지 않는다.
  4. 해당 주소는 https://example.com/index.php?mid=note&document_srl=213를 줄인 것이다.
  5. 라이믹스는 mysqli 방식만 지원한다.
  6. rx_ 같은 것들
• 현재 페이지 URL 줄이기