라이믹스는 주기적으로 업데이트되어 버전의 숫자가 조금씩 올라갑니다.
사람처럼 나이를 먹는다고 자동으로 올라가는것도 아니고, 이유 없이 심심해서 올라가는것도 아닐것 입니다.


버전 업데이트라는 것을 하며 여러 기능의 추가 수정 삭제등 무수히 많은 일련의 작업 들이 그 안에서 이루어 질것입니다.

보안이 향상 될수도 있고, 혹은 갑자기 드러난 취약점을 고친것 일수도 있고, 무언가 버그를 고친것 일수도 있고... 신기능을 만들수도, 혹은 속도를 빠르게 개선할수도 있고..  이유야 너무나 다양할것 입니다.

 


우리가 사용하는 라이믹스에서도 여러 사용자의 의견들이 모이고, 버그가 제보되고, 기능의 수정과 개선이 이루어 지면서 자연스레 버전업을 하게 되는데


PHP 라고는 다를까 싶습니다. 하물며 라이믹스, XE같은 프로그램 들은 PHP로 작동하는 셀 수 없이 무수히 많은 프로그램중 하나 일 뿐인데 말이죠.

 

라이믹스 버전업을 볼때마다 엄청나게 많은 필요 기능들이 생겨나고 개선될 부분들은 개선 되는것을 볼수 있습니다.

라이믹스 또한 과거 XE시절 부터 비교하면 조금씩 PHP 최소버전이 올라가고 있습니다.


더 상위 차원의 PHP가 버전업을 하니까 그 보다 하위에서 작동하는 프로그램인 라이믹스 또한 따라서 업데이트를 하는것 입니다. 다만 내부의 코드들이 과거부터 누적되어 쌓여온 만큼 최근의 PHP사정에 맞도록 케케묵은 코드들을 수정하는 기간이 들어가는 것일거구요.

 

 

저희 같은 일반적인 라이믹스 사용자의 시선에서는 PHP버전업이 그다지 피부로 와 닿지 않기 때문에..

뭔지는 잘 모르겠지만 일단 올리라면 올리긴 해야 되는데 올리고 나면 원래 잘 작동하던 내 프로그램 고장내는 귀찮은 놈 정도의 인식으로 보여지곤 합니다.

 

 

거꾸로 생각해보면 라이믹스는 결국 PHP로 만들어진 언어이고, 이 라이믹스를 실제로 만들고 기여하고 계신 개발자 분들에게는 저희가 새로운 라이믹스 버전을 볼때마다 감탄을 하는것 처럼 PHP업데이트를 보고 감탄을 하고 계실지도 모릅니다.

 

실제로 PHP또한 업데이트 진행될수록 오래된 쳐낼것은 쳐내고, 새로운 기능들을 추가하고 보완할테니까요

 

 

서버·호스팅 등의 환경적인 문제거나 혹은 기존에 사용하던 모듈/애드온 등의 호환성 때문에 어쩔 수 없는 문제가 아니라면 가능한 안정화(검증) 된 가장 최근의 버전을 사용하는것이 좋은것 아닐까 생각 해봅니다.

 

아직도 산업현장이나 공장등지에서 사용하는 20년 30년 지난 기계나 프로그램들은 보수하고 교체하고 싶어도 마음대로 할 수가 없으니 그냥 쓴다고 쳐도, 라이믹스는 내가 서버의 접근권한만 있다면 원하는대로 수정을 할 수 있지 않습니까??

 

 

시간의 문제일뿐 결국 라이믹스도 언젠가는 최소사양 PHP8 시대를 맞이 할 수도 있는것이며

그 전에 저희같은 일반 사용자에게 주어진 시간동안 예전에 작성된 프로그램을 고치고 개선하며 혹은 과검히 버릴것은 버리면서 최근의 발전 사양에 맞추어 가며 사이트를 운영해야 된다고 생각 합니다. 

그래서 저 또한 라이믹스를 사용하며 저의 필요에 의해 수정, 추가하는 부분들은 모두 최근의 방식을 찾아서 만들고 있구요.

 

 

당장의 귀찮음이나 잘 모른다는 이유 때문에 과거부터 개선되고 더 좋아지는 PHP상위버전을 포기하는건 너무 아깝네요

그것은 점점 더 업그레이드 하는 라이믹스 버전 업데이트 까지 포기한다는 것과 같을 테니까요.

 

  • profile

    코어 개발자로서 어쩔 수 없는 부분도 있습니다. 예를 들어 PHP 8.2가 나오면 코어도 8.2를 지원해야 하는데, 동일한 소스로 아주 광범위한 버전의 PHP를 지원하기가 쉽지 않습니다. 타입 체크나 클래스 상속 규칙이 점점 빡빡해지고 있는 최근 버전은 더욱 그렇습니다. 그러니까 새 버전을 하나 지원하기 위해 오래된 버전을 하나 쳐내는 거죠.

     

    XE나 그누보드처럼 PHP 문법의 극히 일부만 사용하는 CMS라면 PHP 5.x부터 8.x까지 모두 지원하는 것도 얼마든지 가능하지만, 라이믹스는 PHP 문법과 기본 제공되는 기능들을 훨씬 광범위하게 사용합니다. PHP의 변화에 더 민감할 수밖에 없지요. 몇 가지만 예를 들어 볼까요?

     

    1. PHP에서 기본 제공하는 PDO, PDOStatement 클래스를 상속받아 디버그 연동 코드를 끼워넣습니다.

    2. 배열로 선언한 lang 파일의 내용은 ArrayObject로 묶어서 반환하여, 오브젝트 접근 문법으로도 불러다 쓸 수 있도록 합니다. 예전에 lang 파일에 오브젝트를 넣는 서드파티 자료가 있었거든요. 호환성 유지해야죠.

    3. Context::set('foo')로 넣은 변수를 템플릿에서 {$foo}로 불러다 쓸 수 있는 것은 절대 당연한 기능이 아닙니다. 클래스에 넣은 데이터와 GET 변수를 통합하여 마치 로컬 변수처럼 참조할 수 있도록 하기 위해 XE 때부터 지저분한 꼼수가 동원되었고, 라이믹스도 마찬가지입니다. 이거 처리하는 정규식이 굉장히 예민해서, 템플릿에서 쓸 수 있는 문법의 자유도가 무척 제한됩니다.

    4. 세션 쿠키에 samesite 속성을 넣을 수 없는 PHP 7.2에서도 일관성있는 동작을 보장하기 위해, 마침 PHP 7.2 이하 버전에만 존재하는 가벼운 보안취약점(?)을 활용하여 이 속성을 헤더에 무단으로 주입하고 있습니다.

    5. stdClass 이외의 클래스에 임의로 속성을 추가하는 것은 앞으로 막힌다고 했습니다. 그래서 Context처럼 임의로 속성을 추가하는 일이 잦은 클래스들은 미리 #[AllowDynamicProperties] 딱지를 붙여 놓았습니다.


    또 한 가지 어려움은 common/vendor/ 아래에 빼곡히 들어 있는 서드파티 라이브러리들입니다. 라이믹스의 강력한 기능 중 상당수는 저희가 직접 개발한 것이 아니라, 전세계의 개발자들이 만들어 배포한 오픈소스 라이브러리들을 활용하고 있습니다. 그런데 외국 개발자들은 한국보다 훨씬 빨리 구 버전을 버립니다. 우분투 등 주요 리눅스 배포판들이 몇 년간 보안패치 지원을 약속했는데도, PHP 공식 지원 기간이 끝났다는 이유로 가차없이 버리곤 합니다.

     

    만약 라이믹스에 꼭 필요한 라이브러리가 앞으로 PHP 7.4 이상만 지원하겠다고 한다면, 라이믹스도 따라가는 수밖에 없겠지요. 구 버전을 지원한답시고 오래된 라이브러리를 계속 유지하다가는 해킹당하기 딱 좋고요.

     

    그냥 둬도 5년 10년 잘 돌아가는 홈페이지란 더이상 존재하지 않습니다. PHP와 CMS의 발전이 모두 정체되었던 2000년대 초반에나 가능했던 얘기지요. 이제는 끊임없이 따라가지 않으면 죽습니다. 여러분의 홈페이지도 마찬가지이고, 라이믹스 코어도 마찬가지입니다. 살아남기 위해 라이믹스 코어도 엄청 노력하고 있다구요.

     

    항상 아쉬운 것은 서드파티 자료입니다. 10년이 넘었는데 방치되고 있는 것이 너무 많습니다. 코어는 PHP 8을 완벽에 가깝게 지원하는데 서드파티 때문에 업데이트를 못합니다. 오픈소스 라이선스가 허용하는 한도 내에서, 남이 만든 자료라도 임의로 수정하여 재배포하는 행동이 좀더 활성화되면 좋겠습니다.

  • profile profile

    맞습니다. 이곳 XETOWN에서 보게되는 PHP를 업데이트 하기 어려운 이유는 대부분 "지금 사용하고 있는 서드파티 자료가 안 돌아가서" 였습니다.

     

    우리 주변에서만 보더라도 "OO프로그램 심각한 취약점 발견, 2023-XX월-XX일 이하 버전은 반드시 업데이트" 뭐 이런 기사들 심심찮게 올라오는 마당에... PHP나 라이믹스, XE도 마찬가지라고 봅니다.

     

    해킹이란건 결국, "개발자가 예상못할 방법을 온갖 기상천외한 사용방법을 통해서 숨어있던 프로그램의 버그나 우회법을 찾아내서 공격하는것" 이니까요. 지금처럼 AI기술이 상용화 되고 점점 실생활 이용에 다가오는 시점에는 더더욱 이 위험이 늘어가겠지요

     

     

    저의 경우 프로그래밍에 대한 전문적인 지식은 없고 업무상 자동화가 필요하여 라이믹스 사용하여 JS, Jquery, 템플릿 언어 조금 정도 쓰면서 프론트엔드단에서 어떻게든 처리하다가 차라리 PHP단에서 처리되는게 좋겠다고 생각하여 구글과 스택오버플로우 등등 찾다가 안되면 XETOWN에 물어보고 있는 일반적인 사용자와 전문적인 개발자 사이 정도에 있는 사용자 입니다.

     

    예전에는 기진곰님 댓글을 통해 PDO에 대해 알게되었고, 최근에는 str_ends_with() 내부함수를 배우게 되었습니다.

    아마도 제가 질문글을 올릴때 PHP8을 사용한다고 선택한 것을 보고 이 내부함수를 알려주실 겸 str_ends_with()를 이용한 방법을 알려주신 게 아닐까 싶습니다 :)

    덕분에 주소를 정제하는 과정을 제가 이해하지 못할 외계어 같은 정규식이 아닌 더 쉬운 방법으로 처리하게 되었지요.

    원래는 함수를 직접 만들고 어떻게 처리할지 고민해야 되는 것을 PHP8 에서는 쉽게 다른 방법으로 지원을 하는 것 입니다.

     

     

    그래서 일반사용자일때 입장과 개발하는쪽의 입장을 둘다 알 것 같은데 코어를 개발하는 라이믹스 개발진 입장에서는 어떻게든 더 좋은 기능과 보안을 위해 데려가고 싶은데 코어의 문제가 아닌 서드파티 문제 때문에 따라오지 못하는 분들이 계셔 아쉽다고 생각 하실 겁니다.

     

    그도 그럴것이 일반사용자의 입장에서는 "무슨파일 찾아서 열고 XXX를 찾아서 OOO로 바꾸세요" 라고 댓글이 달렸을때 는 할 수 있는 분과 불가능한 분이 계시고, 심지어 파일을 수정해서 드려도 FTP사용방법 부터를 모르는 분들까지 다양 하시죠

     

    라이믹스는 범용적인 프로그램이니 서드파티를 사용하는데 문제가 있는 극히 일부 사용자로 인해 최근의 더 좋은 기능과 보안들을 포기할 수는 없는것 일테구요.

     

     

    차라리 개선이 완료된 모듈이나 스킨의 경우 업데이트 되어 파일이라도 어딘가에 올려져 있으면 적용하기나 쉬울텐데 대부분의 문제 해결 방법은 어딘가 숨어있는 질문글 속 댓글에 여기저기 흩어져서 존재하죠.

     

    무언가 문제가 해결 되었을때 나만 어떻게 해결 했으니까 끝 이라는 생각보다 개선된 모듈이나 스킨이 버전업을 하면서 이어져 공유되는 경우가 많다면 얼마나 좋을까 생각하긴 했습니다.

     

    그래야 그 서드파티 모듈이나 스킨 또한 여러사람의 손을 거치면서 점점 더 업데이트 되어 갈 테니까요.

     

     

  • profile profile

    질문에서 PHP 8을 선택하신 것을 보고 str_ends_with()를 추천해 드렸지만, 라이믹스 안에서 돌아가는 코드라면 PHP 7에서도 동일한 함수를 사용할 수 있습니다. 그 함수가 없는 버전에서는 라이믹스가 만들어 주거든요.

    공식 지원하는 버전 범위 내에서는 웬만하면 버전 신경쓰지 않고 사용하실 수 있도록 배려하고 있습니다.

  • profile profile
    오.. PHP8부터 지원하는 내장함수를 라이믹스를 거치면 PHP7 에서도 사용 가능하다는걸 오늘 알았네요!!

    더 좋은것은 취하고 버릴것은 버린다. PHP와 라이믹스 모두 오픈소스 여서 가능한, 오픈소스 사용의 좋은 예시네요

    단순 라이믹스 사용자 일때는 전혀 느끼지 못했던 부분들이 조금씩 심화사용을 하다보니 평소 느끼지 못했던 수 많은 부분들에 있어 코어 개발진 분들께서 얼마나 고민을 통해 신경쓰고 배려해주고 계신지 알게되었습니다.

    항상 감사한 마음으로 사용하고 있습니다 :)
  • ?

    제 개인적으로 라이믹스가 아닌 옆집사람(?)이지만

    8버전을 망설이는 이유가... 유료로 구입한 서드파티 때문이 큽니다.

    코드 보안을 이유로 이온큐브 암호화 + 최대버전 7.4.

    업뎃은 계획없다는 이야기 등등 ㅜㅜㅜㅜㅜㅜ 때문에 7.4로 사용중입니다.

     

    지금이야 서버로 이전 구축되어 php버전을 자유롭게 갈 수 있는 반면 많은 분들이 웹호스팅을 사용중이실겁니다.

     

    문제는 해당 웹호스팅 회사가 디폴트로 8버전을 제공하는곳이 거의 없다는것도 흠이라면 흠일수 있겠습니다

  • ? profile
    유지보수 안되는 서드파티 들을 쓴 홈페이지들이 어려움을 겪게 되죠. 어떤 경우에는 유료인 경우도 있고, 어떤 경우에는 너무 분량이 방대한 경우도 있고... 이걸 고쳐 쓰시는 분들도 있는데, 이게 재배포가 안되어 다른 사용자는 똑 같은 일을 맨땅에 헤딩하듯 다시 반복하게 되고...
  • ? profile

    암호화를 해놨으면 끝까지 책임져야죠. 암호화해서 팔아 놓고 유지보수를 거부한다? 그런 업체는 공개적으로 망신을 줘야 한다고 생각합니다. 만약 님이 자동차를 사는데 "5년이 지나면 고장나더라도 절대 수리해 드리지 않습니다"라는 공지가 붙어 있다면 그런 차를 살까요? 절대 안 사죠. 그런데 소프트웨어에서는 왜 그런 말도 안 되는 정책이 용납되는지...

    라이믹스는 GPL이기 때문에 서드파티 자료를 암호화해서 팔면 내용증명 날아갑니다.

  • profile ?
    PHP 유경험자가 아니라 이번에 사이트 만들면서 꾸역꾸역 해본 사람으로써, 8.0 버전대를 경험해보고픈 마음은 가득하나...ㅠㅠ

    연동이 참 걱정이네요 ㅠㅠ 안정화(?)가 되고 요즘처럼 웹호스팅 기본 디폴트 7 환경이 8로 바뀌면 그때 도전해봐야겠습니다.
  • profile ?
    아마, 정확한 정보는 아니지만, 개발자는 따로 있고 그 소스를 받아 퍼블리싱(?) 같은 개념으로 판매만 하는 것 같은 느낌이 들더라구요...

    그 이외에 일부 코드는 현재는 업데이트 계획이 없다고 하셔서 뭐 어쩔 수 없...다고는 생각하고 있으나, 추후에 기본 베이스가 올라가는 시점이라면 저 역시도 해당 부분을 포기하더라도...업데이트 해야...겠다는 생각도 듭니다.

    당장 이 시점에 급하지 않다보니, ㅇㅅㅇ;;
    그나저나 내용증명 ㄷㄷㄷ ㅇㅅㅇ;; 그누는 알게모르게 유료 컨텐츠가 이온큐브 암호화가 많이 있습니다.

    레이아웃 유료 템플릿은 없지만,플러그인 혹은 모듈 같은 개념은 이온큐브 암호화 된 경우가 많습니다.

    심지어 무료로 공유되는 것도 암호화해서 배포하는 경우도 있더라구요..
    .
    (실제로 해제 해보고자 복호화 까지 검색해봤던 츄르르릅)
  • ? profile

    유료라면 어느 정도는 이해합니다. 개발자도 먹고 살아야죠. 그누보드는 암호화를 금지하는 라이선스도 아니고요. 다만 암호화까지 해가면서 유료로 판매한 만큼 장기간 유지보수를 해야 한다는 무언의 사회적 계약이 있는 것이고, 유지보수를 거부하는 순간 그 약속은 깨진 셈이지요. 개인적으로 모든 암호화된 PHP 자료는 유지보수 중단, 판매자 폐업 등 일정한 조건이 충족되면 원본 소스가 제공되도록 일종의 에스크로 장치를 해놓아야 한다고 생각합니다.

    돈 받지도 않으면서 암호화하는 것은 두 가지로밖에 설명되지 않습니다. 자기 코드를 남이 보는 것이 부끄...😅럽거나, 아니면 남이 봐서는 안 되는 어떤 위험한 코드😈가 포함되어 있거나.

    XE도 이런 자료들 때문에 시간이 지날수록 사용자들이 불편해하는 것을 많이 보았기 때문에, 라이믹스로 넘어오면서 반드시 소스를 제공해야 하는 라이선스로 변경했습니다. (불특정 다수에게 소스를 공개할 의무는 없고, 구매자에게 제공해야 한다는 뜻입니다.)

    소스 공개하기 싫은 개발자들의 같잖은 자존심? 그딴 거 필요없습니다. 사용자가 우선입니다. 소스 제공 조건으로 팔기 싫다고 하면 그 돈은 다른 사람이 벌면 그만이죠. 라이믹스 쪽에서 실력 좀 있다는 분들은 지금도 일감이 너무 많아서 하루 24시간이 모자랄 지경인데요 뭐.

  • profile
    php5에서 익스플로러에서 엄청 느려터진 XE가 기억나네요.
    시대를 앞서갔던 기술인지 ㅎㅎㅎ 지금은 무지 빨라졌네요

    당시 속도 떄문에 XE 포기하고 그누보드나 심지어 제로보드4를 고집하던분들도 많았던게 기억납니다.

    근데 php8은 업데이트 했다 기존에 사용하던 모듈 애드온들에 엄청난 오류가 생길것이 뻔하기에 망설여지네요 ㅠㅠ
  • profile profile

    옛날 얘기지만, php5 자체가 워낙 느려터졌어서... 아직도 거기 머무는 분들은 인내심에 경의를 표해줘야 합니다~. (아래 그래프(소스: onlinephp.io/benchmarks )는 캐시성능이 포함 안된 단순 php 스크립트 성능만 표시한 것인데도 저렇죠. 여기에 더해, 캐시 포함된 CMS 실성능은 php8.2 쪽으로 갈수록 더 빨라짐).

     

    php version performance.png

  • profile profile
    와. 5버전 그래프..심각하네요ㅎㅎㅎ
  • profile
    저는 php8.0으로 갈아탈려구 셋팅했는데 유료로 구매한 레이아웃 적용하자마자 바로 오류를 뿜더라구요.
    첫 단추부터 막혀서 다시 7.4로 돌아왔습니다. ㅜㅜ 코알못은 참 전진이 어려운거 같습니다.