Tools mentioned in this article
Open the browser-based tool while you read and try the workflow immediately.
“이 cURL을 코드로 옮기기 정말 귀찮네…”
브라우저 개발자 도구의 “Copy as cURL”로 복사한 명령어. 터미널에서 실행할 땐 편하지만, 본인의 프로그램(Python이나 JavaScript)에 통합하려면 헤더와 바디 작성법을 다시 찾아봐야 하지 않던가요?
**cURL 변환기**는 붙여넣은 curl 명령어를 원하는 언어의 HTTP 요청 코드로 변환하는, 브라우저에서 완결되는 도구입니다. 인증 토큰이 포함된 명령어도 외부로 나가지 않습니다.

지원 언어
const converters: Record<string, (curl: string) => string> = {
python: curlConverter.toPython, // requests
node: curlConverter.toNodeFetch,
javascript: curlConverter.toJavaScript, // fetch
go: curlConverter.toGo,
rust: curlConverter.toRust,
php: curlConverter.toPhp,
java: curlConverter.toJava,
r: curlConverter.toR,
elixir: curlConverter.toElixir,
dart: curlConverter.toDart,
json: curlConverter.toJsonString, // 코드가 아닌 요청의 구조화된 데이터
};
Python(requests), JavaScript(fetch), Go, Rust, PHP, Java, R, Elixir, Dart를 지원합니다.
사용법
- 브라우저 개발자 도구나 API 문서에서 curl 명령어를 복사합니다
- cURL 변환기에 붙여넣습니다
- 원하는 언어를 선택합니다
Authorization,Content-Type, 요청 바디가 올바르게 반영되었는지 확인합니다
curl -X POST "https://api.example.com/users" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Taro","role":"admin"}'
이 명령어에는 POST 메서드, 인증 헤더, JSON 바디가 포함되어 있습니다. 변환된 코드에서는 이들 각각이 대상 라이브러리의 방식으로 반영되어 있어야 합니다.
왜 정규표현식이 아니라 진짜 파서가 필요한가
curl 명령어는 셸 구문으로 작성됩니다.
curl 'https://api.example.com/v1/items?q=a b' \
-H "Authorization: Bearer $TOKEN" \
-d '{"name": "it'\''s"}'
중첩된 작은따옴표/큰따옴표, '\''라는 이스케이프 트릭, 줄바꿈 이어쓰기, 환경 변수, 그리고 200개가 넘는 curl 플래그—이 모든 것을 정규표현식으로 처리하려는 시도는 승산 없는 싸움입니다. 이 도구가 쓰는 라이브러리 curlconverter는 명령어를 먼저 셸 구문으로 제대로 된 구문 트리로 파싱한 뒤, 요청의 의미 정보(메서드·URL·헤더·바디)를 추출하고 나서 각 언어용 코드를 생성합니다. 셸로서 올바르게 파싱하는 것이 변환 품질의 토대입니다.
숨겨진 유용한 기능: JSON 출력
변환 대상 언어로 json을 선택하면 코드가 아니라 요청의 구조화된 분해 결과(메서드/URL/헤더/바디)가 나옵니다. “이 curl이 실제로 무엇을 보내는가”를 코드가 아니라 검토하고 싶을 때는 구조화된 분해 결과가 더 명확한 경우가 많습니다.
변환 후 확인할 점
자동 변환은 훌륭한 출발점이지만, 확정하기 전에 다음을 확인하세요.
- API 키와 토큰을 환경 변수로 옮긴다
- URL을 설정 파일이나 상수로 분리한다
- 타임아웃을 설정한다
- 에러 응답 처리를 추가한다
- JSON 파싱과 타입 정의를 추가한다
- 프로덕션용과 개발용 엔드포인트를 분리한다
특히 curl 명령어에서 나온 Authorization 헤더를 코드에 직접 하드코딩하지 마세요. 동작 확인용으로는 괜찮지만, 배포 전에는 비밀 정보를 환경 변수나 시크릿 관리로 옮겨야 합니다.
브라우저에서만 처리하는 이유
curl 명령어에는 Authorization 헤더나 쿠키, 사내 API URL이 포함되기 쉽습니다. 변환을 위해 그것을 외부 서비스로 보내는 것은 본말전도이므로, curlconverter를 클라이언트 사이드에 그대로 번들해 입력이 네트워크에 전혀 오르지 않는 구조로 만들었습니다.
자주 묻는 질문
”Copy as cURL”로 복사한 명령어도 쓸 수 있나요?
네. Chrome DevTools 등에서 복사한 curl(헤더와 쿠키 포함)을 붙여넣으면 올바르게 변환됩니다. 다만 쿠키나 토큰이 포함된 경우, 공유하기 전에 반드시 마스킹하세요.
Python의 requests나 JavaScript의 fetch로 변환할 수 있나요?
네. Python(requests), JavaScript(fetch), Go, Rust, PHP, Java, R, Elixir, Dart 등 여러 언어와 라이브러리로 변환할 수 있습니다. 사용 중인 프로젝트의 표준에 맞춰 출력 형식을 선택하세요.
변환한 코드를 그대로 프로덕션에 쓸 수 있나요?
동작 확인의 출발점으로는 편리하지만, 프로덕션 구현에서는 에러 처리, 타임아웃, 인증 정보 관리를 추가하는 것을 추천합니다. 생성된 코드를 토대로 프로젝트 설계에 맞춰 다듬으세요.
입력한 curl 명령어는 외부로 전송되나요?
아니요. 변환은 모두 브라우저 안에서 완결되며, curlconverter 라이브러리를 클라이언트 사이드에 번들하고 있기 때문에 명령어가 서버로 전송되는 일은 없습니다.
정리
- curl 명령어 파싱에는 셸 구문 해석이 필요하며 정규표현식으로는 한계가 있다
json출력은 “이 curl이 무엇을 보내는가”를 이해하는 데 유용하다- 토큰이 포함되기 쉽기 때문에 클라이언트 사이드 완결이 중요하다
- 생성된 코드는 초안. 인증 정보의 환경 변수화와 에러 처리는 직접 추가한다
API 연동의 초기 속도를 높이고 싶을 때 활용해보세요.