개념
Postman을 배웠다면 이미 90%는 안다
모듈 12(레슨 2)에서 Postman으로 요청을 만들고, 어서션을 쓰고, 컬렉션으로 묶는 법을 배웠다. Insomnia는 그 개념을 그대로 가진 다른 화면 이다. 요청 하나는 여전히 메서드·URL·헤더·본문으로 구성되고, 환경(Environment)에 변수를 정의해 재사용하며, 응답을 검증하는 테스트를 붙일 수 있다.
그래서 이 레슨의 목표는 "새 도구를 배우는 것"이 아니라, 모듈 12의 개념이 도구를 갈아타도 살아남는다는 것을 직접 확인하는 것이다.
요청 만들기 — Postman 예시를 그대로 옮기면
모듈 12(레슨 2)에서 만들었던 주문 생성 요청을 Insomnia에서 만들면 이렇게 된다.
메서드: POST
URL: https://api.example.com/orders
헤더: Authorization: Bearer {{ _.token }}
본문(JSON):
{
"productId": "P001",
"quantity": 2,
"couponCode": "SAVE10"
}거의 똑같다. 다른 건 변수 표기 하나뿐이다 — Postman이 {{token}}
이라고 쓰는 자리를 Insomnia는 {{ _.token }}으로 쓴다. 환경에
token 값을 정의해두고 개발·스테이징 환경을 전환하며 같은 요청을
재사용하는 방식은 동일하다.
응답 검증도 자바스크립트로 작성한다는 점이 같다.
// Insomnia의 After-response 스크립트
const body = insomnia.response.json();
insomnia.test("상태 코드는 201이다", () => {
insomnia.expect(insomnia.response.code).to.equal(201);
});
insomnia.test("응답에 주문 ID가 포함된다", () => {
insomnia.expect(body).to.have.property("orderId");
});pm. 이 insomnia. 으로 바뀐 것 말고는 구조가 같다. 모듈 10(레슨
1)의 AAA 패턴 중 Assert 단계를 표현한 코드라는 사실도 변하지 않는다.
그럼 무엇이 다른가
| Postman | Insomnia | |
|---|---|---|
| 라이선스 | 상용(무료 플랜 제한 있음) | 오픈소스 코어 + 상용 플랜 |
| 무게감 | 기능이 많은 만큼 무겁고 느려질 수 있음 | 미니멀한 UI, 실행이 가볍다 |
| 협업 기능 | 팀 워크스페이스가 강점 | 상대적으로 단출함 |
| GraphQL | 나중에 보강됨 | 초기부터 1급 지원 |
| 스펙 문서화 | 별도 기능으로 분리 | Design 탭에 내장 |
GraphQL — Insomnia가 먼저 잘했던 영역
모듈 12(레슨 6)에서 GraphQL은 하나의 엔드포인트로 원하는 필드만 골라 받는 구조라고 배웠다. Insomnia는 요청 타입을 GraphQL로 선택하면 서버 스키마를 자동으로 읽어와 쿼리를 쓰는 동안 필드를 자동완성 해준다. 존재하지 않는 필드를 요청하면 보내기 전에 표시해주므로, "오타 때문에 실패한 것인지 서버가 잘못된 것인지"를 구분하는 시간이 줄어든다.
Design 탭 — OpenAPI 스펙이 곧 화면이 된다
모듈 12(레슨 4)에서 OpenAPI 스펙과 실제 동작이 일치하는지 검증하는 계약 테스트를 배웠다. Insomnia의 Design 탭은 그 스펙(YAML)을 편집기에 붙여넣으면 왼쪽에 스펙, 오른쪽에 사람이 읽는 문서 형태로 보여주고, 문법 오류(린트)도 즉시 잡아준다. 그 스펙에서 요청 묶음을 곧바로 생성할 수도 있다.
즉 "스펙 작성 → 문서 확인 → 요청 실행"이 한 창 안에서 이어진다. 계약 테스트를 배운 사람에게는 스펙이 종이 문서가 아니라 실행 가능한 출발점이라는 감각을 익히기 좋은 화면이다.
무료로 어디까지 되는가
Postman 무료 플랜은 협업(팀원 수, 컬렉션 실행 횟수) 쪽에 제한이 걸린다. 반면 Insomnia는 코어가 오픈소스라 혼자 또는 소규모 팀이 로컬에서 쓰는 범위에서는 사실상 제한 없이 쓸 수 있다. 학습용이나 개인 사이드 프로젝트에서는 이 점이 실질적인 장점이 된다.
실무에서 왜 필요한가
입사한 팀이 이미 Insomnia를 쓰고 있는 경우는 드물지 않다. 그때 "저는 Postman만 써봤는데요"라고 멈추지 않고, 하루 안에 적응해 요청을 만들 수 있어야 한다. 도구가 바뀌어도 검증해야 할 것(상태 코드, 응답 본문, 값)은 그대로이기 때문에, 실제로 새로 익힐 것은 화면 위치와 변수 문법 정도다.
또 사내 API 문서가 OpenAPI 스펙으로만 관리되는 팀이라면, Design 탭에서 스펙을 열어보는 것만으로 QA가 명세를 빠르게 파악할 수 있다.