모 커뮤니티에서 겪고 있는 어떤 문제를 살펴보다가 황당한 사례를 하나 발견했습니다.

 

라이믹스 2.0 코어, 그 중에서도 나름 최근까지 활발하게 수정되고 있는 common/framework/ 아래의 특정 부분을 임의로 개조해서 납품하신 용자가 계시더라구요. 누구신지는 모르겠습니다. 문제의 사이트 운영자분께도 굳이 여쭤보지는 않았습니다. 제가 아는 것은 두 가지뿐입니다. 1) 이건 변태짓입니다. 2) 의뢰자에 대한 예의가 아닙니다.

 

XE는 어차피 더이상 업데이트되지 않는 물건인데다가, 기능이 많이 부족하기 때문에 코어를 개조해서 쓸 수밖에 없는 경우가 많습니다. 그러나 그 습관은 XE와 함께 버려야죠. 라이믹스는 (지난 몇주간 개발팀의 개인적인 사정으로 다소 페이스가 느려지긴 했지만) 상당히 빨리 변화하는 CMS이고, 최신 버전이라면 더욱 그렇습니다. 코어 수정은 사실상 업데이트를 포기하겠다는 뜻이고, 남의 코어를 수정하는 것은 그 사람이 중요한 보안패치를 적용하는 것을 방해하는 짓이나 다름없습니다. 남의 얼굴에 재채기하는 것으로 모자라서 상대방의 마스크까지 벗겨버리는 무책임한 행동입니다.
 

물론 코어에 부족한 점이 많기 때문에 수정이 필요할 수도 있습니다. 반면, 멀쩡하게 지원되는 기능이거나 코어 수정 없이 트리거로 해결할 수 있는데도 몰라서 안 쓰고 이상한 방법으로 땜빵하려 하는 분들도 종종 봅니다. 매뉴얼이 부실하기 때문에 그럴 수도 있습니다. 충분히 이해합니다. 그래도 웬만하면 서로 양심적으로 개발해야 하지 않겠어요?

 


 

앞으로 라이믹스 기반으로 의뢰를 진행하는 모든 사이트 운영자분들은 아래와 같은 조건을 개발자에게 공통적으로 요구할 것을 제안합니다. 이 글 링크를 전달하셔도 됩니다.

 

1. 원칙적으로 코어를 수정하지 않습니다.

 

2. 반드시 필요한 기능이 코어에서 지원되지 않거나 코어에 버그가 있어서 수정을 원하는 경우, 공개된 장소(github, xetown 등)에서 라이믹스 개발팀 또는 개발 진행 상황을 잘 알고 있는 커뮤니티 멤버들과 반드시 상의합니다.

 

비교적 안전한 수정이란 확인을 받고 진행해도 될 수도 있고, 코어에서 계획중인 패치와 충돌한다는 답을 받을 수도 있으며, 코어가 업데이트되더라도 영향을 받지 않도록 하는 방법에 대해 조언을 얻을 수도 있고, 아니면 내친김에 PR을 써서 정식으로 패치할 수도 있습니다. 그 과정에서 처음 생각했던 것보다 더 좋은 방법을 찾을 수도 있고요. 어떤 결론이 나오든, 개발자는 이렇게 공개적으로 상의한 내역이 담긴 링크를 의뢰자에게 전달하여야 합니다. 이 과정을 거치지 않고 임의로 코어를 수정함으로써 추후 업데이트에 지장이 있을 경우, 임의로 코어를 수정한 개발자가 모든 책임을 져야 합니다.

 

반드시 모든 사람이 볼 수 있는 곳에서 코어 수정을 논의하라고 요구하는 이유는 1) 나중에 다른 개발자에게 유지보수를 맡겨야 할 경우 명확하게 참고할 수 있는 자료가 필요하기 때문입니다. 개발자가 제3자와 개인적으로 주고받은 대화기록은 그 개발자가 잠수타는 순간 모두 증발합니다. 2) 이런 상담을 종종 해주게 되는 코어 개발팀 입장에서도 (보안취약점 이슈가 아니라면) 메일이나 채팅 등 비공개 채널을 통해 특정인과만 정보를 공유하는 것을 원하지 않습니다. 코어와 관련된 것은 모두 공개가 디폴트입니다. 비밀 유지를 원하시면 돈 주고 자문을 받으세요.

 

3. 코어의 기능 부족이나 버그 때문에 수정이 필요한 경우, (개발하려는 기능의 핵심적인 비밀을 누설하거나 경쟁력을 저해하지 않는 범위 내에서) 개발자가 PR 등의 방법으로 라이믹스 코어 개발에 기여하는 것을 허락합니다. 의뢰자분도 내 돈으로 남 좋은 일 시킨다고 생각하지 말고, 더욱 안정적인 사이트 운영을 위한 투자라고 생각하시면 어떨까요?

 


 

라이믹스는 작은 커뮤니티입니다. 얼굴없는 회사가 소스만 던져주고 사용자나 외부 개발자와 거의 교류하지 않는 다른 CMS와는 다릅니다. 라이믹스는 빠르게 변화하지만 하위호환성을 중시하는 무척 특이한 포지션을 취하고 있습니다. 10년 전에 만들어진 XE용 자료도 널리 알려진 방법으로 한두 군데만 고치면 잘 돌아가곤 하지요. 사용자와의 지속적인 소통이 없다면 불가능한 일입니다. 단, 이런 혜택은 소통에 참여하는 분들만 누릴 수 있습니다. github, xetown 등 어떤 방식으로든 코어와 소통하지 않고 따로 노는 서드파티는 버전이 올라갈수록 점점 빨리 도태될 것입니다.

 

신규 사용자나 개발자를 유입시켜야 한다고 해서 이러한 기본 전제를 버리고 아무나 다 받아주지는 않을 것입니다. 이 생태계에서 가져가기만 하고 돌려주지 않는 사람이 있다면 저희가 앞장서서 인생을 고달프게 만들어 드리겠습니다.^^

 

글쓴이 기진곰

profile
GitHub @kijin 사람을 위한 인터넷 생태계의 발전에 많은 관심을 갖고 있습니다.
우리가 만들어 가는 XE의 새 이름, 라이믹스(Rhymix) 프로젝트에 참여하고 있습니다.
오픈소스 도로명주소 검색서버 및 API Postcodify를 개발, 운영중입니다.
국내외 서버 및 클라우드서버 세팅, 이전, 튜닝해 드립니다.
  • profile

    남의 사이트 만들어주면서 문서화 없이 코어를 슬쩍 수정해놓는 것은 일종의 알박기죠. 문제생기거나 업그레이드 할일이 있으면 반드시 자길 다시 찾아와야만 하게 만들어 놓는... 

     

    의뢰하시는 분들은 납품받을때는 덩그러나 소스만 받지 말고 "Step-by-Step Upgrade Manual"(가칭) 같은 것을 꼭 받는 것으로 계약을 하셔야겠지요. 초보자도 그 매뉴얼대로 따라만 하면 코어 버전업을 할수 있도록 말이지요. 코어 수정이 없었다면 덮어쓰면 되겠지만, 불가피하게 수정한 경우라면 어디를 어떻게 왜 워째서~ 했는지를 자세히 기록해서 인수인계 해주는 것은 기본중의 기본 아닐까 합니다.

  • profile profile

    차라리 알박기 상술이라면 이해하겠는데, 남의 코어를 뜯어고쳐놓고 정작 A/S가 필요할 때는 연락이 안 되는 사람도 있습니다. 이건 그냥 똥싸놓고 도망갔다고밖에는 표현할 수가 없네요...

  • profile profile
    알박기 후 실종되면 정말 난감해지겠네요 ㅠㅠ
  • profile
    의뢰 하시는 분들 이 부분 꼭 짚고 넘어가셔야 할 것 같습니다.
    에휴, 수고 많으시네요. 할 일도 많으실텐데,... 이런 것?까지 ㅠㅠ 쩝...
  • ?
    어우야... 확실한 가이드 감사합니다. 스크랩 해두겠습니다.
  • profile
    좋은 글 감사합니다. 다음 계약서부터는 위 내용을 포함시켜야 겠습니다. 그것 외에도 라이믹스 개발 의뢰를 할때 개발자가 기본적으로 지켜줘야할 부분을 가이드라인처럼 제시주시면 참 좋을 것 같습니다.
  • profile ?

    이게 그누보드때문에 그럴꺼예요 그누보드는 개발은 거의 코어 수정해버리니까요

    그누보드만 보면 한숨나오네요

     

    PHP 신입들 그누보드 보고 거의다 도망간...