IT 엔지니어로서 수행해야 할 다양한 작업이 있습니다. 네트워크 연결 상태 확인, 파일 다운로드, 인증 설정 등입니다. 일반적으로 이러한 작업은 다른 도구가 필요합니다. 그러나 cURL을 사용하면 달라집니다. cURL Linux 유틸리티는 IT 엔지니어가 필요로 하는 대부분의 작업을 돕습니다.
이 자습서에서는 cURL이 제공하는 모든 명령 줄 기능에 대해 알아보게 될 것입니다.
계속 읽어보고 cURL을 통해 기술을 더욱 향상시켜보세요!
사전 준비 사항
이 자습서는 단계별로 설명되어 있습니다. 따라하기 위해 다음 사항을 확인하세요:
- Ubuntu 머신 – 이 자습서에서는 Ubuntu 18.04와 Apache가 설치된 환경을 사용합니다.
- A Windows XP+ PC – This tutorial uses Windows 10 Enterprise edition.
- A remote Linux host – This tutorial uses an Ubuntu 18.04.5 LTS machine.
- A user account on the remote Linux SSH host with sudo permissions.
cURL Linux 설치하기 (Ubuntu)
다른 도구와 마찬가지로 cURL을 활용하기 전에 먼저 컴퓨터에 설치해야 합니다. cURL은 *nix 기반 운영 체제에서 설치할 수 있지만 Ubuntu에서 가장 많이 사용됩니다.
cURL은 다음과 같은 다양한 작업을 수행할 수 있는 명령 줄 유틸리티입니다:
- 윈도우 머신 또는 리눅스 서버의 다양한 네트워크 구성 상태를 표시합니다.
- 서버로부터 데이터를 전송하거나 전송합니다.
- HTTP, FTP, IMAP, POP3, SCP 및 SFTP와 같은 다양한 프로토콜을 지원합니다.
Ubuntu 머신에 cURL을 설치하려면 다음 단계를 따르세요:
1. 좋아하는 SSH 클라이언트를 사용하여 Ubuntu 호스트에 연결합니다.
2. 다음 명령을 실행합니다. 출력은 제공되지 않지만 “install_curl_demo”라는 디렉터리를 생성하고 해당 디렉터리로 전환합니다. 이 디렉터리는 이 튜토리얼에서 생성하는 모든 리소스를 보관할 것입니다.
3. 다음으로 아래의 apt update 명령을 실행하여 시스템 패키지 인덱스를 업데이트합니다.
이 명령은 의존 패키지를 다운로드할 때 apt 패키지 매니저가 적절한 소스를 찾을 수 있도록 합니다.

4. 이제 아래의 apt install 명령을 실행하여 머신에 cURL을 설치합니다.

5. 마지막으로 아래의 명령을 실행하여 머신에 설치된 cURL 버전을 확인합니다. 이렇게 하면 cURL이 성공적으로 설치되었는지 확인할 수 있습니다.

웹사이트 인증하기
curl는 FILE, FTP, HTTP, HTTPS, POP3, SCP, SFTP, TELNET 등과 같은 다양한 프로토콜을 지원하며 사용자 상호작용이 필요하지 않습니다.
curl 명령어를 사용하여 웹 사이트에 인증이 필요한 경우, 사용자 이름과 비밀번호를 URL에 지정해야 합니다. 그러나 사용자 이름을 설정하면 cURL이 비밀번호를 요청할 것입니다.
다음의 curl 명령어를 실행하여 사용자 이름과 비밀번호를 자신의 것으로, 웹 사이트 URL을 자신의 것으로 바꿔서 인증을 수행하십시오.

원래 이름 또는 변경된 이름으로 파일 다운로드
파일 또는 패키지 다운로드는 관리자로서 일상적인 작업 중 하나일 수 있습니다. 그렇다면 cURL은 확실히 도움이 될 것입니다. curl
명령어에 -O
또는 -o
옵션을 추가하여 원본 이름을 유지하거나 다른 이름으로 설정하여 파일을 다운로드할 수 있습니다.
다음 명령어를 실행하여 NGINX 패키지를 원래 이름(-O
)인 *nginx-1.20.2.tar.gz*
로 다운로드하거나 다른 이름(-o
)으로 *mytar.gz*
로 다운로드하십시오.

이제 다음 명령어를 실행하여 mytar2.gz라는 이름의 NGINX 패키지를 다운로드하십시오. 하지만 이번에는 출력에서 많은 세부 정보 대신 진행 상황 표시 모양만 볼 수 있습니다.

마지막으로, 현재 디렉토리에 있는 모든 파일을 나열하는 아래의 ls
명령어를 실행하세요.
아래에서 nginx-1.20.2.tar.gz, mytar.gz, 그리고 mytar2.gz 파일이 존재하는지 확인할 수 있습니다.

연결 시간 초과 설정
빠른 로딩 웹사이트는 항상 이상적입니다. cURL을 사용하여 사용자가 웹사이트에 얼마나 빨리 연결할 수 있는지 테스트할 수 있습니다. 어떻게? 바로 연결 시간 초과를 설정함으로써, curl
명령어가 특정 시간 내에 웹사이트에 연결을 시도합니다.
연결 시간 초과를 설정하면, 서버가 데이터 요청에 대해 응답하는 데 걸리는 시간을 확인할 수 있습니다.
아래 명령어를 실행하여 요청이 시간 초과되기 전에 adamtheautomator.com 사이트에 20
초 동안 연결을 시도해 보세요.
아래에서 -I
옵션을 사용하여 웹사이트의 정보 출력에 헤더를 포함할 수 있음을 확인할 수 있습니다.

GET 요청을 사용하여 데이터 검색하기
“연결 시간 초과 설정” 섹션에서 웹사이트에 대한 정보를 얻는 방법을 보았습니다. 그러나 그 정보만으로 충분하지 않다면 GET 요청을 보내는 것을 고려해 보세요.
아래의 curl 명령어를 실행하여 HTTP GET 요청(–get)을 사용하고 https://adamtheautomator.com 웹사이트에서 데이터를 검색하세요.
아래에서는 adamtheautomator.com 웹사이트의 원본 소스를 확인할 수 있습니다.

POST 요청 보내기
데이터를 받는 대신에, curl
명령어를 사용하여 POST 요청을 보내 데이터를 전송할 수도 있습니다. -d
매개변수를 사용하면 사용자가 HTML 양식에 데이터를 입력한 것처럼 지정된 데이터를 POST 요청으로 HTTP 서버로 보낼 수 있습니다.
다음의 curl
명령어를 실행하여 ptsv2.com
사이트에 POST 요청을 보내보세요.

이제 웹 브라우저에서 https://reqbin.com/으로 이동하여 POST 요청이 성공적으로 전송되었는지 테스트해보세요.
아래에서 상태가 (200 (OK)로 표시된 것을 확인할 수 있을 것입니다. 이는 요청이 성공적으로 보내진 것을 나타냅니다.

단어 정의 검색하기
cURL을 사전처럼 사용할 수 있다는 것을 알고 계셨나요? 네! cURL을 사용하여 단어 정의를 검색할 수 있습니다. 이를 위해 DICT 프로토콜을 사용합니다. 클럭, 우분투, RDP 등 IT 관련 용어를 DICT 프로토콜을 사용하여 검색할 수 있습니다.
DICT 프로토콜을 사용하는 curl
명령어의 구문은 다음과 같습니다:
각각의 명령어를 실행하여 공개 웹사이트 dict.org
에서 단어 정의를 검색해보세요.
아래에서 확인할 수 있듯이, 첫 번째 단어 정의 검색인 ubuntu는 관련된 답변을 찾지 못하고 일치하는 결과 없음을 반환했습니다. 하지만 두 번째 검색은 단어 clock에 대한 여러 정의를 반환했습니다.

웹사이트 HTTP2 프로토콜 테스트
curl 명령은 웹사이트의 다운로드, 업로드 및 인증에 확실히 적합한 도구입니다. 그러나 curl을 훌륭한 도구로 만드는 또 다른 이유는 특정 URL이 새로운 HTTP/2 프로토콜을 지원하는지 확인할 수 있다는 것입니다.
다음 curl 명령을 실행하여 https://adamtheautomator.com/ 웹사이트가 HTTPS 프로토콜(–http2)을 지원하는지 확인하세요.
아래와 같은 HTTP/2 200 응답이 출력되면 해당 사이트가 HTTP2 프로토콜을 사용한다는 것을 나타냅니다.

결론
cURL은 무료 도구이지만 많은 기능을 제공합니다. 이 튜토리얼에서는 파일 다운로드, 웹사이트 인증, POST 또는 GET 요청 등을 하는 다양한 실제 예제를 경험해 보았습니다. cURL은 파일 전송, curl 명령을 사용하여 명령 및 스크립트 실행하는 방법을 배우는 것은 어떨까요? 또는 cURL API 명령을 알아보는 것은 어떨까요?