구형 브라우저와의 역방향 호환성

신경퇴행성 질환으로 고통받는 사람들을 위한 게시판 운영을 돕고 있습니다. 이 게시판은 Discourse로 구동되며, 저는 Commit search results · GitHub 의 보안 목록을 추적하여 보안 문제가 있을 때마다 소프트웨어를 최신 상태로 유지하고 있습니다. 하지만 이렇게 하면 의도치 않게 구형 기기를 사용하는 사용자들이 점점 더 많이 차단되는 부작용이 발생합니다.

이 문제로 인해 한 사용자는 남편의 돌봄을 맡고 있는데, 더 이상 iOS/Safari 업데이트를 받지 않는 iPad를 통해만 게시판에 접근할 수 있어 차단되었습니다. 최근에는 Chrome을 호환 가능한 버전으로 업데이트할 수 없는 구형 크롬북을 사용하는 또 다른 사용자도 차단되었습니다. 브라우저의 최신 버전만 지원하는 정책을 이해합니다. 하지만 몇 년 전에 제조된 기기들이 업데이트를 더 이상 받지 못하면서도 그 외에는 완전히 정상적으로 작동하는데, 많은 사람들에게 필수적인 생명줄과도 같은 게시판에 접근하는 것이 막히니 정말 답답합니다.

게시판 헤더에는 사용 가능한 하위 기능 버전이 있다는 안내가 있지만, 이 게시판은 과거 사생활 침해 문제로 인해 로그인 전용으로 운영되고 있으며, 하위 기능 버전에서는 로그인이 불가능하기 때문에 이 안내는 실질적으로 쓸모가 없습니다.

이상적으로는 구형 브라우저가 작동하지 않게 만드는 보안 업데이트 스트림이 있거나, 최소한 업데이트 시 특정 브라우저가 더 이상 작동하지 않을 것이라는 경고가 있어 업데이트를 적용하기 전에 사용자에게 미리 알릴 수 있으면 좋겠습니다.

사용자들의 몇 가지 증언을 공유합니다:

“나는 사적인 메시지를 통해 다른 아내를 지지하기 위해 그곳에 머물러 있습니다. 그것이 얼마나 큰 혼란을 초래하는지 당신은 절대 모를 겁니다… 정말로 나는 …부서져 버렸어요😢”

“화내는 것처럼 들리겠지만… 남편을 잃은 지 17개월이 지났지만 여전히 매일 로그인해서 절망감으로 가득 차 있습니다”
“지역 도서관에서는 게시판에 접근할 수 있을 것 같은데, 집에서 접근할 수 없다는 것이 정말 답답합니다”

“다른 사이트나 은행 등은 모두 문제없이 접속할 수 있고, 그들은 계속 업데이트를 하고 있습니다”

“제안을 따라 앱을 다운로드해 보았지만, 불행히도 설치되지 않습니다. 제 iPad와 호환되지 않는다고 표시됩니다. 분명 iOS 버전 때문일 겁니다(또다시).”

“정말 짜증납니다! 제 iPad를 교체할 여유가 없고, 이 커뮤니티와 연락할 수 있게 해 주는 것은 이 iPad가 유일합니다”

“게시판은 생명줄입니다…그들은 그것을 저에게서, 그리고 아마도 많은 다른 사람들에게서 빼앗아 갔습니다”

이것은 꽤 비극적인 상황입니다. 불행히도 Discourse 개발은 항상 앞으로 나아가는 것에 초점을 맞추고 있는 것 같으며, 일 년에 몇 번(제 생각에는)은 기존 구형 기기나 브라우저를 더 이상 지원하지 않게 되는 변화가 일어나는 것 같습니다.

당신의 경우는 안정판(stable version)을 사용하면 다소 도움이 될 수도 있습니다. 하지만 어떤 형태의 업데이트 정책이든, 당신이 보고 있는 문제에 취약해질 수 있습니다. 그리고 업데이트를 하지 않는 정책은 구버전 소프트웨어를 실행하는 것에 취약해집니다.

구형 기기와 구형 브라우저를 훨씬 더 관대하게 지원하는 다른 소프트웨어로 Discourse에서 전환하는 것 외에는 답이 보이지 않습니다. 그것이 어떤 소프트웨어일지는 알지 못합니다.

또한 이러한 구형 기기와 브라우저 자체가 보안에 취약할 가능성도 있습니다. 하지만 통신 기기로만 사용된다면 그 영향은 적을 수 있습니다.

제3자 브라우저를 설치할 수 있는 방법이 있을까요? iPad나 Chromebook에서요?

구형 iPad에 대한 내용을 찾았습니다. 다른 브라우저도 설치할 수 있을 수 있습니다.

Download and install Google Chrome - iPhone & iPad - Google Chrome Help.

Chromebook에 도움이 될 수 있는 링크입니다.

Top 5 Chromebook Web Browsers 2024 [Ranked & Reviewed] - Alvaro Trigo's Blog.

하지만 구형 기기와 적절한 후방 호환성이 없는 것은 불행한 일이라고 동의합니다. 귀하의 경우와 같은 특수한 사용 사례를 해결하기 위해 플러그인을 만들 수 있는지 궁금합니다.

하지만 AFAIK(내가 아는 한) 그것들은 모두 Safari입니다. 어쨌든, 그 결과는 iOS에서 나오기 때문에 그것들은 Discourse의 테스트를 우회할 수 없어요.

그러면 Chrome이나 Firefox 같은 서드파티 브라우저를 설치해서 Safari 대신 사용하라는 건가요? 아니죠?

그것들은 자체 엔진을 갖춘 실제 브라우저가 아닙니다. 단순히 외형만 꾸민 것에 가깝다고 할 수 있습니다.

이해가 안 됩니다. 죄송하지만, iOS에서 구글 크롬이나 파이어폭스 등이 해당 브라우저의 정식 버전이 아니라, 단순히 외형만 바꾼 사파리 브라우저라는 말씀이신 건가요?

애플의 엔진을 재디자인한 것에 더 가깝지만, 최종 결과는 거의 동일합니다. 애플은 자사 환경을 매우 엄격하게 제한하고 있습니다.

정말 안타까운 일이지만, 애플이기에 놀랍지 않습니다. 마이크로소프트가 윈도우 95 시절에 서드파티 브라우저의 성능을 제한하는 비슷한 시도를 했던 것이 떠오릅니다(물론 정확히 같은 일은 아니었지만). 당시에는 넷스케이프(현재는 모질라 파이어폭스로 잘 알려져 있습니다)가 주류였습니다. 마이크로소프트는 법원과 웹 개발자들로부터 강한 비난을 받았습니다.

이상적이지는 않겠지만, 웹사이트 브라우저 같은 것을 중개자로 사용할 수 있는 아이디어는 없을까요? 사람들이 토르(Tor)를 사용하는 방식처럼요.

이 경우 호환성 레이어로 사용할 수 있을까요?

Apple은 iOS의 모든 브라우저가 Apple WebKit을 사용하도록 요구합니다.

Discourse 소스를 조정하여 로그인만 허용하고 읽기 전용으로 설정할 수 있을 것 같습니다(브라우저가 처리할 수 없는 요소가 표시되는 것을 방지하기 위해 읽기 전용이 필수적인 것으로 보이기 때문입니다).

정말 안타까운 것은 애플이 고객들에게 업그레이드를 강요하려는 의도를 가지고 있다는 점입니다. 안드로이드는 때때로 귀찮을 수 있지만, 선택지는 존재합니다.

iDevice 생태계에 끌려 들어가지 않아서 다행입니다. 그리고 이 경우, 사용자들이 노후화된 기기에 리눅스 OS를 설치하려고 하기에는 아마도 너무 번거로울 것입니다. 애플은 사실 사용자 친화적이지 않기 때문입니다.

음, 후방 호환성 문제는 꽤 자주 논의되지만, 결국 불가능합니다. 브라우저/OS가 수명 종료(지원 종료)된 경우, Discourse가 제공하는 것은 제한된 기능의 읽기 전용 모드뿐입니다.

누군가 그런 계층을 코딩할 수 있다면 좋겠지만, CDCK가 이를 지원하지 않는다는 점은 확신합니다. 애플 모바일 기기의 탈옥(jail breaking)과 비슷한 상황이죠 :wink:

@codev 현재 "전체 기능"을 지원하기 위한 최소 브라우저 요구 사항은 무엇인가요? (이 정보가 어디에 게시/공개되어 있는지 확실하지 않아 죄송합니다)

자, 이제 이 스레드에서 공식적인 *‘Apple에 대한 불만’*과 *‘그들이 최악’*이라는 부분이 잘 드러났으니, 지원되는 하위 호환성(backward compatibility) 정책이 무엇인지 궁금해집니다. 대부분의 제품 팀, 아니 거의 모든 팀이 하위 호환성 정책을 공개하고 있으며, 어떤 팀은 다른 팀보다 더 관대하기도 합니다. 다행히 기술은 전진하지만, 불행히도 이는 대부분의 기술에 유용한 수명의 만료일을 부여하게 됩니다.

@codev 님이 제기한 문제에 관해서도, 저도 곧 Discourse를 배포하려 하고 있지만 일부 사용자는 오래된 기기를 사용 중일 수 있다는 점을 고려해야 하므로 궁금합니다. @Ed_S 님이 암시한 대로, 이는 제가 다른 대안을 찾아봐야 할지 고려해야 할 사항일 수 있습니다.

개인적으로는 5년 이상 된 기술을 사용하고 있으며, 제 가족 중에도 좀 더 오래된 기기를 사용하는 사람이 있습니다. 저만 그런 것은 아닐 거라고 생각합니다. Apple의 공을 인정하자면, 그들의 하드웨어는 견고합니다(이는 소프트웨어 지원이 종료된 후에도 오랫동안 잘 작동한다는 의미입니다) 그리고 일반적으로 하위 호환성에 대해 관대한 지원을 제공합니다.

소프트웨어와 보안 프레임워크는 끊임없이 발전하고 있으며, 요즘에는 그 속도가 더욱 빨라지고 있습니다. 많은 요소가 상호 의존적이기 때문에 업그레이드가 요구됩니다. 보안을 위한 업그레이드는 이해하지만, 특정 버전이 더 이상 "출시되지(shipping) 않는다"는 이유로 지원을 중단한다고 해서 해당 기술을 여전히 사용하는 사용자가 없다는 의미는 아닙니다.

누군가 "에이, 1993년 비-SSL 브라우저를 사용하는 클라이언트를 지원해야 해"라고 주장한다면, 그건 터무니없다고 동의합니다. 하지만 N-1 버전(예: 지난 18개월간 출시된 것)만 사용 가능하다고 말하는 것은, 모든 사람이 6개월마다 업그레이드하는 것은 아니기 때문에 문제가 됩니다.

예를 들어 Firefox는 구형 플랫폼을 위해 ESR(Extended Supported Releases, 확장 지원 릴리스)을 제공합니다. 이는 Firefox와 ESR이 필요한 사용자에게 좋은 일입니다. 하지만 Discourse와 같은 벤더가 미리 정의된/하드코딩된 최소 버전 문자열과 브라우저 버전 번호가 일치하지 않는다는 이유로 무언가를 지원하지 않는다면 그건 무의미해집니다. 필수적인 프레임워크가 있다면 그건 별개의 문제이지만, 단순히 "버전 1은 2와 같지 않다"고 해서 다른 부분에서는 잘 작동하는데도 그렇게 된다면 정말 안타까운 일입니다. 저는 이전 버전을 지원하지 않는 이러한 무관심함을 점점 더 많이 보고 있습니다. 이는 실망스러운 추세입니다. 80년대 후반부터 90년대 사이에 태어나 현재 엔지니어로 활동하고 있는 사람들은 "항상 업그레이드해야 한다"는 문화 속에서 성장했습니다.

여기서 약간 주제를 벗어났다는 것을 알고 있으며, 예술적 허용을 허락해 주셔서 감사합니다. @codev 님의 원래 질문에서 시선을 잃고 싶지 않습니다. 이는 중요하며, 특히 Discourse가 커뮤니케이션과 커뮤니티에서 그렇게 의미 있는 목적을 제공하는 상황에서 더욱 그렇습니다.

아마도 로그인, DM, 그리고 아마도 Discourse API를 통한 답변 기능을 지원하는 매우 단순화된 UI를 코딩하여, 다른 서브도메인(또는 동일한 도메인에서 몇 가지 영리한 nginx 규칙을 사용하는 경우)에서 제공할 수 있을 것입니다.

이렇게 하면 오래된 기기에서도 기본적인 기능을 유지하면서 Discourse의 최신 업데이트를 계속 따라갈 수 있습니다.

음, 내 질문에 대한 답을 찾았네요.

“Discourse는 향후 10년간의 인터넷을 위해 설계되었으므로, 최소 브라우저 요구 사항이 높습니다.”

시간 여행기를 개발하고 있는 게 아니라면 이 메시지가 무슨 뜻인지 잘 모르겠습니다. 2030년 대다수 사용자는 현재 이 제품을 사용하지 않을 거라고 예상하는데, 혹시 제가 무언가를 놓치고 있는 걸까요?

수정:
@Canapin 브라우저 지원 정책은 무엇인가요? 현재 안정 버전 - 2(N-2), N-1, 아니면 "최신 버전"만 지원하나요?

여기서 강조된 보안 문제는 Discourse 사용 자체보다는 사용자 측에서 더 우려하는 부분인 것 같습니다. 6년간 거의 변하지 않은 핵심 JS 라이브러리가 지원하지 않는 것을 Discourse가 요구할 수는 없지 않나요? 이러한 오래된 기기에서도 웹 브라우저를 통한 Gmail은 문제없이 잘 작동합니다. 보안 문제는 위에서 이미 언급했으므로 생략합니다.

안녕하세요, @codev,

더 좋은 상황에서 커뮤니티에 오신 것을 환영할 수 있었으면 좋았을 텐데요.

제 말이 다소 공허하게 들릴 것 같지만, 지금 느끼시는 좌절감을 충분히 이해합니다.

소프트웨어 진화 과정에는 본질적인 문제가 존재하며, 사람들은 흔히 “이 소프트웨어는 제 폰을 더 이상 지원하지 않는데, 비슷한 다른 소프트웨어는 지원하네요. 왜 그런가요?”라고 묻곤 합니다. 불행히도 이에 대한 쉬운 답은 없습니다.

커뮤니티가 고통받고 있다는 점을 잘 알고 있습니다. 지원 시스템에서 단절될 가능성에 대해 회원분들이 느끼는 고통과 비통을 우리는 분명히 볼 수 있습니다.

컴퓨터를 쓰러기 위해 도서관에 가야 하는 것은, 필요할 때마다 지원 네트워크에 접근하는 것을 대체할 수 없으며, 공공 공간에서 사용하는 것과 자기 집의 편안함과 프라이버시 속에서 공유하고 기여하는 것 사이에는 큰 차이가 있습니다.

온라인 토론을 모든 사람에게 더 쉽게 만들고 그 토론을 장기적으로 보존하는 것이 우리의 사명인 상황에서, 이는 우리에게 큰 걱정거리입니다.

우리는 여러분과 마찬가지로, 사람들이 기기가 완전히 고장 날 때까지 사용하지 못하게 되는 상황에 좌절감을 느낍니다. 그러나 아이폰과 같은 블랙박스 기기는 벤더가 계속 지원하고 업데이트를 제공하지 않으면 사용하는 것이 능동적으로 위험할 수 있습니다. 현재 애플은 가장 심각한 iOS 12 취약점에 대해서만 매우 제한적인 업데이트를 제공하고 있으며, Safari는 이미 수년 전 버전으로 구식이 되었습니다.

우리는 이러한 중대한 선택 사항들을 내부적으로 장시간 논의합니다. 시간이 지나면서 유지보수가 엄청나게 복잡해지는 기술적 도전이 될 때까지 가능한 한 오래 지원하기 위해 최선을 다합니다. 보안 기준이나 사용 편의성을 희생하지 않으면서도 대부분의 커뮤니티에 가장 잘 작동하도록 이러한 선택을 균형 있게 맞추는 것은 쉬운 일이 아닙니다.

불행히도 이러한 선택에는 모두 단점이 있으며, 여러분의 메시지는 우리가 최대한 피하고 싶은 문제들의 고통스럽고도 솔직한 사례입니다.

우리는 단순히 발을 빼는 것은 할 수 없지만, 이 문제에 대해 내부적으로 계속 논의할 것입니다. Discourse는 더 이상 일부 기기에서 작동하지 않으며, 시간이 지나면 다시 이런 일이 발생할 것입니다. 참고로 우리는 이미 iOS 12에 대한 지원을 1년 연장했으며, 지원이 곧 종료될 것이라고 사용자들에게 경고하기 위해 최선을 다했습니다.

여전히 남아 있는 질문은 이렇습니다: 포럼에 접근하고 참여해야 하는 회원들을 위해 이 문제를 어떻게 해결할 수 있을까요?

먼저, 여러분의 커뮤니티 내 기기 사용 현황(구체적인 모델 정보 포함)을 최대한 파악해 주시어 우리에게 이해를 도와주시겠습니까?

공식적으로,

Discourse는 모든 주요 브라우저 및 플랫폼의 최신 안정판 릴리스를 지원합니다:

  • Microsoft Edge
  • Google Chrome
  • Mozilla Firefox
  • Apple Safari

또한, iOS 15.7+의 Safari를 지원하는 것을 목표로 합니다.

What is Discourse? | Discourse - Civilized Discussion 에서 가져왔습니다.

이 내용을 확장하여 덧붙이자면, "Discourse는 이 브라우저 버전 또는 그 이상을 지원합니다"라고 해서 이전 버전의 브라우저가 작동하지 않는다는 뜻은 아닙니다. 다만, 작동이 보장되지 않으며, 어떤 시점에 작동을 멈출 수 있습니다.

마지막 줄:

또한 iOS 15.7+에서 Safari를 지원하도록 하겠습니다.

이는 최신 버전이 16.3.x이므로 최소한 N-1, 또는 (iOS의 경우) N-2를 의미할 것입니다.

이러한 지원 선언의 문제는, “기술적으로 호환되는” 클라이언트를 가진 사용자의 상당한 부분을 소외시킬 수 있다는 점입니다. 그러나 Discourse는 테스트를 보장하지 않습니다. @Canapin이 지적했듯이, *“그것은 단순히 보장되지 않으며, 언젠가 작동하지 않을 수 있습니다.”*는 '책임은 사용자에게 있다’는 것을 표현하는 한 가지 방식입니다. 이는 웹 앱이 클라이언트 버전을 확인하고 UI 요소를 사용하여 호환되지 않음을 전달하는 것과도 다릅니다. 심지어 더 나쁜 경우, “그냥 작동할” 수 있는 기능을 제한할 수도 있는데, 그 이유는 더 이상 QA나 회귀 테스트를 받지 않고 *“이제 아무도 이것을 테스트하지 않으며, 그렇게 할 여유도 없다”*는 명목으로 비추천(deprecated)되고 있기 때문입니다.

적용 가능한 대부분의 경우 N-2를 지원할 수 있다면, 잠재적인 “웹 클라이언트” 사용자 기반의 거의 80%를 지원하는 좋은 기회가 될 것입니다. N-2의 경우, iOS에서는 Safari 14 / iOS 14를 지원하는 것을 의미합니다.

"지원(support)"이라는 단어가 트리거라면, 문제가 발생하면 지원되는 클라이언트로 업그레이드해 주세요라는 단서 조건을 붙여 N-2를 허용할 수 있다면, 아마도 많은 것들이 여전히 "그냥 작동"할 것입니다. 가장 선호하는 경험(UI 렌더링 등)은 아닐 수 있지만, 적어도 사용을 차단당하지는 않을 것입니다. 결국 이것은 게시판(bulletin board)이지, Microsoft Office 365가 아닙니다. (Discourse 팀에 대한 악의는 없습니다!)