프로젝트 소개

Fiber는 Go용 웹 프레임워크로, Express를 영감으로 하여 Fasthttp(고의 HTTP 엔진) 기반으로 설계되었습니다. 서버 개발을 빠르게 하되 메모리 할당을 낮고 성능을 높이려는 목표를 가지고 있습니다. README에 설명된 주요 기능: - 라우팅: 와일드카드, 이름 지정, 선택적 및 다중 매개변수 라우트를 지원하며, 라우트 이름 지정 및 검색 기능이 있습니다. - 정적 파일 제공: 디렉토리나 단일 파일을 제공하고, 일치하지 않는 경로에 대해 인덱스 파일로 대체합니다. - 미들웨어 및 Next: 전역 및 경로 범위의 미들웨어를 통해 c.Next()로 체이닝합니다. - 내장 미들웨어: 로거, CORS, 복구, 레이트 제한기 등이 있으며, 내부 미들웨어 표에 더 많은 항목이 나와 있습니다. - 템플릿 엔진: 기본적으로 html/template을 사용하며, gofiber/template 패키지를 통해 Pug, Handlebars, Mustache 및 Amber와 같은 외부 엔진을 지원합니다. - 경로 그룹화: 공유 접두사와 미들웨어를 가진 체인으로 경로를 그룹화합니다. - JSON 응답: 구조체와 맵을 JSON으로 반환하는 도구가 있습니다. - WebSocket 및 Socket.io 지원은 contrib 패키지를 통해 제공됩니다. - 서버 전송 이벤트: 청크 전송을 사용하여 이벤트 데이터 스트리밍 예시가 제공됩니다. - 신뢰할 수 있는 프록시 구성: 구성 가능한 프록시 헤더 및 신뢰할 수 있는 프록시 범위가 있습니다. - net/http 호환성: 라우터는 표준 net/http 핸들러를 직접 수락하며, 어댑터 미들웨어를 통해 앱 또는 미들웨어 체인을 양방향으로 연결할 수 있습니다. - Express 스타일 핸들러: 두 인수 요청/응답 핸들러와 next 콜백이 있는 세 인수 미들웨어를 적응시킵니다. 설치에는 Go 1.26 이상이 필요합니다. 패키지는 go get github.com/gofiber/fiber/v3 명령어로 설치됩니다. 최소 예제는 앱을 초기화하고, 문자열을 반환하는 GET 경로를 정의한 후 포트 3000에서 수신합니다. README는 Fiber에서 반환된 fiber.Ctx 값이 기본적으로 불변이 아니며, 요청 간에 재사용되므로, 컨텍스트 값은 핸들러 내에서만 사용해야 하며 보관해서는 안 된다고 지적합니다. 또한, unsafe 사용으로 인해 라이브러리가 항상 최신 Go 버전과 호환되지 않을 수 있다고 언급합니다. 성능 테스트는 TechEmpower에서 참조되며, 차트와 위키에 대한 링크가 제공됩니다.