명령줄 인터페이스에 대해 알아보기
학습 목표
이 유닛을 완료하면 다음을 수행할 수 있습니다.
- 명령줄 인터페이스가 무엇인지 설명할 수 있습니다.
- 각 운영 체제(OS)의 다양한 셸을 식별할 수 있습니다.
개요
명령줄 도구에서 작업하는 데 생소하다면 이 배지가 유용할 것입니다. 개발자는 일반적으로 Lightning 웹 구성 요소 같은 프로젝트를 코딩할 때 명령줄 도구에서 작업합니다. 이 텍스트 기반 인터페이스에서는 개발자 패키지를 프로젝트와 함께 사용하도록 원활하게 설정할 수 있습니다. 이 모듈의 목적은 명령줄 도구에 대해 알기 쉽게 설명하고 지금 사용할 수 있는 명령을 몇 개 알려드리는 것입니다.
명령줄 도구에 대해 먼저 알아보겠습니다.
명령줄 인터페이스(CLI)
소프트웨어 프로그램이나 Salesforce 조직 안에서 작업하는 경우 그래픽 사용자 인터페이스(GUI)를 사용합니다. GUI는 화면, 버튼, 메뉴(1-2개)로 구성되는 인터페이스입니다. GUI를 사용하면 탐색 및 데이터베이스 업데이트 같은 기본적인 작업을 편리하게 수행할 수 있습니다. GUI를 매일 사용한다는 사실을 알면 놀라실 수도 있습니다!
명령줄 도구는 텍스트 기반 인터페이스입니다. 버튼 또는 여러 화면 대신, 명령줄 도구에서는 명령을 작성하여 컴퓨터나 소프트웨어 프로그램과 직접 상호합니다. GUI가 사용자 위주 도구라면 개발자에게 명령줄 도구가 왜 필요한지 의아할 수도 있습니다.
명령줄의 용도
명령줄 인터페이스를 사용하면 복잡한 작업을 빨리 수행할 수 있습니다. 플러그인과 패키지로 명령줄 인터페이스를 사용자 정의하여 개발 작업 공간 도구를 유연하게 사용자 정의할 수도 있습니다. 명령줄 도구로 스크립트를 실행하고, 디렉터리를 만들고, Git(소스 기반 개발 프로젝트 또는 CI 통합을 빌드하고 관련 작업을 수행하기 위해 사용할 수 있는 도구) 같은 도구와 상호작용할 수 있습니다.
명령줄 도구는 어디에 있나요?
명령줄 도구의 위치는 작업하는 운영 체제(OS)마다 다릅니다. OS에는 컴퓨터와 함께 포함된 명령줄 도구가 있습니다. 컴퓨터에서 명령줄 도구를 찾아보겠습니다.
macOS/Linux
macOS와 Linux의 기본 명령줄 도구는 Terminal입니다. 명령줄 도구를 사용하여 작업하려면 Terminal 애플리케이션을 엽니다.
- Finder를 엽니다.
- 검색 필드에
Terminal
(터미널)을 입력하거나 터미널 아이콘을 클릭하여 애플리케이션을 엽니다.
Windows
Windows의 기본 명령줄 도구는 명령 프롬프트입니다. 명령줄 도구를 사용하여 작업하려면 명령 프롬프트 애플리케이션을 엽니다.
- Start(시작)를 클릭하고 검색 필드에
command
(명령) 또는cmd
를 입력한 후 Enter 키를 누릅니다. - 명령 프롬프트 바로 가기를 클릭하여 도구를 엽니다.
코드 편집 도구를 통해 터미널 창을 사용할 수도 있습니다.
코드 편집기 터미널 창
Atom 또는 Visual Studio Code(VS Code) 같은 코드 편집기에는 터미널 창이 내장되어 있습니다. Salesforce CLI를 사용하여 명령을 실행하고 작업을 수행하려면 Visual Studio Code(VS Code) 터미널 창을 사용하는 것이 좋습니다. 내장된 터미널 창에는 프로젝트를 코딩하고 터미널 창을 즉시 사용할 수 있게 설정하는 기능이 있습니다. VS Code 같은 코드 편집기 터미널 창을 사용하여 명령에 초능력을 부여하는 (VS Code의 Salesforce Extensions 같은) 패키지를 설치할 수 있습니다.
셸이란 무엇인가요?
명령줄 인터페이스 창은 단순히 텍스트를 입력하는 일반적인 명령줄 인터페이스가 아닙니다. 이 창 뒤에는 실행하는 명령을 처리하는 명령줄 해석기인 셸이 있습니다.
셸은 명령줄 인터페이스에 입력된 명령을 해석하고 실행하는 프로그램입니다. 사용 중인 셸을 알면 어떤 명령을 입력하고 어떤 스크립트 구문을 따라야 하는지 알 수 있습니다. 이 배지에서는 macOS와 Windows의 기본 셸에 대해 집중적으로 알아봅니다.
셸의 여러 가지 유형
특징과 기능이 각기 다른 여러 가지 유형의 셸이 있습니다. Windows의 가장 일반적인 셸은 PowerShell입니다. macOS의 가장 일반적인 셸은 Zsh 또는 z 셸입니다. Z 셸은 Bourne 셸 기능(일명 BASH 셸)에 개선 사항을 추가하여 확장한 Unix 셸입니다. BASH 셸에 대해 자세히 알아보겠습니다.
BASH는 bourne-again shell(bash)의 약어입니다. 이 이름은 이 셸의 전신인 Bourne shell(sh)의 이름을 본따서 재밌게 지은 것입니다. BASH는 그 전신과 마찬가지로 POSIX에서 정의한 셸 명령어라는 언어 및 구문을 따릅니다. BASH에는 여러 가지 특징과 기능이 있습니다. Z 셸은 BASH 기능을 확장합니다. npm 같은 대부분의 개발자 도구는 z 셸과 원활하게 통합됩니다. 그렇기 때문에 BASH(와 지금의 z 셸)는 개발자 튜토리얼에서 가장 많이 사용되는 셸입니다. 프로그래밍 구문이 C와 유사하고 산술이 내장되고 명령을 텍스트 파일에서 실행할 수도 있는 Unix 셸인 CSH(C 셸)도 있습니다.
각 셸마다 여러 다양한 작업을 수행하기 위해 사용할 수 있는 자체적인 구문과 기능이 있습니다. ZSH를 갖고 있지 않아도 조금만 검색하면 이 셸을 찾아서 로컬 컴퓨터에 설치할 수 있습니다. 지금은 Windows의 PowerShell과 macOS와 Linux의 ZSH에 대해 집중적으로 알아보겠습니다.
PowerShell과 ZSH의 차이점 알기
PowerShell(Windows)과 ZSH(macOS 및 Linux)는 중요한 차이점이 하나 있습니다. 각 OS마다 명령을 작성하는 방법이 다름은 물론, 각 셸의 기능과 출력도 다릅니다. 가장 중요한 차이점은 ZSH가 출력을 .txt 파일에 쓰는 등 문자열로 처리하지만 PowerShell은 출력을 개체로 처리한다는 것입니다.
출력이 문자열이면 사용자가 정보를 프로그램 간에 전송하기가 더 쉬운 경우가 많습니다. 이 출력의 변수는 스크립트를 작성하고 실행하거나 API를 사용하여 작업하는 경우에 특히 중요한데, 스크립트나 API는 일반적으로 .txt 형식 또는 문자열을 지원하는 형식으로 되어 있기 때문입니다.
이 모듈에 나오는 명령은 위에서 확인한 각 OS의 기본 셸을 사용하여 작성된 것입니다. 다음에는 명령 구조에 대해 알아보고 명령 실행을 연습합니다.
리소스