제목이 참 무섭죠.

 

XE와 라이믹스로 사이트를 구축하고 운영하면서 어려움을 겪는 것 중 가장 크고 큰 스트레스가 바로 하위 호환성이 깨져서 기존에 사용하던 기능이 없어지거나 혹은 사이트 작동 자체에 문제가 생기는 경우 입니다.

 

XE시절 하위 호환성이 크게 깨지는 경우도 한차례 있었고 라이믹스에서는 1.X 에서 2.X 변경되면서 제법 문제가 되는 것들이 많았습니다.

 

사실 라이믹스 전체를 잘 이해한다면 이런 부분들이 큰 문제가 되지 않지만 저와 같은 사용자들은 크게 난감합니다. 때로는 사용하는 자료가 앞으로 수정하지 않으면 작동이 안된다는 사실을 알게 된다면 해당 자료의 제작자분이 조치를 해주길 기대해야 하고 결과를 기다려야 합니다. 

 

개인적으로는 라이믹스 2.0 으로 업데이트를 무려 1년 가량 기다리다 자료를 포기하고 2.0으로 넘어온게 바로 몇일 전 입니다.

 

그런데 애드온이 사라진다는 것은 너무다도 충격적인 소식입니다. 물론 공식적으로 공지된 내용도 아니고 회원분께 애드온 보다는 모듈로 개발을 하는게 좋다는 것의 이유로 댓글로 적어주신 것을 접한 것이긴 하지만 굉장히 큰 부담이고 과연 내가 라이믹스의 업데이트를 언제까지 대응해가며 최신버전으로 운영할 수 있을까? 하는 걱정이 듭니다.

 

불가피하게 하위 호환성을 깨가면서 과거의 잘못을 언젠가는 꼭 고쳐야 하는 부분도 이해를 합니다만 너무나도 큰 하위 호환성이 깨지는 일은 정말 마주하고 싶지 않은 그런 일이 되는 것 같습니다.

 

댓글의 의미처럼 언젠가 애드온이 라이믹스에서 사용 자체가 안되는 메이저 업데이트 시점이 온다면 수많은 기능을 애드온에 의존해서 운영하는 사이트를 최신버전으로는 변경하지 못할 것이라는 암울한 생각이 듭니다.

 

이러면서 속으로는 내가 라이믹스 사이트 운영을 그만두기 까지는 기존에 사용하던 많은 자료가 이용이 안되는 그런 변화는 없었으면 하는 생각을 늘 하게 되네요. 

 

아직도 라이믹스 1.9 에서 2.X 로 못 넘어오는 분들은 이러한 대규모 하위 호환성이 깨지는 일도 아닌 일부 자료들이 사용이 안되는 것 때문인 분들도 많을텐데 애드온이 사라질 수 도 있다고 하니 좀 무시무시 하네요.

웹지기

profile
10년을 다루다 보니 이제 간단한 것도 만들고 커뮤니티 운영에 관한 다양한 노하우가 있습니다. 어려운 점이나 가지신 생각을 함께 소통해 보아요.
https://rxtip.kr/ 라이믹스 꿀팁
  • profile

    "언젠가"가 5년 후가 될지 10년 후가 될지 모릅니다.

     

    XE 개발이 중단되고 PHP 버전이 계속 올라가면서 어느 순간 오래된 자료들은 사용하기 곤란해지는 변곡점이 오게 되지요. 웹지기님이 오랫동안 붙잡고 계시던 특정 자료를 끝내 포기하고 라이믹스 2.0을 선택하신 것처럼요. 만약 하위호환성을 크게 깨뜨려야 하는 날이 온다면 그런 타이밍을 이용할 것입니다. 멀쩡하게 잘 돌아가고 있는 자료들을 인위적으로 폐기시키는 것이 아니라, 어차피 쓸 수 없게 되었고 충분한 대안이 마련되었을 때...

     

    - 애드온만큼 간단하지만 애드온보다 빠르고 안정적인 플러그인 시스템을 도입할 것입니다.

    - 애드온을 플러그인으로 변환하는 방법도 널리 알릴 것입니다.

    - 이후 쓸만한 자료들은 모두 모듈이나 플러그인으로만 나오게 될 것입니다.

    - 그러던 중 PHP 9.0이 나온다거나, BaseObject와 같은 사건으로 인해 한동안 유지보수되지 않은 자료들을 대규모로 폐기할 수밖에 없는 날이 온다면... (예: 인클루드한 파일 내에서 $this를 쓰지 못하게 된다거나...)

    - 오래된 애드온은 자연스럽게 모두 폐기, 플러그인은 보존하는 수순을 밟게 되겠지요.

    - 그 때 코어 개발팀도 슬그머니 숟가락을 얹겠습니다.

     

    여기까지 몇 년이 걸릴지는 모릅니다. 당장 올해 개발 계획도 많이 밀리고 있는데요 뭐. 그러나 제가 라이믹스 개발을 계속하는 한, 이 순서대로 진행할 것은 확실합니다. 따라서 신규 애드온 개발은 권장하지 않습니다.

  • profile profile
    네. 계획을 알게 되는 순간부터 부담이 되는건 사실이에요.
    저도 최대한 따라가보려고 노력은 해보겠지만 제가 낙오되지 않길 바랄뿐입니다. 어찌보면 변화를 바라지 않는 보수적인 성향의 사용자의 전형적인 태도죠...

    제가 1년간 노력 끝에 포기한건 사실 저에겐 큰 아픔이기도 하고 경험하고 싶지 않은 경험이에요.
    그래서 비슷한 경험을 또 하고 싶지는 않은거겠죠.

    물론 외부적인 이슈로 호환성이 깨져버리는 누구도 막을 수 없던 것들이라 불가항력이었고 사용자들도 대응해 나갔었던 것이구요.

    가끔 유지보수도 잘 안되고 폐기할 것이다 라는 것 가끔 들을때 철렁 철렁 하기도 합니다.
  • profile profile

    사용하는 사람이 여전히 너무 많아서 폐기할 수 없게 된다면 제가 양보해야지요. ㅎㅎ
    그렇다고 저를 막기 위해 애드온을 마구 만들어 퍼뜨리지는 마시고요!!!

  • profile profile

    네. 이제 처음 소식을 접했으니 이제 가급적 모듈을 개발할 수 있도록 노력을 해보도록 할 것 같긴합니다. 그리고 점진적으로 이러한 사실을 조금씩 더 알려야 너무 많은 애드온이 양산되지 않을 수도 있을 것 같습니다.

     

    구매한 애드온 중 꽤나 복잡한 코드로 구성된 것들도 많고......

    저도 모듈은 아직인 과도기적인 상황이고(사용자가 모듈,애드온 구분해서 만들수 있는 것도 특수한 케이스죠)하니 새로운 애드온을 생성하긴 할 것입니다.

    모듈로 전환하는 노력을 시작해 보아야겠습니다. 개인차가 있는 부분이라 제가 좀더 코어가 작동하는 방식과 php 언어적인 부분을 이해하는 과정이 좀더 필요하네요.

  • profile

    언제 실행에 옮길 수 있을지는 모르지만, 애드온을 살생부에 미리 올려놓고 지금부터라도 신규 개발을 권장하지 않는 이유는 간단합니다. 현재 코어의 구조를 개선하고 성능과 안정성을 높이는 데 있어서 가장 방해되는 것이 "로컬 스코프에서 직접 인클루드하는" 애드온 시스템이기 때문입니다.

     

    ModuleHandler에 박혀 있는 애드온 시점 하나 때문에 Context → ModuleHandler → ModuleObject → DisplayHandler로 넘어가는 코어 실행 구조의 핵심적인 중간 부분 코드를 정리하기가 무척 어렵습니다. 해당 애드온 시점에서 $this나 각종 로컬 변수들이 의미하는 것이 조금이라도 바뀐다면 그 시점을 이용하는 애드온들이 줄줄이 깨질 테니까요. 그 때문에 라이믹스 2.0의 라우터도 괴랄한 형태로 이 구조에 비틀어 넣을 수밖에 없었습니다.

     

    물론 어떻게든 호환 레이어를 만들어서 땜빵할 생각입니다만 -- 호환 레이어 감쪽같이 만드는 것이 제 주특기 아니겠어요? ㅎㅎ -- 구조가 배배 꼬일수록 성능도 나빠지고 디버깅하기 어려운 버그나 미처 생각지 못한 보안취약점이 나올 가능성도 높아지기 때문에 눈엣가시라는 점은 마찬가지입니다. >.<

  • profile
    플러그인 고려하신다니 반가운 소식이네요. 지금은 애드온으로 안되는 것은 코어를 바꿔야 하는데, 플러그인이 되면 좋겠네요. 그러면서도 욕심이 기존 프로그램들이 앞으로 10년 뒤에도 그대로 돌아갔으면 하는 욕심도 있습니다 ㅎㅎ... 놀부 욕심 같기는 한데 말이죠.
  • profile profile

    사람 욕심은 끝이 없죠. ㅎㅎ 그래도 라이믹스는 최근 유행하는 다른 CMS나 프레임워크들에 비해서는 하위호환성 유지에 신경을 많이 쓰는 편입니다. 요즘 모던PHP나 JS 쪽에서는 업데이트가 1년만 밀려도 전혀 안 돌아가는 녀석들이 많잖아요. 끊임없이 따라잡기 위해 일자리가 계속 필요하고, 그렇게 스스로 직업안정성을 창조해 내는... ㅋㅋㅋ

  • profile profile
    플러그인은 사실 라이믹스 1.X 버전대부터 계속 계획하던 것이였어요.

    준비할게 많았고 각자 스케줄들이 밀려있다 보니 진행을 할 수 없었지요..
  • profile

    "https://zrr.kr/a3Tx" 게시물에 새로 작성하였습니다.

     

    저는 얼마 전에 라이믹스를 알게 되어 코드를 이리저리 분석하고 있습니다.

    "할 일 및 일정 관리"를 목적으로 하는 협업툴을 개발하고자 합니다.
    라이믹스는 CMS니, 협업툴 개발에 적합하지 않을 수도 있으나,
    실험적인 프로젝트로써 진행해 보려고 합니다.

    구조를 분석하다 보니, 코어를 제외하고 손댈 수 있는 부분은 아래와 같더군요.

    /addons
    /(m.)layouts
    /modules
    /widgets

    /widgetstyles

    먼저, 애드온 개발로 접근해 보려고 서칭하다가 아랫글을 보게 됐습니다.

    https://rxtip.kr/rx_study/362

    윗글을 읽고 제 느낌은, 모듈이라는 녀석이 애드온, 위젯, 레이아웃 모두를 아우르는 가장 상위의 개념으로 생각됐습니다.

    아직도 모듈과 애드온의 경계는 저에게 매우 모호하지만, 큰 기능은 모듈, 좀 작은 것은 애드온 이렇게 이해했습니다.

    제가 개발하고자 하는 것은 큰 기능이라고 생각돼서 모듈 개발로 마음먹었습니다.

    https://github.com/rhymix/rhymix/issues/82

    위 링크는 2016년에 등록된 라이믹스 향후 로드맵에 관련된 이슈입니다.
    최종적으로는 플러그인 단일 형태로 확장성을 제공하고자 하는 것 같습니다.

    그럼, 여기서 질문이 있습니다.

    질문1. 현시점에서 신규 개발 시 모듈로 개발하는 것인 Best인지?
    질문2. 플러그인 방식을 현시점에서 사용할 수 있는지?