CURL 명령어가 무엇인지, 설치 및 기본적인 명령어에 대해서 알아보도록 하자!
API 요청 및 응답 테스트를 할때 POSTMAN 등 어플리케이션을 주로 사용하였지만,
간단히 테스트하기엔 curl 만한게 없다!!
서론
curl 이란 무엇인가?
curl은 "Client URL"의 약자로, URL을 사용하여 데이터를 전송하는 명령줄 도구이자 라이브러리입니다.
curl은 HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP, FILE 등 다양한 프로토콜을 지원하여 웹 개발, 시스템 관리, 자동화 스크립트 작성 등 여러 분야에서 널리 사용됩니다.
curl 사용의 중요성 및 이점
curl은 간편하게 웹 서버와 통신하고 데이터를 주고받을 수 있게 해줍니다.
이를 통해 API 테스트, 웹 페이지 데이터 가져오기, 파일 업로드 및 다운로드 등 다양한 작업을 자동화할 수 있습니다.
특히, 스크립트 내에서 curl을 사용하면 반복적인 작업을 쉽게 처리할 수 있어 개발자와 시스템 관리자의 생산성을 크게 향상시킵니다.
2. curl 설치 방법
리눅스
대부분의 리눅스 배포판에서는 패키지 관리자를 사용하여 curl을 쉽게 설치할 수 있습니다.
예를 들어, Ubuntu나 Debian에서는 다음 명령어를 사용합니다.
sudo apt-get update
sudo apt-get install curl
macOS
macOS에서는 Homebrew를 사용하여 curl을 설치할 수 있습니다. Homebrew가 설치되어 있지 않다면 먼저 설치해야 합니다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install curl
윈도우
윈도우에서는 curl을 다운로드하여 설치하거나 Git Bash와 같은 도구를 사용할 수 있습니다.
윈도우 10부터는 curl이 기본적으로 포함되어 있기도 합니다.
- curl 공식 웹사이트에서 최신 버전 다운로드
- 다운로드한 파일을 원하는 위치에 압축 해제
- 환경 변수 PATH에 curl 실행 파일 경로 추가
3. curl 기본 명령어
기본 GET 요청
웹 페이지의 내용을 가져오려면 다음과 같이 입력합니다.
curl https://www.google.com
기본 POST 요청
데이터를 서버에 전송하려면 -X POST 옵션과 -d 옵션을 사용합니다.
curl -X POST -d "param1=value1¶m2=value2" https://www.example.com/api
위에서 사용한 curl의 -X 와 -d 옵션에 대해서 설명해드리겠습니다. 이 두 옵션은 curl을 사용하여 HTTP 요청을 보낼때 자주 사용되며, 요청 방식을 제어하고 데이터를 전송하는 데 중요한 역할을 합니다.
-X 옵션은 HTTP 요청 메서드를 지정하는 사용합니다.
기본적으로 curl은 -d 옵션 없이 데이터를 전송하면 GET 요청을 보내고, -d 옵션과 함께 데이터를 전송하면 POST 요청을 보냅니다.
주요 사용 사례
- GET : 서버에서 데이터를 가져올 때 사용합니다. (기본값)
- POST : 서버에 데이터를 생성하거나 제출할 때 사용합니다.
- PUT : 서버의 데이터를 업데이트하거나 새로운 데이터를 특정 위치에 저장할 때 사용합니다.
- DELETE : 서버의 데이터를 삭제할 때 사용합니다.
- PATCH : 서버 데이터의 일부분을 수정할 때 사용합니다.
-d 옵션은 HTTP POST 또는 PUT 요청과 함께 서버에 데이터를 전송하는 데 사용됩니다.
이 옵션을 사용하면 요청 본문(Request Body)에 데이터를 포함하여 서버로 보낼 수 있습니다.
주요 사용 사례
- 데이터 형식 : -d 옵션으로 전달되는 데이터는 기본적으로 application/x-www/form-urlencoded 형식으로 인코딩됩니다. 즉, 키-값 쌍이 &로 구분되고, 키와 값은 =로 연결됩니다.
- JSON 데이터 전송 : JSON 형식의 데이터를 전송하려면 -H "Content-Type: application/json" 헤더를 추가하여 데이터 형식을 명시적으로 지정해야 합니다.
- 파일 전송 : 파일을 전송하려면 -d @filename 형식을 사용합니다.
HTTP 헤더 추가
-H 옵션을 사용하여 HTTP 헤더를 추가할 수 있습니다.
curl -H "Content-Type: application/json" https://www.example.com/api
4. curl 활용 사례
REST API 테스트
curl은 REST API를 테스트하는 데 매우 유용합니다. 다양한 HTTP 메소드와 헤더를 사용하여 API 엔드포인트를 테스트할 수 있습니다.
curl -X GET https://api.example.com/users
curl -X POST -H "Content-Type: application/json" -d '{"name": "John Doe"}' https://api.example.com/users
웹 스크래핑
curl을 사용하여 웹 페이지의 HTML 내용을 가져와 데이터를 추출할 수 있습니다.
curl https://www.example.com/page | grep "keyword"
5. 결론
curl은 URL을 사용하여 데이터를 전송하는 강력한 명령줄 도구입니다.
다양한 프로토콜을 지원하며, 웹 개발, 시스템 관리, 자동화 등 여러 분야에서 유용하게 사용됩니다.
- curl 공식 문서 : https://curl.se/docs
curl - Documentation Overview
curl / Documentation Overview Documentation Overview The main documentation is sub divided into several categories. Each category holds a number of documentation pages. The book: Everything curl This is a detailed and totally free book, available online (a
curl.se
- curl 튜토리얼 : https://curl.haxx.se/docs/manual.html
curl - Tutorial
<!-- Copyright (C) Daniel Stenberg, , et al. SPDX-License-Identifier: curl --> curl tutorial Simple Usage Get the main page from a web-server: curl https://www.example.com/ Get a README file from an FTP server: curl ftp://ftp.example.com/README Get a webpa
curl.se
- REST API 설계 가이드 : https://restfulapi.net/
'개발 Tip' 카테고리의 다른 글
간편하게 URL 요청으로 QRCode 생성하기(Feat. chart.scrippter.com) (0) | 2025.02.14 |
---|---|
아이폰 사진 HEIF 파일 이미지 변환 및 MAC에서 별도 폴더에 모아보는 방법 (0) | 2025.02.02 |
레디스(Redis) 주요 명령어에 대해서 알아보자 (0) | 2024.08.25 |