본문 바로가기
Windows

Windows에서 `curl` 설치 및 사용 방법: 문제 해결 과정과 오류 대응

by 대박플머 2024. 9. 23.

Windows에서 curl을 설치하고 사용하려는 과정 중에 여러 가지 오류를 만날 수 있습니다. 특히 PowerShell에서 curl 명령어가 Invoke-WebRequest와 충돌하는 문제가 발생할 수 있는데, 이는 명령어 별칭 때문에 발생하는 일반적인 오류입니다. 이번 블로그에서는 Windows 환경에서 curl을 설치하는 방법과 그 과정에서 발생할 수 있는 오류, 그리고 이를 해결하는 방법을 자세히 설명하겠습니다.


1. curl이란?

curl은 클라이언트와 서버 간에 데이터를 전송하기 위한 커맨드라인 툴입니다. 주로 HTTP, FTP와 같은 다양한 프로토콜을 지원하며, API 요청을 보내거나 파일을 다운로드하는 데 자주 사용됩니다. Windows, macOS, Linux 등 여러 플랫폼에서 사용이 가능하고, 특히 개발자들이 API 테스트나 자동화된 스크립트를 작성할 때 많이 활용합니다.

기본적인 curl 사용 예시

curl https://example.com

위 명령어는 해당 웹사이트의 콘텐츠를 가져오는 간단한 예시입니다. 그런데 Windows에서 curl을 실행하려고 할 때, 특별한 문제가 없을 것이라고 생각하지만, PowerShell에서는 문제가 발생할 수 있습니다.


2. 문제의 시작: PowerShell에서 curl 충돌

Windows 10 이상의 최신 버전에서는 curl이 기본적으로 설치되어 있을 가능성이 높습니다. 하지만 PowerShell에서 curl --version 명령어를 실행했을 때, 다음과 같은 오류가 발생할 수 있습니다.

오류 메시지

curl : 원격 이름을 확인할 수 없습니다.: '--version'
위치 줄:1 문자:1
+ curl --version
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
   eption
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

이 오류는 PowerShell에서 curl이 실제로는 Invoke-WebRequest라는 명령어의 별칭으로 등록되어 있기 때문에 발생합니다. 즉, PowerShell은 curl 명령어를 Invoke-WebRequest로 인식하게 됩니다. 이로 인해 원래 의도한 curl 프로그램이 실행되지 않고 PowerShell의 웹 요청 기능이 실행됩니다.

해결 방법

이 문제를 해결하는 방법은 크게 두 가지가 있습니다:

  1. curl.exe를 명시적으로 호출하기.
  2. PowerShell에서 curl 별칭을 삭제하거나, 다른 방법으로 충돌을 피하기.

3. curl 설치 여부 확인 및 설치 과정

우선, curl이 이미 설치되어 있는지 확인해야 합니다. 설치가 되어 있다면 curl.exe 명령어를 사용하여 충돌을 피할 수 있고, 설치되지 않았다면 curl을 설치해야 합니다.

3.1. curl 설치 여부 확인

  1. PowerShell 또는 명령 프롬프트를 엽니다.

  2. 다음 명령어를 입력하여 curl이 설치되어 있는지 확인합니다:

    curl --version

    또는

    curl.exe --version
  3. curl의 버전 정보가 출력되면 이미 설치된 상태입니다. 만약 버전 정보가 출력되지 않거나 위와 같은 오류가 발생한다면, 다음 단계로 설치를 진행합니다.

3.2. curl 설치 방법

curl을 설치하는 방법은 여러 가지가 있습니다. 여기에서는 winget(Windows 패키지 관리자)와 chocolatey(윈도우 패키지 관리자)를 사용하여 설치하는 방법을 소개하겠습니다.

방법 1: winget을 통해 설치

Windows 10 이상에서는 winget이라는 패키지 관리자를 기본적으로 사용할 수 있습니다. winget을 사용하면 간단하게 curl을 설치할 수 있습니다.

  1. PowerShell을 열고 다음 명령어를 입력하여 curl을 설치합니다:

    winget install curl
  2. 설치가 완료되면, curl --version 또는 curl.exe --version 명령어로 설치 여부를 확인합니다.

방법 2: Chocolatey를 통해 설치

Chocolatey는 Windows에서 많이 사용되는 패키지 관리자입니다. curl을 설치하려면 먼저 Chocolatey가 설치되어 있어야 합니다.

  1. Chocolatey가 설치되지 않았다면, Chocolatey 공식 설치 가이드를 참고하여 설치합니다. 간단히 다음 명령어를 PowerShell에서 실행할 수 있습니다:

    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
  2. Chocolatey가 설치된 후, curl을 설치합니다:

    choco install curl
  3. 설치가 완료되면, curl --version 또는 curl.exe --version을 실행하여 설치가 제대로 되었는지 확인합니다.

방법 3: 공식 사이트에서 직접 다운로드

  1. curl 공식 사이트로 이동하여 최신 버전을 다운로드합니다.
  2. 다운로드한 파일을 적절한 폴더에 압축 해제한 후, curl.exe 파일을 환경 변수에 추가하여 명령 프롬프트에서 curl을 사용할 수 있도록 설정합니다.

4. PowerShell에서 curl 충돌 문제 해결

앞서 언급한 대로 PowerShell에서 curlInvoke-WebRequest가 충돌할 수 있습니다. 이를 해결하기 위한 몇 가지 방법이 있습니다.

4.1. curl.exe로 명시적으로 호출

PowerShell에서 충돌을 피하려면 curl.exe를 명시적으로 호출하여 Invoke-WebRequest와의 충돌을 피할 수 있습니다.

curl.exe --version

이 명령어는 curl 프로그램을 명시적으로 호출하므로 Invoke-WebRequest가 실행되지 않습니다.

4.2. PowerShell 별칭 삭제

만약 PowerShell에서 항상 curl을 사용하고 싶다면, curl 명령어에 대한 PowerShell 별칭을 삭제할 수 있습니다.

Remove-Item alias:curl

이 명령어는 PowerShell에서 curlInvoke-WebRequest의 별칭으로 등록된 것을 제거합니다. 이후부터는 curl --version을 입력해도 PowerShell의 Invoke-WebRequest가 실행되지 않고, 설치된 curl 프로그램이 실행됩니다.


5. 오류 발생 시 추가 해결 방법

  1. 환경 변수 설정: curl을 직접 다운로드하여 설치했다면, 환경 변수에 curl.exe가 있는 경로를 추가하여 명령 프롬프트나 PowerShell에서 어디서든 curl 명령어를 사용할 수 있게 설정해야 합니다.
  2. 충돌 방지: curl 명령어가 다른 프로그램과 충돌할 가능성이 있다면, curl.exe로 명시적으로 실행하거나, 프로그램 간의 충돌을 피하기 위한 별칭 삭제 등의 작업을 통해 해결할 수 있습니다.

6. 결론

Windows에서 curl을 설치하고 사용하는 과정에서 PowerShell의 충돌 문제는 자주 발생하는 문제입니다. Invoke-WebRequestcurl 명령어의 충돌은 curl.exe로 명시적으로 실행하거나 별칭을 삭제하여 해결할 수 있습니다. 이번 블로그를 통해 Windows 환경에서 curl을 올바르게 설치하고 사용할 수 있으며, 문제 해결 과정을 통해 다양한 오류를 극복할 수 있게 되길 바랍니다.

'Windows' 카테고리의 다른 글

윈도우 10 최근에 사용한 파일(폴더) 숨기기  (0) 2016.01.21