Hono로 REST API 시작하기 — 가벼운 서버 프레임워크가 주는 감각

Hono를 왜 로드맵 초반에 배우면 좋은지 설명하고, 가벼운 라우팅과 JSON 응답 예제로 REST API의 최소 골격을 익힌다.

Seobway · · 10분

이 시리즈 구성

포스트 내용
로드맵 인덱스 → 01~19 전체 학습 경로
02-1. Node.js · Bun · Deno → 서버 JavaScript 런타임 비교
02-2. HTTP 메서드와 상태 코드 → REST API의 기본 언어
02-3. Hono로 REST API 시작하기 → 경량 서버 프레임워크 실습
02-4. SQL JOIN · WHERE · HAVING · GROUP BY → 쿼리 결과 예측과 집계

왜 Hono를 초반 실습 프레임워크로 고르는가

서버를 처음 배울 때는 프레임워크가 너무 무거우면 핵심이 흐려진다.

지금 단계에서 중요한 것은:

Hono는 이 최소 골격을 보기 좋게 보여 준다.[1]


가장 작은 예제

import { Hono } from 'hono'

const app = new Hono()

app.get('/posts', (c) => {
  return c.json([
    { id: 1, title: '첫 글' },
    { id: 2, title: '둘째 글' },
  ])
})

app.get('/posts/:id', (c) => {
  const id = c.req.param('id')
  return c.json({ id, title: '단건 조회 예제' })
})

app.post('/posts', async (c) => {
  const body = await c.req.json()
  return c.json({ message: '생성 완료', body }, 201)
})

export default app

여기서 바로 보이는 것이 서버의 기본 구조다.


Hono가 좋은 이유

1. 라우팅이 눈에 잘 들어온다

app.get('/users', ...)
app.get('/users/:id', ...)
app.post('/users', ...)
app.patch('/users/:id', ...)
app.delete('/users/:id', ...)

REST 감각을 익히기에 좋다.

2. 여러 런타임과 잘 연결된다

Hono는 Node.js, Bun, Deno, Cloudflare Workers 같은 여러 환경에서 사용할 수 있다. 그래서 "런타임이 바뀌어도 서버의 핵심 구조는 비슷하다"는 점을 배우기 좋다.

3. 초반에 필요한 만큼만 보인다

무거운 설정 파일보다, 요청과 응답 자체에 집중하기 쉽다.


HTTP 기초와 함께 봐야 한다

Hono를 먼저 외우기보다, HTTP 메서드와 상태 코드 기초 →와 함께 보는 편이 좋다.

예를 들어:

이 의미를 알고 Hono 라우트를 보면, 프레임워크 문법이 아니라 HTTP 약속을 코드로 옮긴 것처럼 읽힌다.


초반 실습 아이디어

처음에는 DB까지 붙이지 말고 메모리 배열로만 시작해도 충분하다.

const posts = [
  { id: 1, title: '첫 글' },
  { id: 2, title: '둘째 글' },
]

이 상태로 다음을 연습하면 된다.


마치며

Hono는 초반에 서버의 본질을 보기 좋게 해 주는 도구다.

요청, 라우트, 상태 코드, JSON 응답이라는 최소 단위를 선명하게 보여 주기 때문에, 백엔드 기초를 잡는 단계에서 좋은 연습장이 된다.

조금 더 깊게 보기

Hono를 배우는 진짜 이유

Hono 자체를 깊게 외우는 것이 목표는 아니다. Hono는 HTTP 서버의 뼈대를 작고 선명하게 보여 주기 때문에 입문용으로 좋다. 요청을 받고, 경로를 나누고, body를 읽고, JSON과 상태 코드를 반환하는 흐름이 숨겨지지 않는다.

프레임워크보다 먼저 봐야 할 것

app.get('/posts')는 Hono 문법이면서 동시에 HTTP 설계다. 이 라우트가 어떤 리소스를 다루는지, 어떤 상태 코드를 반환하는지, 실패하면 어떤 JSON을 내려주는지를 같이 봐야 한다.

실무 확장 방향

처음에는 메모리 배열로 CRUD를 만든다. 그 다음 validation을 붙이고, DB를 붙이고, 인증 미들웨어를 붙인다. 마지막으로 에러 핸들링을 공통화한다.


참고

  1. [1] Hono Docs — Getting Started
  2. [2] Hono Docs — Routing

관련 글