cURL 명령어 생성기 & 빌더
온라인 curl 명령어 생성기. 메서드·헤더·인증·바디를 설정하면 즉시 복사 가능한 명령어가 생성됩니다. Bearer·POST JSON·파일 업로드 프리셋. 무료, 서버 전송 없음.
curl 명령어란?
curl은 HTTP와 수십 가지 다른 프로토콜로 데이터를 전송하는 커맨드라인 도구입니다. curl 명령어는 바이너리 이름, 플래그 세트, URL로 구성됩니다. 예를 들어 `curl -X POST https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'`와 같이 사용합니다. curl은 사실상 모든 Linux, macOS, 최신 Windows 머신에 기본 설치되어 있어 API 테스트, 문서에서 요청 재현, CI 스크립트 내 서비스 상태 확인을 위한 범용 도구입니다. 강력하지만 플래그와 따옴표를 외우기 어렵다는 점 때문에 비주얼 빌더가 도움이 됩니다.
모든 curl 명령어는 동일한 구조를 갖습니다. 메서드(`-X GET`, `-X POST`, …)는 HTTP 동사를 설정하며, 기본값은 GET입니다. URL은 엔드포인트이며 쿼리 파라미터는 `?` 뒤에 추가됩니다. 헤더(`-H 'Key: Value'`, 반복 가능)는 `Accept`, `Content-Type` 같은 메타데이터를 전달합니다. 인증은 특별한 헤더일 뿐입니다. 토큰은 `-H 'Authorization: Bearer …'`, Basic 인증은 `-u user:pass`, 커스텀 API 키는 `-H 'X-API-Key: …'`입니다. 바디(`-d`는 원시 또는 폼 데이터, `-F`는 멀티파트 및 파일 업로드)는 페이로드를 전달합니다. 마지막으로 `-L`(리다이렉트 따르기), `-i`(응답 헤더 포함), `-v`(상세 출력) 같은 옵션 플래그가 동작을 결정합니다. 이 도구는 각 부분을 폼 필드로 제시하고 명령어를 실시간으로 재생성합니다.
curl 명령어 생성기는 따옴표 처리로 고생하거나, JSON POST에서 `Content-Type` 헤더를 잊거나, 멀티파트 업로드를 수동으로 조합하는 상황에서 유용합니다. 빌더가 셸에서 안전한 작은따옴표 이스케이프를 처리하고, 쿼리 문자열을 인코딩하고, 각 바디 유형에 맞는 헤더를 자동으로 추가합니다. 40개 이상의 실행 가능한 예제와 함께 플래그별 상세 레퍼런스를 보려면 동반 curl 치트 시트를 읽어보세요. 까다로운 쿼리 문자열 값 인코딩에는 저희 URL 인코더를 사용하세요.
모든 작업은 브라우저에서 이루어집니다. 토큰, 인증 정보, URL, 요청 바디는 클라이언트 사이드 JavaScript로 조합되며 어디에도 전송되지 않습니다. 실제 프로덕션 엔드포인트와 실제 API 키로도 안전하게 명령어를 생성할 수 있습니다.
# Plain GET — curl defaults to GET
curl https://api.example.com/users
# GET with a Bearer token (auth is just a header)
curl https://api.example.com/me \
-H 'Authorization: Bearer YOUR_TOKEN'
# POST a JSON body — note the Content-Type header
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Ada","role":"admin"}'
# Multipart file upload — '@' reads the file from disk
curl -X POST https://api.example.com/upload \
-F 'file=@report.pdf' \
-F 'title=Q3 report' 주요 기능
비주얼 요청 빌더
플래그 순서와 따옴표를 외울 필요 없이 메서드, URL, 쿼리 파라미터, 헤더, 인증, 바디, 옵션 등 전체 요청을 폼 필드로 구성합니다. URL이 `-d` 앞에 오는지 뒤에 오는지 더 이상 헷갈리지 마세요.
실시간 명령어, 복사 & 내보내기
curl 명령어가 키를 누를 때마다 페이지 하단에서 실시간으로 재생성됩니다. 한 번의 클릭으로 클립보드에 복사하거나, Export .sh로 레포나 CI 작업에 바로 사용할 수 있는 실행 가능한 셸 스크립트를 다운로드하세요.
모든 인증 방식 지원
Bearer 토큰, Basic 인증(`-u user:pass`), 커스텀 API 키 헤더를 서버가 요구하는 정확한 형식으로 생성합니다. 방식을 선택하고 인증 정보를 붙여넣으면 올바른 `Authorization` 또는 커스텀 헤더가 자동으로 생성됩니다.
모든 바디 유형
원시 JSON(매칭 `Content-Type` 헤더 자동 추가), `application/x-www-form-urlencoded` 폼 필드, `@` 접두어로 파일로 전환 가능한 `multipart/form-data` 업로드를 모두 지원합니다.
원클릭 프리셋 6종
Bearer GET, POST JSON, 폼 업로드, Basic 인증, 다운로드 `-o`, 상세 디버그가 한 번의 탭으로 폼 전체를 채웁니다. 가장 흔한 API 작업에 맞는 작동하는 요청에서 시작해 필요한 부분만 수정하세요.
멀티라인 & 한 줄 출력
빠른 붙여넣기를 위한 한 줄 명령어와 스크립트에서 읽거나 풀 리퀘스트에서 검토하기 쉬운 백슬래시 이어쓰기 멀티라인 형식 사이를 전환하세요. 같은 명령어를 두 가지 형태로 표현합니다.
100% 브라우저 기반 프라이버시
토큰, URL, 헤더, 요청 바디는 전적으로 클라이언트 사이드에서 처리되며 기기를 벗어나지 않습니다. 네트워크 탭에서 직접 확인해 보세요. 프로덕션 엔드포인트와 실제 인증 정보에도 안전하며 데이터 노출이 없습니다.
DevTools 워크플로에 최적화
API 테스트와 브라우저 DevTools "Copy as cURL" 요청 재현이라는 일상적인 루프를 중심으로 설계되었습니다. 붙여넣은 curl 명령어를 fetch, requests, Go, PHP, Ruby, Node.js로 변환하는 Convert 탭이 다음 릴리스에 출시됩니다.
curl 대안 & HTTP 클라이언트
HTTPie
CLI, 사람 친화적 문법색상 출력과 간결한 문법을 갖춘 현대적인 CLI입니다(`http POST api.example.com/users name=Ada`). 기본적으로 JSON `Content-Type`을 설정합니다. 대화식 사용에는 더 친숙하지만, 편재성과 스크립팅 이식성에서는 curl이 앞섭니다.
wget
CLI, 다운로드 중심재귀 다운로드와 사이트 미러링에 최적화되어 있으며 기본적으로 리다이렉트를 따르고 재시도합니다. 임의 메서드, 커스텀 헤더, API 테스트에서는 curl보다 약합니다. Linux에서 curl과 함께 사전 설치되는 경우가 많습니다.
Postman
GUI 앱컬렉션, 환경, 팀 동기화를 갖춘 요청 구성, 저장, 공유를 위한 완전한 GUI입니다. 탐색적 API 작업에 적합하며 curl을 가져오고 내보낼 수 있습니다. 빠른 확인이나 CI에는 한 줄 명령어보다 무겁습니다.
Insomnia
GUI 앱깔끔한 요청 빌더와 curl 가져오기/내보내기를 갖춘 가벼운 오픈소스 Postman 대안입니다. API 요청 정리에 적합하지만, 단일 스크립트 호출에는 역시 과합니다.
fetch() / requests
코드 내 HTTP 클라이언트JavaScript `fetch()`와 Python `requests`는 애플리케이션 코드에서 호출하는 방법입니다. curl로 먼저 요청을 만들고 검증한 다음 변환하세요. 곧 출시될 Convert 탭에서 동등한 fetch, requests, 기타 클라이언트 코드를 생성할 수 있습니다.
curl 명령어 예제
기본 GET 요청
curl https://api.example.com/users
메서드 플래그가 없으면 curl은 기본적으로 GET을 사용합니다. 가장 간단한 요청으로, 리소스를 가져와서 응답 바디를 터미널에 출력합니다. 빌더에서 쿼리 파라미터를 추가하면 자동으로 URL 인코딩되어 URL 뒤에 추가됩니다(`?page=2&limit=50`).
Bearer 토큰을 사용한 GET
curl https://api.example.com/me \ -H 'Authorization: Bearer YOUR_TOKEN'
REST API에서 가장 흔히 사용하는 인증 요청입니다. Bearer 인증 프리셋을 사용하면 `Authorization: Bearer …` 헤더가 자동으로 추가됩니다. JWT 토큰의 내용을 전송 전에 확인하고 싶다면 저희 JWT 디코더에 붙여넣어 보세요.
POST JSON 바디
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Ada","role":"admin"}' curl POST 요청의 기본 형태입니다. JSON 바디 유형을 선택하면 `-X POST`가 설정되고, `Content-Type: application/json` 헤더가 추가되며, 페이로드가 `-d`로 전달됩니다. API 응답을 깔끔하게 보려면 저희 JSON 포맷터를 사용하세요.
POST 폼(URL 인코딩)
curl -X POST https://api.example.com/login \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'username=ada&password=s3cret'
기존 HTML 폼 제출 방식입니다. 각 `-d field=value` 쌍이 `&`로 연결되어 `application/x-www-form-urlencoded`로 전송됩니다. curl은 예약 문자를 URL 인코딩하며, 폼 바디 섹션에서 필드를 입력하면 도구가 문자열을 자동으로 조합합니다.
멀티파트 파일 업로드
curl -X POST https://api.example.com/upload \ -F 'file=@report.pdf' \ -F 'title=Q3 report'
curl 파일 업로드 명령어는 `multipart/form-data`에 `-F`를 사용합니다. 값 앞에 `@`를 붙이면 디스크에서 파일을 첨부하며, 파일 필드와 텍스트 필드를 자유롭게 혼합할 수 있습니다. curl이 멀티파트 경계와 `Content-Type`을 자동으로 설정하므로 직접 설정하지 마세요.
파일로 다운로드
curl -L -o archive.zip \ https://example.com/files/archive.zip
`-o`로 응답 바디를 지정한 파일 이름으로 저장하고, `-L`은 실제 다운로드 URL로의 리다이렉트를 따릅니다(CDN 및 릴리스 자산 링크에서 흔히 필요합니다). 서버 파일 이름을 그대로 사용하려면 `-o` 대신 `-O`를 사용하세요.
Basic 인증
curl -u ada:s3cret \ https://api.example.com/private
curl의 Basic 인증은 `-u user:pass`를 사용하며, 자격 증명을 Base64로 인코딩하여 `Authorization: Basic …` 헤더로 전송합니다. Base64는 암호화가 아닌 인코딩이므로 항상 HTTPS를 통해 전송하세요.
상세 디버그
curl -v -i https://api.example.com/health
요청이 예상대로 작동하지 않을 때 `-v`는 전체 요청 라인, 전송/수신된 모든 헤더, TLS 핸드셰이크를 출력하고, `-i`는 응답 헤더를 바디 출력에 포함시킵니다. API가 잘못된 상태 코드를 반환할 때 가장 먼저 사용해 볼 방법입니다.
curl 명령어 만드는 방법
- 1
HTTP 메서드 선택
GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS 중에서 선택하세요. curl은 기본적으로 GET을 사용하며, POST나 다른 동사를 선택하면 생성된 명령어에 `-X METHOD`가 추가됩니다. 또는 프리셋 버튼을 탭하면 메서드와 매칭 바디가 한 번에 설정됩니다.
- 2
URL과 쿼리 파라미터 입력
요청 URL을 입력하세요(예: `https://api.example.com/users`). 쿼리 파라미터를 키/값 쌍으로 추가하면 도구가 URL 인코딩하여 `?key=value&…`를 URL에 자동으로 추가합니다. 수동 인코딩이 필요 없습니다.
- 3
헤더와 인증 추가
요청 헤더를 키/값 쌍으로 추가하고 인증 방식을 선택하세요: 없음, Bearer 토큰, Basic(아이디/비밀번호), 커스텀 API 키 헤더. 서버가 요구하는 정확한 형식으로 올바른 `Authorization` 또는 커스텀 헤더가 생성됩니다.
- 4
요청 바디 설정
POST/PUT/PATCH의 경우 바디 유형을 선택하세요. 원시 JSON을 붙여넣거나(`Content-Type` 헤더가 자동 추가됨), URL 인코딩 폼 필드를 만들거나, 멀티파트 업로드를 구성하고 `@` 접두어로 임의 필드를 파일로 전환하세요.
- 5
옵션 토글
필요한 플래그를 켜세요. 리다이렉트 따르기(`-L`), TLS 무시(`-k`), 상세 출력(`-v`), 헤더 포함(`-i`), 압축(`--compressed`), 파일 출력(`-o`), 연결 타임아웃, 프록시(`-x`). 각 토글이 명령어를 실시간으로 업데이트합니다.
- 6
복사, 내보내기, 초기화
완성된 명령어를 복사하거나 Export .sh로 스크립트로 다운로드하거나 초기화로 폼을 지우세요. 복사 전에 멀티라인 토글로 한 줄과 백슬래시 이어쓰기 출력 사이를 전환하세요.
흔한 curl 실수
바디가 있는 메서드에서 -X 누락
`-d`로 바디를 전송하면 POST가 암시되지만, PUT이나 PATCH가 필요한 경우 `-X`로 명시적으로 지정해야 합니다. 잊어버리면 바디가 POST로 전송되어 서버가 잘못된 상태 코드를 반환하거나 요청을 거부합니다.
# PATCH를 의도했지만 -d만으로는 POST가 됨
curl -d '{"role":"admin"}' \
https://api.example.com/users/7 # 동사를 명시적으로 설정
curl -X PATCH -d '{"role":"admin"}' \
-H 'Content-Type: application/json' \
https://api.example.com/users/7 JSON POST에서 Content-Type 누락
`-d`로 JSON을 전송해도 `Content-Type` 헤더가 자동 설정되지 않습니다. curl의 기본값은 `application/x-www-form-urlencoded`입니다. 대부분의 API는 바디 파싱에 실패하여 400 또는 415를 반환합니다. JSON 콘텐츠 타입을 항상 명시하거나 자동으로 추가해주는 JSON 바디 프리셋을 사용하세요.
# 서버는 URL 인코딩으로 인식 — 400/415
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' # JSON 콘텐츠 타입 선언
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Ada"}' 작은따옴표 vs 큰따옴표 이스케이프
큰따옴표 안에서는 셸이 `$`, 백틱, `!`를 확장하여 JSON을 망가뜨리거나 페이로드 내 `$variable`을 처리합니다. 작은따옴표는 바디를 리터럴로 전달합니다. JSON 바디에는 작은따옴표를 사용하세요. 작은따옴표를 지원하지 않는 `cmd.exe`에서만 큰따옴표로 전환하세요.
# $name이 셸에 의해 빈 문자열로 확장됨
curl -d "{\"user\":\"$name\"}" \
https://api.example.com/users # 작은따옴표는 바디를 리터럴로 전달
curl -d '{"user":"$name"}' \
https://api.example.com/users GET 요청에 -d 사용
`-d`를 추가하면 요청이 자동으로 POST로 변경됩니다. 쿼리 파라미터가 있는 GET을 원한다면 URL에 직접 추가하거나(`-G`로 `-d` 데이터를 쿼리 문자열로 변환하는 방법도 있음) URL에 추가하세요. "GET이 작동하지 않는다"는 가장 흔한 원인 중 하나입니다.
# -d가 이것을 POST로 변환 curl -d 'page=2&limit=50' \ https://api.example.com/users
# URL에 쿼리 문자열을 사용하면 GET 유지 curl 'https://api.example.com/users?page=2&limit=50'
Windows 줄 이어쓰기: ^ vs \
백슬래시(`\`)는 bash, Git Bash, WSL에서 명령어를 다음 줄로 이어씁니다. `cmd.exe`에서는 이어쓰기 문자가 캐럿(`^`)이고, PowerShell에서는 백틱(`` ` ``)을 사용합니다. 백슬래시로 이어진 명령어를 `cmd`에 붙여넣으면 실패합니다. Windows `cmd`를 사용하려면 도구를 한 줄 출력으로 전환하세요.
:: cmd.exe — 백슬래시는 이어쓰기 문자가 아님
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' :: cmd.exe — 한 줄로 사용하거나 ^로 이어쓰기
curl -X POST https://api.example.com/users -d "{\"name\":\"Ada\"}" URL의 공백 미인코딩
URL이나 쿼리 값에 원시 공백(또는 `&`, `#`, `?`)이 있으면 명령어가 깨집니다. 셸이 인수를 분리하고 curl이 잘린 URL을 받습니다. 값을 퍼센트 인코딩하거나(공백은 `%20`) `--data-urlencode`로 curl이 인코딩하게 하세요. 이 도구의 쿼리 파라미터 필드는 자동으로 인코딩합니다.
# 공백이 인수를 분리 — curl이 두 개의 인수를 받음 curl https://api.example.com/search?q=hello world
# 공백 인코딩 (또는 전체 URL을 따옴표로 감싸기) curl 'https://api.example.com/search?q=hello%20world'
주요 활용 사례
- REST API 테스트
- 터미널을 떠나지 않고 REST 엔드포인트에 요청을 만들어 전송하세요. 메서드를 설정하고 Bearer 토큰을 붙여넣고 JSON 바디를 전송하고 응답을 읽습니다. 클라이언트 코드를 작성하기 전에 API 동작을 확인하는 가장 빠른 방법입니다.
- 문서에서 요청 재현
- API 문서는 엔드포인트와 파라미터를 보여주지만 즉시 실행 가능한 완전한 명령어는 거의 제공하지 않습니다. 메서드, URL, 헤더, 인증을 입력하면 따옴표나 누락된 `Content-Type` 헤더와 씨름 없이 바로 실행 가능한 curl 명령어를 얻을 수 있습니다.
- CI/CD 스모크 테스트 스크립트
- 상태 확인이나 배포 후 스모크 테스트용 curl 명령어를 생성한 다음 Export .sh로 파이프라인에 추가하세요. `--connect-timeout`과 `--max-time`을 추가하여 응답 없는 엔드포인트가 빌드를 차단하지 않도록 하고, `-w`로 상태 코드를 확인하세요.
- 파일 업로드 & 다운로드
- `-F field=@file`을 사용한 `multipart/form-data` 업로드나, CDN으로의 리다이렉트를 따르는 `-L -o filename` 다운로드를 구성하세요. 까다로운 파일 이름이나 쿼리 값은 저희 URL 인코더로 먼저 인코딩하세요.
- 웹훅 디버깅
- 제공자가 전송하는 것과 동일한 JSON 바디를 올바른 서명 및 `Content-Type` 헤더와 함께 POST하여 웹훅 페이로드를 재현하세요. 핸들러가 요청을 거부한 이유를 디버깅하기 위해 동일한 요청을 로컬에서 재현합니다.
- 재현 가능한 버그 리포트
- 메서드, 헤더, 인증 플레이스홀더, 바디를 포함하는 자기 완결적인 curl 명령어 하나를 버그 리포트나 PR에 붙여넣어 누구나 정확한 요청을 재현할 수 있게 하세요. 요청을 글로 설명하는 것보다 훨씬 명확합니다.
- curl 플래그 학습
- 각 폼 선택이 어떤 플래그에 매핑되는지 확인하세요. Basic 인증을 선택하면 `-u`가 나타나고, JSON 바디를 추가하면 `Content-Type` 헤더가 붙는 것을 볼 수 있습니다. 저희 curl 치트 시트와 함께 문법을 실습으로 배우는 방법입니다.
- 코드 변환을 위한 요청 준비
- 먼저 curl로 요청을 만들고 검증한 다음 앱의 HTTP 클라이언트 코드로 변환하세요. 곧 출시될 Convert 탭에서 붙여넣은 curl 명령어를 fetch, requests, Go, PHP, Ruby, Node.js로 변환할 수 있습니다. 작동하는 curl 명령어에서 시작하세요.
curl 플래그 & 문법 레퍼런스
- 셸 따옴표 & 이스케이프
- 도구는 값을 작은따옴표로 감싸는데, POSIX 셸에서 작은따옴표 문자열 내부는 아무것도 확장되지 않아 가장 안전합니다. 값 내부의 리터럴 작은따옴표는 `'\''` 시퀀스(따옴표 닫기, 이스케이프된 따옴표, 따옴표 다시 열기)로 처리됩니다. `cmd.exe`에서는 큰따옴표로 전환하세요. Git Bash와 WSL은 생성된 작은따옴표 명령어를 변경 없이 실행합니다.
- -d vs --data-raw vs --data-binary
- `-d`/`--data`는 바디에서 줄바꿈과 캐리지 리턴을 제거합니다. `key=value` 쌍에는 문제없지만 멀티라인 콘텐츠에는 손실이 발생합니다. `--data-raw`는 동일하지만 앞에 오는 `@`를 파일 이름으로 처리하지 않습니다. `--data-binary`는 바이트를 그대로 전송합니다(`@file`로 원시 파일 내용 업로드에 사용). 세 가지 모두 메서드를 직접 지정하지 않으면 POST를 의미합니다.
- 멀티파트 (-F) vs URL 인코딩 (-d)
- `-F field=value`는 생성된 경계와 함께 `multipart/form-data`를 생성합니다. 파일 업로드(`-F file=@path`)와 파일/텍스트 혼합 폼에 필요합니다. `-d field=value`는 `&`로 연결된 단일 문자열인 `application/x-www-form-urlencoded`를 생성합니다. 멀티파트에는 `Content-Type`을 직접 설정하지 마세요. curl이 경계를 계산하고 헤더를 자동으로 설정합니다.
- 인증 헤더 인코딩
- Bearer 인증은 `Authorization: Bearer
`을 그대로 전송합니다(RFC 6750). `-u user:pass`를 사용한 Basic 인증은 Base64로 인코딩되어 `Authorization: Basic `로 전송됩니다. 인코딩이지 암호화가 아니므로 HTTPS를 사용하세요. API 키는 서비스가 요구하는 커스텀 헤더입니다. 예: `X-API-Key: `. - 쿼리 문자열 인코딩
- 빌더에서 추가한 쿼리 파라미터는 퍼센트 인코딩되어 `?key=value&key2=value2`로 추가됩니다. 예약 문자(공백, `&`, `=`, `#`)가 이스케이프되어 URL이 유효하게 유지됩니다. 인코딩이 필요한 바디 필드의 경우 curl의 `--data-urlencode`가 요청 시 인코딩을 처리합니다.
- 리다이렉트 동작 (-L)
- `-L` 없이는 curl이 301/302 응답을 출력하고 중지합니다. `-L`을 사용하면 `Location` 헤더를 따라 최종 URL로 이동합니다. 참고로 다른 호스트로 리다이렉트될 경우 curl은 `Authorization` 헤더를 제거합니다(보안 기본값). `--location-trusted`는 의미를 이해한 경우에만 사용하세요.
- 압축 응답
- `--compressed`는 gzip/deflate/brotli 지원을 알리는 `Accept-Encoding` 헤더를 추가하고 응답을 투명하게 압축 해제하여 대역폭을 절약합니다. 디코딩된 바디는 비압축 요청과 동일합니다. 순수한 전송 최적화로, 대부분의 API 호출에서 안전하게 활성화할 수 있습니다.
- 출력: -o vs -O
- `-o filename`은 응답 바디를 지정한 파일에 저장합니다. `-O`는 URL 경로에서 서버 파일 이름으로 저장합니다. 둘 다 일반적인 표준 출력 덤프를 생략합니다. `-L`과 함께 사용하면 파일이 저장되기 전에 리다이렉트가 실제 자산으로 해결됩니다.
curl 요청 모범 사례
- 공유 명령어에 시크릿을 하드코딩하지 마세요
- PR, 티켓, 채팅에 붙여넣는 curl 명령어는 다른 사람이 읽고 도구가 인덱싱합니다. 토큰과 비밀번호는 플레이스홀더(`YOUR_TOKEN`)로 교체하거나 환경 변수를 참조하세요(`-H "Authorization: Bearer $API_TOKEN"`). 긴 인증 정보의 경우 curl이 파일에서 헤더를 읽을 수 있어(`-H @headerfile`) 시크릿이 셸 히스토리에 나타나지 않습니다.
- 바이너리 페이로드에는 --data-binary @file을 사용하세요
- 바디가 바이트가 중요한 파일(이미지, 서명된 페이로드, 공백이 의미 있는 JSON)인 경우 `-d @file` 대신 `--data-binary @file`을 사용하세요. 일반 `-d`는 줄바꿈과 캐리지 리턴을 제거하여 바이너리 및 멀티라인 콘텐츠를 손상시킵니다. `--data-binary`는 디스크에 있는 그대로 파일을 전송합니다.
- 헤더 값을 따옴표로 감싸세요
- 항상 `-H` 값을 따옴표로 감싸세요: `-H 'Content-Type: application/json'`. 따옴표 없이는 콜론 뒤의 공백이 인수를 분리하여 curl이 잘못된 헤더를 인식합니다. 작은따옴표는 또한 셸이 값 내부의 `$`, `*`, 기타 특수 문자를 확장하는 것을 방지합니다. 이 도구는 기본적으로 작은따옴표로 출력합니다.
- 대역폭 절약을 위해 --compressed를 사용하세요
- API 호출과 다운로드에 `--compressed`를 추가하여 gzip/brotli 인코딩을 요청하고 curl이 투명하게 압축 해제하게 하세요. JSON이 많은 API의 경우 응답에는 변화 없이 전송 크기를 70~90% 줄일 수 있습니다. 엔드포인트를 반복적으로 폴링하는 스크립트에서 무료로 얻는 이점입니다.
- 스크립트에서 타임아웃을 고정하세요
- 자동화된 환경에서는 `--connect-timeout`과 `--max-time`을 추가하여 느리거나 응답 없는 엔드포인트가 파이프라인을 영원히 차단하지 않도록 하세요. `--max-time 10`을 사용한 상태 확인은 빠르게 실패하여 CI가 계속 진행할 수 있게 합니다. 즉시 포기하지 않고 일시적인 네트워크 문제를 흡수하려면 `--retry N`과 함께 사용하세요.
- 자동화 전에 -v로 검증하세요
- curl 명령어를 스크립트나 크론 작업에 넣기 전에 `-v`로 한 번 실행하여 정확한 요청 라인, 헤더, TLS 핸드셰이크를 확인하세요. 잘못된 메서드, 누락된 `Content-Type`, 또는 인증 헤더가 추가되지 않은 것을 가장 빠르게 발견하는 방법입니다. 대화식으로 디버깅한 다음 프로덕션에서는 `-v`를 제거하세요.
자주 묻는 질문
이 도구는 무엇을 하나요?
토큰, URL 같은 데이터가 서버로 전송되나요?
curl로 JSON을 POST하는 방법은?
curl 요청에 Bearer 토큰을 추가하는 방법은?
curl로 파일을 업로드하는 방법은?
브라우저 DevTools의 "Copy as cURL"로 복사한 명령어를 가져올 수 있나요?
Windows에서의 curl은 어떻게 다른가요?
-d, --data-raw, --data-binary의 차이는?
curl로 쿠키를 전송하는 방법은?
리다이렉트를 따르는 방법은?
요청 타임아웃을 설정하는 방법은?
관련 도구
모든 도구 보기 →진법 변환기 (Number Base Converter)
변환 도구
2진수, 16진수, 10진수, 8진수 및 임의 진법(2-36)을 즉시 변환합니다. 온라인에서 무료로 사용할 수 있으며 모든 처리는 브라우저에서 이루어집니다.
Base64 디코더 · 인코더 (Base64 Decoder & Encoder)
인코딩 & 포매팅
Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.
대소문자 변환기 — UPPERCASE, lowercase, camelCase
텍스트 도구
UPPERCASE, lowercase, camelCase, snake_case, kebab-case 등 15가지 형식으로 텍스트를 즉시 변환합니다. 무료 온라인 도구, 가입 불필요, 브라우저에서 동작.
색상 변환기 — HEX, RGB, HSL, OKLCH
변환 도구
HEX, RGB, HSL, OKLCH, OKLAB, CMYK 등 9가지 색상 형식을 브라우저에서 즉시 변환합니다. 무료 온라인 도구, 가입 불필요.
crontab 생성기 & cron 표현식 빌더
날짜 & 시간
브라우저에서 cron 표현식을 만들고 검증·해석합니다. 로컬 또는 UTC로 다음 실행을 미리 보고, POSIX 5필드 문법과 프리셋을 온라인에서 무료로 사용합니다.
CSV to JSON 변환기 (CSV to JSON Converter)
인코딩 & 포매팅
브라우저에서 CSV를 JSON으로 변환합니다. RFC 4180, 타입 추론, 헤더 행, 큰 정수 안전 처리. 100% 비공개, 업로드 없음.