curl
은 웹 서버와 통신하기 위한 명령어로, 대부분의 프로토콜을 지원하고 쉘 스크립트나 다른 언어로 쉽게 사용할 수 있는 도구입니다. HTTP, HTTPS, FTP, FTPS, SMB, TELNET 등 여러가지 프로토콜을 지원합니다. 파일을 전송하거나 API를 호출하는 데 널리 사용됩니다.
curl
은 거의 모든 주요 운영 체제에서 사용할 수 있습니다. 사용 가능한 운영 체제는 다음과 같습니다:
Linux 배포판: 대부분의 Linux 배포판 (예: Ubuntu, CentOS, Debian, Fedora, RHEL 등)에 curl이 미리 설치되어 있거나, 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다.
macOS: macOS에서는 기본적으로 curl이 설치되어 있습니다.
Windows: Windows에서 curl을 사용하려면, 일부 버전에 탑재되어 있지 않는 경우 수동으로 설치해야 합니다. 하지만 최근의 Windows 10 버전에서는 기본적으로 curl이 내장되어 있습니다. Windows에서 사용할 수 있는 curl을 설치하려면, https://curl.se/windows/에서 curl 바이너리를 다운로드할 수 있습니다.
기타 운영 체제: Unix 및 Unix 기반 운영 체제 (예: BSD, Solaris 등)에서도 사용할 수 있습니다.
따라서 curl
은 거의 모든 주요 운영 체제에서 사용 가능하며, 개발 및 테스트 작업을 원활하게 수행할 수 있는 강력한 도구입니다.
curl [OPTIONS] URL
OPTIONS
: curl 명령어의 옵션입니다. 이를 사용하여 요청 유형, 헤더, 데이터 등을 지정할 수 있습니다.URL
: 웹 서버와 연결할 대상 주소입니다.$ curl https://example.com
위 예시에서는 기본적인 GET 요청을 보내고 그 결과를 출력하는데 사용합니다.
-O
: URL의 파일을 로컬에 저장합니다.
$ curl -O https://example.com/file.txt
-o
: 출력 파일을 사용자가 지정한 파일에 저장합니다.
$ curl -o my_file.txt https://example.com/file.txt
-X
: 요청 방식을 지정합니다 (POST, PUT, DELETE 등).
$ curl -X POST https://example.com/api/resource
-H
: 요청 헤더를 지정합니다.
$ curl -H "Content-Type: application/json" -H "Authorization: Bearer token" https://example.com/api/resource
-d
: POST요청을 보낼 때, 데이터를 지정합니다.
$ curl -X POST -d "key=value&key2=value2" https://example.com/api/resource
--data-urlencode
: URL 인코딩된 데이터를 지정하여 요청을 보냅니다.
$ curl -X POST --data-urlencode "param1=value1" --data-urlencode "param2=value2" https://example.com/api/resource
-F
: 파일을 전송합니다 (multipart/form-data 요청).
$ curl -F "file=@path/to/file.jpg" https://example.com/upload
curl
명령어는 웹 서버와 소통하는 데 굉장히 강력한 도구입니다. 다양한 옵션을 사용하여 웹 서버와의 통신 과정을 제어할 수 있습니다. 파일 전송, API 호출 등 다양한 목적으로 사용됩니다. 이러한 기능을 사용하여 웹 개발 및 API 개발 과정에서 원활한 테스트와 작업을 수행할 수 있습니다.