📌 cURL 완벽 정리 - 사용법, 프로토콜 보안, 자동화 스크립트
cURL(Client URL)은 명령줄에서 HTTP 요청을 보낼 수 있는 강력한 도구입니다. 웹 개발, API 테스트, 파일 다운로드 및 업로드 등 다양한 용도로 사용됩니다. 이번 글에서는 cURL의 개념, 사용법, 주요 옵션, 보안 이슈, 자동화 스크립트 등을 정리해 보겠습니다.
1. cURL이란?
(1) cURL의 정의
- cURL(Client URL)은 명령줄에서 데이터를 송수신할 수 있는 오픈소스 도구입니다.
- HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, SMTP, IMAP, POP3 등 다양한 프로토콜을 지원합니다.
- 주로 API 테스트, 파일 다운로드 및 업로드, 웹 요청 자동화에 사용됩니다.
- C, PHP, Python, JavaScript 등 다양한 언어에서 libcurl 라이브러리로 활용 가능합니다.
(2) cURL의 주요 기능
✅ HTTP 요청을 간편하게 테스트 가능 (GET, POST, PUT, DELETE 지원)
✅ 다양한 프로토콜 지원 (FTP, SFTP, SMTP, IMAP 등)
✅ 자동화 스크립트에서 활용 가능
✅ 오픈소스 및 크로스플랫폼 지원 (Windows, macOS, Linux)
2. cURL 설치 방법
cURL은 대부분의 OS에서 기본적으로 제공되지만, 설치가 필요한 경우 아래 방법을 따릅니다.
(1) Windows에 cURL 설치
- 최신 Windows 10/11에서는 기본 제공됨 (
curl --version
으로 확인 가능) - 직접 설치하려면 cURL 공식 웹사이트에서 다운로드 후 환경변수 설정
(2) macOS에 cURL 설치
brew install curl
(3) Linux에 cURL 설치
# Ubuntu/Debian
sudo apt update && sudo apt install curl -y
# CentOS/RHEL
sudo yum install curl -y
3. cURL 사용법
(1) 기본 GET 요청 보내기
curl https://example.com
✅ 웹사이트의 HTML 소스를 출력
(2) HTTP POST 요청 보내기
curl -X POST -d "username=user&password=pass" https://example.com/login
✅ 폼 데이터를 전송하는 POST 요청
(3) JSON 데이터 전송 (API 요청)
curl -X POST https://api.example.com/data \
-H "Content-Type: application/json" \
-d '{"name":"John", "age":30}'
✅ JSON 데이터를 API에 POST 요청
4. cURL의 프로토콜 보안
(1) HTTPS 보안 옵션 사용하기
- HTTPS를 사용할 때 SSL/TLS 인증서 검증이 필요합니다.
-k
옵션을 사용하면 인증서 검증을 무시하지만, 보안이 취약해질 수 있습니다.curl -k https://secure.example.com
(2) SSL/TLS 인증서 검증 활성화
curl --cacert /path/to/cert.pem https://secure.example.com
✅ 신뢰할 수 있는 인증서를 사용하여 보안 강화
(3) 기본 인증 및 토큰 인증
- 기본 인증:
-u
옵션 사용curl -u username:password https://example.com/protected
- 토큰 기반 인증 (Bearer Token)
curl -H "Authorization: Bearer your_token_here" https://api.example.com/protected
5. cURL을 활용한 자동화 스크립트
cURL을 쉘 스크립트에서 활용하면 반복 작업을 자동화할 수 있습니다.
(1) API 데이터를 주기적으로 가져오는 스크립트
#!/bin/bash
URL="https://api.example.com/data"
OUTPUT="data.json"
while true; do
echo "Fetching data from API..."
curl -s -o $OUTPUT $URL
echo "Data saved to $OUTPUT"
sleep 60 # 60초마다 실행
done
✅ API 데이터를 1분마다 자동으로 가져와 data.json
에 저장하는 스크립트
(2) 파일 다운로드 자동화
#!/bin/bash
FILE_URL="https://example.com/file.zip"
DESTINATION="/path/to/save/file.zip"
curl -o $DESTINATION $FILE_URL
✅ 자동으로 파일을 다운로드하여 특정 경로에 저장하는 스크립트
6. cURL과 wget 비교
cURL과 wget은 모두 HTTP 요청을 보낼 수 있는 도구이지만, 사용 방식이 다릅니다.
비교 항목 | cURL | wget |
---|---|---|
주요 용도 | API 요청, 데이터 송수신 | 웹사이트 및 파일 다운로드 |
지원 프로토콜 | HTTP, FTP, SCP, SFTP 등 다양함 | 주로 HTTP, FTP |
리디렉션 | -L 옵션 사용 |
기본적으로 따라감 |
반복 다운로드 | 기본적으로 지원 안 함 | -r 옵션으로 가능 |
인터랙티브 모드 | 제공하지 않음 | 제공 (미러링 기능 포함) |
7. 마무리 🎯
cURL은 웹 요청을 손쉽게 테스트하고 데이터를 송수신하는 강력한 도구입니다.
GET
,POST
,PUT
,DELETE
요청을 자유롭게 활용할 수 있습니다.- API 테스트, 파일 다운로드 및 업로드, 자동화 스크립트 작성 등에 유용합니다.
- 주요 옵션 (-X, -d, -H, -o, -O, -L 등)을 숙지하면 더욱 효과적으로 사용할 수 있습니다.
'IT이야기' 카테고리의 다른 글
SWOT 분석(SWOT Analysis) (0) | 2025.02.15 |
---|---|
BPR(Business Process Reengineering, 업무 프로세스 재설계) (0) | 2025.02.14 |
IT 거버넌스 (IT Governance) (1) | 2025.02.14 |
메모리 관리 (가상 메모리, 페이지 교체 알고리즘) (0) | 2025.02.14 |
응용정보기술자 시험 - DX(디지털 트랜스포메이션) (3) | 2025.02.14 |