1P by neo 2023-10-17 | favorite | 댓글 1개
  • Go 1.22의 net/http 패키지 내 기본 HTTP 서빙 멀티플렉서의 패턴 매칭 기능 향상에 대한 기사
  • 기존 멀티플렉서(http.ServeMux)는 기본 경로 매칭을 제공하여, 고급 기능을 위해 3rd party 라이브러리 사용이 필요했음
  • Go 1.22의 새로운 멀티플렉서는 고급 매칭을 제공하여 3rd party 패키지와의 격차를 줄임
  • 새로운 멀티플렉서(mux)는 패턴의 일부로 HTTP 메소드를 명시적으로 지정하고, 경로 구성 요소에서 와일드카드 매칭을 지원함
  • 기사에서는 새로운 mux 사용 예시를 제공하며, 다른 패턴 간의 잠재적 충돌 처리를 포함함
  • 새로운 ServeMux 문서는 패턴과 잠재적 충돌에 대한 우선순위 규칙을 설명함
  • 기사는 또한 Go에서의 REST 서버 시리즈의 예시를 재검토하며, 새로운 stdlib mux가 gorilla/mux에 비해 어떻게 나타나는지 비교함
  • Go 1.22의 새로운 mux는 더욱 정교한 라우팅을 가능하게 하여, 핸들러 내에서의 라우팅 결정 필요성을 줄임
  • 저자는 Go 1.22의 향상된 기능이 "어떤 라우터 패키지를 사용해야 할까?"라는 질문에 대한 일반적인 답변을 바꿀 것이라고 믿음. 많은 사람들이 새로운 stdlib mux가 그들의 필요에 충분하다고 생각할 것임
  • 그러나, 일부 Go 프로그래머들은 여전히 3rd party 패키지나 Gin과 같은 경량 프레임워크를 선호할 수 있음. 이들은 라우터와 웹 백엔드 구축을 위한 추가 도구를 제공함
  • 전반적으로, 저자는 Go 1.22의 향상된 기능을 모든 Go 사용자에게 긍정적인 변화로 보며, 표준 라이브러리를 더욱 유능하고 커뮤니티 전체에 이로운 것으로 만듦
Hacker News 의견
  • Go 1.22의 새로운 HTTP 서버 라우팅에 대한 기사.
  • 두 라우트가 일치할 때 발생하는 패닉을 이해하기 어려워하는 사용자들, 대부분의 웹 프레임워크는 일치하는 첫 번째로 등록된 라우트를 사용함.
  • gorrila/mux 프로젝트의 보관 및 해제가 혼란을 일으킴, 그러나 일부는 이를 오픈 소스 프로젝트의 안정성을 입증하는 것으로 본다.
  • 제안된 구문에 대한 비판, 핸들러를 정의하기 위해 마법의 문자열을 생성하는 대신 실제 인수를 사용하는 것을 제안하는 일부 사람들.
  • 문자열화된 메소드 접두사의 사용을 싫어하는 사용자들, 동사 특정 메소드의 타입 안전성을 선호함.
  • 라우트가 일치하지만 메소드가 일치하지 않을 때 어떤 일이 발생하는지에 대한 궁금증, 답은 적절하게 채워진 허용 헤더와 함께 405임.
  • 고급 요구 사항이 있는 사용자들은 기본 서브 먹스를 사용하지 않고 다른 옵션을 고려하거나 자신의 라우터를 작성해야 한다는 제안.
  • 겹치는 경로가 정의된 순서대로 일치하는 것을 선호, 패닉보다는.
  • 제안을 싫어하는 사용자들, 특히 URI에 HTTP 요청 방법을 포함하는 것.
  • 주소가 접두사일 때 모든 것을 처리하는 기본 ServeMux에 대한 비판, 정확한 일치를 처리하는 쉬운 방법이 없음.
  • 그러나 일부 사용자들은 새로운 라우팅을 긍정적인 변화로 보며, 외부 종속성을 줄이고 생산성을 높인다.