Hasura란?
Hasura는 GraphQL 기반의 실시간 API 생성 엔진으로, 데이터베이스에서 자동으로 GraphQL API를 생성해주는 도구입니다. 특히 PostgreSQL과 잘 연동되며, 최소한의 설정만으로 강력한 CRUD API 및 실시간 데이터 쿼리 기능을 제공할 수 있습니다.
🔹 주요 특징
- 자동 GraphQL API 생성
- PostgreSQL, MySQL, SQL Server 등의 데이터베이스에서 자동으로 GraphQL API를 생성함.
- REST API를 따로 개발할 필요 없이 빠르게 백엔드 구축 가능.
- 실시간 데이터 처리 (Subscriptions)
- GraphQL의
subscriptions
기능을 기본적으로 지원하여, 데이터 변경 시 자동으로 프론트엔드에 반영됨. - WebSocket을 활용하여 실시간 데이터 업데이트 가능.
- GraphQL의
- 권한 및 인증 관리
- Role 기반의 권한 시스템 제공 (RBAC, JWT, Webhook 인증 지원).
- 특정 사용자에게만 특정 데이터 접근 권한을 설정할 수 있음.
- REST API 변환 지원
- 기존 REST API를 GraphQL로 변환하여 사용할 수 있음.
- 서버리스(Serverless) 및 확장성
- 클라우드 기반 서비스 (Hasura Cloud) 또는 온프레미스(자체 서버)에 설치 가능.
- AWS Lambda, Firebase Functions, Supabase 등과 쉽게 연동 가능.
- Low-Code/No-Code 개발 지원
- 별도의 API 개발 없이, 웹 UI에서 간단한 설정만으로 빠르게 GraphQL API를 생성할 수 있음.
🔹 기본 사용법
1. Docker로 Hasura 실행하기
docker run -d --name hasura \
-p 8080:8080 \
-e HASURA_GRAPHQL_DATABASE_URL=postgres://user:password@host:port/dbname \
hasura/graphql-engine:latest
http://localhost:8080
에서 Hasura 콘솔 UI 사용 가능.
2. GraphQL 쿼리 예제
query {
users {
id
name
email
}
}
users
테이블의 모든 데이터를 조회하는 GraphQL 쿼리.
3. 실시간 구독 (Subscription)
subscription {
messages {
id
text
created_at
}
}
messages
테이블에서 새로운 메시지가 추가되면 실시간으로 반영.
🔹 Hasura vs 기존 백엔드 개발 방식
비교 항목 | Hasura | 기존 REST API 개발 |
---|---|---|
개발 속도 | 빠름 (자동 API 생성) | 느림 (수동 개발 필요) |
실시간 데이터 | 기본 제공 | WebSocket 직접 구현 |
보안 및 권한 | UI에서 간단히 설정 | API마다 수동 설정 |
확장성 | 서버리스 지원 | 서버 부하 관리 필요 |
➡️ Hasura는 빠른 API 개발과 실시간 데이터 처리가 필요한 프로젝트에 적합! 🚀
'TIL' 카테고리의 다른 글
[250313 TIL] 마이크로프론트엔드(딥리서치) (0) | 2025.03.13 |
---|---|
[250310 TIL] post-commit (0) | 2025.03.11 |
[250225 TIL] n8n 이란?(GPT질의) (0) | 2025.02.25 |
[250222 TIL] rebase, merge 비교 (0) | 2025.02.22 |
[250221 TIL] Number.EPSILON (0) | 2025.02.21 |