yozm.tech
피드로 돌아가기
Hacker News (Top)HOTAI 재작성

curl 없이 Bash로 HTTP 요청 보내는 법

Bash 셸의 숨겨진 기능인 /dev/tcp를 활용하면 curl이나 wget 같은 도구 없이도 HTTP 요청을 보낼 수 있습니다. 이는 최소한의 컨테이너 환경에서 서비스 간 연결 상태를 확인하거나 간단한 디버깅을 할 때 유용합니다. 복잡한 기능은 없지만, 기본 셸만으로 TCP 소켓 통신이 가능하다는 점이 핵심입니다.

10시간 전·2026.06.16·읽기 2·mrshu

Bash 셸에 내장된 특별한 기능인 /dev/tcp를 사용하면 curl이나 wget과 같은 외부 도구 없이도 HTTP 요청을 직접 보낼 수 있습니다. 이는 특히 용량을 극도로 줄인 컨테이너 이미지처럼 외부 패키지 설치가 어려운 환경에서, 다른 서비스와의 네트워크 연결 상태를 확인하거나 간단한 API 호출을 테스트할 때 매우 유용합니다.

이 기능은 실제 파일 시스템에 존재하는 /dev/tcp 디렉토리가 아니라, Bash 셸이 내부적으로 TCP 소켓 통신을 처리하기 위해 제공하는 가상 경로입니다. `exec 3<>/dev/tcp/호스트/포트` 명령을 통해 특정 호스트와 포트로 TCP 연결을 열고, 이 연결에 파일 디스크립터(예: 3)를 할당합니다. 이후 `printf` 명령으로 HTTP 요청 헤더와 본문을 직접 작성하여 이 파일 디스크립터로 전송하고, `cat <&3` 명령으로 서버의 응답을 읽어올 수 있습니다. 예를 들어, `GET /health HTTP/1.1\r\nHost: service\r\nConnection: close\r\n\r\n`와 같은 형태로 요청을 구성하여 보낼 수 있습니다. 이때 `Connection: close` 헤더를 포함하는 것이 중요한데, 이를 통해 서버가 응답 후 연결을 닫아 `cat` 명령이 응답을 모두 읽고 종료될 수 있도록 합니다.

물론 /dev/tcp를 통한 HTTP 요청은 진정한 HTTP 클라이언트가 아니므로, 리디렉션, 압축, TLS(HTTPS) 처리, 청크(chunked) 응답 파싱 등 curl이 제공하는 다양한 고급 기능은 지원하지 않습니다. 이는 어디까지나 빠르고 기본적인 연결 테스트 및 디버깅을 위한 용도입니다. 또한, 이 기능은 Bash 고유의 기능으로, dash나 zsh 같은 다른 셸에서는 작동하지 않을 수 있으며, Bash가 `--enable-net-redirections` 옵션으로 컴파일되어야만 사용할 수 있습니다. 하지만 대부분의 최신 리눅스 배포판에서는 이 옵션이 기본으로 활성화되어 있어 별다른 문제 없이 활용 가능합니다.

이러한 Bash의 숨겨진 기능은 개발 및 운영 환경에서 예상치 못한 상황에 직면했을 때 문제를 해결하는 데 중요한 역할을 할 수 있습니다. 특히 마이크로서비스 아키텍처나 서버리스 환경에서 경량 컨테이너를 사용할 때, 불필요한 의존성을 줄이면서도 필수적인 네트워크 진단을 수행할 수 있는 강력한 대안이 됩니다. 복잡한 도구 없이도 시스템의 핵심 기능을 활용하여 문제를 해결하는 능력은 개발자에게 큰 자산이 될 것입니다.

1인 창업자를 위한 기회 분석
AI 분석 · 참고용이며 검증이 필요합니다
3/10
약한 신호
3점인가

기존에 널리 알려진 기술의 틈새 활용법으로, 새로운 시장을 창출하기보다는 기존 문제 해결에 도움을 주는 정보성 가치가 큽니다.

문제 / 미충족 수요

경량 컨테이너 환경에서 네트워크 연결 상태를 진단하거나 간단한 HTTP 요청을 보낼 때, curl 같은 도구가 없어 불편함을 겪는 경우가 있습니다.

한국 시장
국내 있음한국에서도 개발자 커뮤니티에서 유사한 팁들이 공유되고 있지만, 특정 문제 해결에 특화된 정보는 여전히 수요가 있습니다.
수익 모델

정보성 콘텐츠 제공 (블로그, 기술 문서) · 돈 내는 주체: 직접적인 유료 서비스로 전환하기는 어려우며, 광고 수익이나 간접적인 브랜드 인지도 향상에 기여할 수 있습니다.

1인 실현 가능성
5/5

이 기술 자체는 Bash 기본 기능이므로, 이를 활용한 정보성 콘텐츠나 간단한 스크립트 도구는 1인이 충분히 만들 수 있습니다.

진입 지점 (Wedge)

Bash /dev/tcp 활용 팁을 모아 특정 상황(예: Docker 컨테이너 디버깅)에 최적화된 스니펫 라이브러리를 제공하는 웹사이트 또는 CLI 도구

이번 주 첫 실험

Bash /dev/tcp를 활용한 다양한 HTTP 요청 예시(GET, POST, 헤더 추가 등)를 정리한 블로그 포스트 작성 및 공유

Original source
이 글은 Hacker News (Top)의 기사를 yozm.tech가 한국어로 재작성한 버전입니다.
원문 보기