https://github.com/zenqos/zenqo
A return-value-based Go web framework for building clean, scalable server-side applications.
https://github.com/zenqos/zenqo
chi go golang rest-api web-framework
Last synced: 2 months ago
JSON representation
A return-value-based Go web framework for building clean, scalable server-side applications.
- Host: GitHub
- URL: https://github.com/zenqos/zenqo
- Owner: zenqos
- License: mit
- Created: 2026-02-20T07:27:15.000Z (3 months ago)
- Default Branch: develop
- Last Pushed: 2026-03-25T12:44:30.000Z (2 months ago)
- Last Synced: 2026-03-25T17:12:11.039Z (2 months ago)
- Topics: chi, go, golang, rest-api, web-framework
- Language: Go
- Homepage: https://pkg.go.dev/github.com/zenqos/zenqo
- Size: 366 KB
- Stars: 1
- Watchers: 0
- Forks: 2
- Open Issues: 10
-
Metadata Files:
- Readme: README.ko.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
English | 한국어
반환값 기반의 Go 웹 프레임워크 — 깔끔하고 확장 가능한 서버 사이드 애플리케이션 구축을 위해
## 소개
Zenqo는 효율적이고 유지보수하기 쉬운 Go 웹 애플리케이션을 위한 프레임워크입니다. 핸들러는 `http.ResponseWriter`에 직접 쓰는 대신 `(data, error)`를 반환하고, 프레임워크가 JSON 직렬화, 상태 코드, 에러 응답을 자동으로 처리합니다.
내부적으로 chi를 라우터로 사용합니다.
## 철학
핸들러는 `(data, error)`를 반환하는 순수 함수입니다. 프레임워크가 JSON 직렬화, 상태 코드, 에러 응답을 처리하므로 코드는 비즈니스 로직에만 집중할 수 있습니다.
```go
// Zenqo
func getUser(r *http.Request) (any, error) {
user, err := svc.FindByID(id)
if err != nil {
return nil, core.ErrNotFound("user not found")
}
return user, nil
}
```
## 시작하기
```bash
go install github.com/zenqos/zenqo/cmd/zenqo@latest
zenqo new my-app
cd my-app && go run .
```
→ 전체 가이드: [시작하기](./docs/getting-started.ko.md)
## 주요 기능
- **반환값 핸들러** — `(any, error)` 시그니처, JSON 및 상태 코드 자동 처리
- **컨트롤러** — `BaseController`로 라우트를 기본 경로 아래에 묶기
- **Bind & Validate** — `Bind[T]`로 JSON 디코딩과 유효성 검사를 한 번에
- **가드 & 인터셉터** — 라우트, 컨트롤러, 전역 수준의 접근 제어
- **에러 처리** — 패닉 복구, 타입 에러, 커스터마이즈 가능한 에러 핸들러
- **자동 camelCase** — `json` 태그 없이도 camelCase JSON 직렬화
- **내장 미들웨어** — CORS, 보안 헤더, 요청 ID, 패닉 복구
## 예제
- [`examples/basic`](./examples/basic) — 컨트롤러 없이 직접 라우트 등록
- [`examples/crud`](./examples/crud) — 컨트롤러 + 서비스 패턴의 CRUD API
- [`examples/auth`](./examples/auth) — 가드, 인터셉터, Bind+Validation을 활용한 JWT 인증
## 문서
| 주제 | EN | KO |
|------|----|----|
| 시작하기 | [→](./docs/getting-started.md) | [→](./docs/getting-started.ko.md) |
| 컨트롤러 | [→](./docs/controllers.md) | [→](./docs/controllers.ko.md) |
| 요청 바인딩 | [→](./docs/request-binding.md) | [→](./docs/request-binding.ko.md) |
| 에러 처리 | [→](./docs/error-handling.md) | [→](./docs/error-handling.ko.md) |
| 가드 & 인터셉터 | [→](./docs/guards-interceptors.md) | [→](./docs/guards-interceptors.ko.md) |
| 미들웨어 | [→](./docs/middleware.md) | [→](./docs/middleware.ko.md) |
| OpenAPI | [→](./docs/openapi.md) | [→](./docs/openapi.ko.md) |
- [CHANGELOG](./CHANGELOG.md) — 버전 히스토리
- [pkg.go.dev](https://pkg.go.dev/github.com/zenqos/zenqo) — API 레퍼런스 (GoDoc)
## 기여자

ftery0
💻

Raghu :)
💻

aicontentcreate2023-star
💻
## 기여하기
기여를 환영합니다! PR 제출 전에 [기여 가이드](CONTRIBUTING.md)를 읽어주세요.
## 보안
보안 취약점 발견 시 **공개 이슈를 열지 마세요**. [보안 정책](SECURITY.md)의 안내에 따라 신고해주세요.
## 연락처
- 작성자 — [@ftery0](https://github.com/ftery0)
## 라이선스
Zenqo는 [MIT 라이선스](LICENSE)를 따릅니다.