M365Con 2027 – 무료 온라인 컨퍼런스 · 11–22 Jan 2027 · 120 sessions→ m365con.net

블로그 · Mirko Peters

Microsoft 365용 크로스 플랫폼 CLI 시작하기

By ·

다시 찾아주신 청취자와 독자 여러분, 반갑습니다! Microsoft 365 관리 센터에서 반복적인 관리 작업에 파묻혀 본 적이 있다면, 사이트 하나를 프로비저닝하거나 사용자 속성 하나를 수정하려고 끝없는 메뉴를 클릭해야 했던 경험이 있을 것입니다. 이 가이드는 바로 그런 분들을 위한 것입니다. 현대의 클라우드 관리에는 속도, 확장성, 정밀성이 요구됩니다. 방대한 엔터프라이즈 환경을 관리할 때 시스템 관리자나 개발자가 그래픽 사용자 인터페이스에만 의존하던 시절은 이제 지났습니다. 오늘날에는 명령줄의 힘을 활용합니다. 이번 심층 가이드에서는 Microsoft 365용 크로스 플랫폼 CLI를 자세히 살펴봅니다. 이 도구는 시간을 되찾고 워크플로를 자동화하려는 IT 전문가, 개발자, 컨설턴트들이 빠르게 찾고 있는

Automatically translated with AI from the original post. Read the English original

▶ BLOGGetting Started with theCross-Platform CLI for…M365.FM
Titelbild: Getting Started with the Cross-Platform CLI for Microsoft 365

청취자와 독자 여러분, 다시 찾아주셔서 감사합니다! Microsoft 365 관리 센터에서 사이트를 프로비저닝하거나 사용자 속성을 업데이트하려고 끝없는 메뉴를 클릭하며 반복적인 관리 작업에 파묻혀 본 적이 있다면, 이번 가이드는 바로 여러분을 위한 내용입니다. 현대의 클라우드 관리에는 속도, 확장성, 정밀성이 요구됩니다. 대규모 엔터프라이즈 환경을 관리하면서 그래픽 사용자 인터페이스에만 의존하던 시대는 이제 지났습니다. 오늘날에는 명령줄의 힘을 활용합니다. 이번 심층 가이드에서는 Microsoft 365용 크로스 플랫폼 CLI를 살펴보겠습니다. 이 도구는 시간을 되찾고 워크플로를 자동화하려는 IT 전문가, 개발자, 컨설턴트에게 빠르게 비밀 무기가 되어 가고 있습니다.

이 블로그 글은 최신 팟캐스트 에피소드 Automate Microsoft 365 with the Cross-Platform CLI의 확장 자료입니다. 아래에서 다루는 내용이 마음에 드셨다면, 그 에피소드를 끝까지 들어 보시면서 추가 팁과 이야기도 함께 즐겨 보시기 바랍니다!

Microsoft 365용 크로스 플랫폼 CLI 소개

설치 과정과 인증 단계에 들어가기 전에, Microsoft 365용 CLI가 정확히 무엇이며 왜 관리 도구 모음에서 자리를 차지할 가치가 있는지 먼저 짚어 보겠습니다. 핵심적으로 Microsoft 365용 CLI는 Microsoft 365 테넌트 전반의 다양한 설정과 데이터를 관리할 수 있게 해 주는 다목적 오픈 소스 명령줄 인터페이스입니다. 이 도구를 특별히 강력하게 만드는 요소는 이름에 이미 담겨 있습니다. 바로 크로스 플랫폼이라는 점입니다. 주력 워크스테이션에서 Windows를 사용하든, 일상 개발에는 macOS를 고집하든, 서버나 컨테이너에서 가벼운 Linux 배포판을 운영하든, Microsoft 365용 CLI는 모든 환경에서 일관되게 동작합니다.

과거에는 Microsoft 관리자들이 여러 종류의 도구를 번갈아 사용해야 하는 경우가 많았습니다. Azure Active Directory 작업에는 Azure PowerShell을, SharePoint Online 프로비저닝에는 SharePoint PnP PowerShell을 사용하고, 다른 서비스에는 전혀 다른 Graph API 호출이나 사용자 지정 스크립트를 쓰곤 했습니다. Microsoft 365용 CLI는 통일된 문법을 제공해 이런 간극을 메워 줍니다. 내부적으로 Microsoft Graph API를 활용하며, 복잡한 REST 요청을 직관적이고 사람이 읽기 쉬운 명령으로 감싸 줍니다. 또한 노드 기반의 오픈 소스이기 때문에 새로운 기능, 버그 수정, 확장 기능을 꾸준히 기여하는 활발한 커뮤니티가 있습니다. SharePoint 사이트, Microsoft Teams, Azure AD 사용자, Power Platform 환경 중 무엇을 관리하든, 이 도구는 터미널 안에서 모든 것을 한눈에 볼 수 있는 단일 창을 제공합니다.

Windows, macOS, Linux에 CLI 설치하기

사용하는 운영 체제와 관계없이, 컴퓨터에 CLI를 설치하고 실행하는 과정은 놀랄 만큼 간단합니다. 이 도구는 Node.js로 빌드되므로 가장 중요한 전제 조건은 시스템에 최신이면서 안정적인 버전의 Node.js가 설치되어 있는 것입니다. 최대한의 호환성과 안정성을 위해 일반적으로 Node.js의 LTS(장기 지원) 버전 설치를 권장합니다.

Windows에 설치하기

Windows를 사용하신다면 선택지가 여러 개 있습니다. Windows PowerShell, PowerShell 7, 또는 Windows 명령 프롬프트를 사용할 수 있습니다. Node.js를 설치한 후, 원하는 터미널을 관리자 권한으로 열고 다음 명령을 실행합니다.

npm install -g @pnp/cli-microsoft365

-g 플래그는 CLI를 시스템 전역에 설치하여 터미널의 어떤 디렉터리에서든 m365 명령을 사용할 수 있도록 합니다. 설치 과정에서 필요한 패키지를 내려받고, 필요한 바이너리를 컴파일하며, 명령 경로를 등록합니다. 완료된 후에는 m365를 입력하고 Enter 키를 누르는 것만으로 설치를 확인할 수 있습니다. 기본 도움말 메뉴와 버전 정보가 표시되어야 합니다.

macOS에 설치하기

Mac 사용자도 동일한 환경을 그대로 경험할 수 있습니다. 터미널이나 iTerm2 같은 대체 터미널 에뮬레이터를 활용하면 됩니다. 터미널 애플리케이션을 열고 Node.js가 설치되어 있는지 확인하십시오. 많은 Mac 개발자가 Node 환경 관리에 Homebrew를 사용합니다. 다음 전역 설치 명령을 실행합니다:

npm install -g @pnp/cli-microsoft365

시스템 권한이나 Node.js를 처음 설치한 방식에 따라 권한 오류가 발생할 수 있습니다. 그런 경우에는 Node 설치 경로를 다시 구성해 권한 문제를 피하거나, 최후의 수단으로 명령 앞에 sudo를 붙일 수 있습니다. 다만 Node 권한을 올바르게 관리하는 것이 언제나 최선의 방법입니다. 설치가 성공적으로 끝나면 m365 --version을 입력해 최신 릴리스를 실행하고 있는지 확인하십시오.

Linux에 설치하기

Ubuntu, Fedora, Debian 등 다양한 배포판을 사용하는 Linux 사용자에게도 과정은 똑같이 간단합니다. Node.js와 npm을 패키지 관리자나 Node Version Manager(NVM)로 설치했다고 가정하면 다음을 실행하십시오:

sudo npm install -g @pnp/cli-microsoft365

Linux 환경에서는 CI/CD 파이프라인, Docker 컨테이너, Azure DevOps 에이전트 등 자동화 환경에서 Microsoft 365용 CLI를 자주 사용합니다. 가볍고 리소스 사용량이 적어서, 전체 그래픽 관리 도구를 실행하기 어렵거나 바람직하지 않은 헤드리스 자동화 서버에 특히 適합합니다.

성공적인 운영을 위한 환경 구성

이제 컴퓨터에 CLI 설치를 마쳤으니, 관리 작업이 최대한 원활하고 안전하게 진행되도록 환경을 조금 조정할 차례입니다. Microsoft 365용 CLI는 설치 후 바로 사용할 수 있도록 설계되어 있지만, 몇 분만 들여 기본 설정을 구성해 두면 나중에 문제를 해결하느라 몇 시간을 쓰는 일을 줄일 수 있습니다.

먼저 출력 형식에 대해 알아보겠습니다. 기본적으로 CLI는 깔끔한 JSON 형식으로 데이터를 출력하는 경우가 많습니다. 이는 다른 스크립트로 데이터를 전달하거나, jq 같은 도구로 파싱하거나, 자동화 파이프라인을 구성할 때 매우 유용합니다. 하지만 터미널에서 사용자나 사이트 목록을 빠르게 확인하려면 JSON이 다소 장황하게 느껴질 수 있습니다. config 명령을 사용하면 기본 출력 형식을 설정할 수 있습니다. 예를 들어 대화형 세션에서 사람이 읽기 쉽도록 출력을 표 형식으로 설정하려면 다음과 같이 합니다:

m365 config set --key output --value text

또한 자동 완성 기능을 살펴보시기 바랍니다. CLI는 PowerShell, Bash, Zsh에 대한 자동 완성을 지원합니다. 탭 자동 완성을 설정하면 작업 효율이 확실히 크게 올라갑니다. 예를 들어 m365 sp를 입력하고 Tab 키를 누르면 사용 가능한 SharePoint 명령을 순서대로 확인할 수 있습니다. 사용 중인 셸에 자동 완성을 활성화하려면 공식 문서에 나온 구성 명령을 실행하면 되며, 이 명령은 필요한 자동 완성 스크립트를 프로필에 추가합니다.

보안도 환경 구성에서 매우 중요한 부분입니다. CLI는 테넌트에 대해 상당한 관리 권한을 행사할 수 있으므로, 구성 파일과 토큰이 저장되는 위치를 항상 주의해야 합니다. 이 도구는 새 터미널 창을 열 때마다 매번 로그인하지 않도록 인증 토큰을 로컬에 캐시합니다. 로컬 디스크가 암호화되어 있는지 확인하고(Windows에서는 BitLocker, macOS에서는 FileVault 사용), 공용 또는 임시 장비에서 작업할 때는 로그아웃하거나 세션 캐시를 지우는 습관을 들이십시오.

Microsoft 365 테넌트에 인증하기

CLI를 설치하고 환경 구성을 마쳤다면, 다음 관문은 인증입니다. 이 명령줄 도구를 회사의 Microsoft 365 테넌트에 어떻게 안전하게 연결할까요? Microsoft 365용 CLI는 대화형 관리 세션과 무인 자동화 스크립트 모두에 맞춰 여러 인증 방식을 지원합니다.

대화형 로그인

일상적인 대화형 작업에서 가장 쉽고 일반적인 인증 방법은 표준 login 명령을 사용하는 것입니다:

m365 login

이 명령을 실행하면 CLI가 웹 브라우저를 열고 특정 URL로 이동하라는 메시지를 표시하며, 함께 고유한 장치 코드를 제공합니다. 이는 표준 OAuth 장치 코드 흐름입니다. 브라우저에 코드를 입력하면 회사 Microsoft 365 자격 증명으로 로그인하라는 요청이 표시되며, 조직의 조건부 액세스 정책에서 요구하는 다단계 인증(MFA)을 완료하고, 요청된 범위에 따라 CLI가 사용자를 대신해 작업할 수 있도록 권한을 부여해야 합니다.

인증이 성공하면 터미널에 로그인 확인 메시지가 표시되며, 현재 연결된 사용자 주체 이름(UPN)과 테넌트 ID가 함께 나타납니다. 언제든지 연결 상태를 확인하려면 다음 명령을 실행하면 됩니다.

m365 status

이 명령은 여러 테넌트나 스크립트 환경을 오가며 작업할 때 특히 유용합니다. 파괴적이거나 영향이 큰 명령을 실행하기 전에 올바른 환경을 대상으로 하고 있는지 확인할 수 있기 때문입니다.

서비스 주체 및 인증서 인증

사람의 개입 없이 실행되어야 하는 자동화 파이프라인을 구축하는 경우도 있을 것입니다. 예를 들어 GitHub Action, Azure DevOps 파이프라인, 또는 예약된 Azure Function이 여기에 해당합니다. 이런 환경에서는 대화형 장치 코드 로그인이 작동하지 않습니다. 이러한 시나리오에서는 CLI가 Azure AD 앱 등록(서비스 주체)을 통한 인증을 지원합니다.

클라이언트 ID와 클라이언트 암호를 사용하여 인증할 수 있으며, 더 안전하게는 Azure AD 애플리케이션 인증서를 사용할 수도 있습니다.

m365 login --authType certificate --appId YOUR_APP_ID --thumbprint YOUR_CERT_THUMBPRINT --tenant YOUR_TENANT.onmicrosoft.com

서비스 주체를 활용하면 최소 권한 원칙을 지킬 수 있습니다. 즉, 사용자 프로필 읽기나 특정 사이트 컬렉션 프로비저닝처럼 자동화 작업에 필요한 특정 API 권한만 CLI 앱 등록에 부여하고, 전역 관리자 권한을 광범위하게 주지 않아도 됩니다.

첫 관리 명령 실행하기

이제 재미있는 부분입니다! 설치와 구성, 인증이 모두 끝났습니다. 몇 가지 기본 명령을 실행해 Microsoft 365용 CLI가 실제로 작동하는 모습을 확인하고, 웹 GUI를 클릭하며 작업하는 것보다 얼마나 빠른지 직접 확인해 보겠습니다.

먼저 간단한 작업부터 시작하겠습니다. Azure Active Directory / Entra ID 테넌트의 사용자 목록을 가져와 보겠습니다. Azure Portal에 접속해 Microsoft Entra ID를 열고, 사용자를 클릭한 뒤 목록이 로드될 때까지 기다리는 대신, 다음 명령을 입력하기만 하면 됩니다.

m365 aad user list

순식간에 터미널에 사용자 데이터가 채워집니다. 특정 사용자를 찾기 위해 목록을 필터링하고 싶다면 쿼리 매개 변수를 추가하거나 출력을 파이프로 연결할 수 있습니다. 예를 들어 특정 부서의 사용자를 찾고 싶다면, CLI에서 결과를 깔끔하게 필터링할 수 있습니다.

다음으로 SharePoint Online을 살펴보겠습니다. 새 프로젝트 팀을 위해 최신 커뮤니케이션 사이트를 만들어야 한다고 가정해 봅시다. SharePoint 관리 센터에서 이 작업을 하려면 여러 번 클릭하고, 양식을 작성하고, 소유자를 설정하고, 기다려야 합니다. CLI를 사용하면 반복 가능한 단일 명령으로 이 작업을 스크립트화할 수 있습니다.

m365 spo site add --type CommunicationSite --title "Project Falcon" --url https://yourtenant.sharepoint.com/sites/projectfalcon --owner admin@yourtenant.onmicrosoft.com

이것이 의미하는 바를 생각해 보십시오. 이 단일 명령을 Microsoft Teams를 프로비저닝하고, 라이선스를 할당하고, 보안 그룹에 사용자를 추가하는 다른 명령들과 함께 셸 스크립트로 묶을 수 있습니다. 그러면 새 부서를 온보딩하거나 프로젝트 공간을 만드는 일이 번거로운 두 시간짜리 수작업에서 5초 만에 끝나는 자동화 스크립트 실행으로 바뀝니다.

Microsoft Teams 관리도 살펴볼 수 있습니다. 조직의 모든 팀을 나열하고 싶으신가요? 다음을 실행해 보십시오.

m365 teams team list

CLI가 지원하는 모듈의 범위는 놀라울 정도입니다. Power Apps, Power Automate 흐름, Exchange Online 설정, Planner 작업 등 무엇을 관리하든 명령 구조는 직관적이고 일관되게 유지됩니다: m365 [service] [resource] [action].

결론 및 다음 단계

이 가이드에서 살펴본 것처럼, Microsoft 365용 크로스 플랫폼 CLI는 단순한 관리 도구 하나가 아닙니다. 클라우드 환경과 상호작용하는 방식 자체를 바꾸는 패러다임의 전환입니다. 클릭 중심의 작업에서 벗어나 명령줄 자동화를 도입하면 전례 없는 수준의 효율성, 일관성, 확장성을 확보할 수 있습니다. 빠른 문제 해결을 위해 Windows에 설치하든, 일상적인 개발을 위해 macOS에 설치하든, 자동화된 CI/CD 파이프라인을 위해 Linux 컨테이너 안에서 실행하든, 이 CLI는 Microsoft 365 테넌트를 마스터하기 위한 통합되고 강력한 인터페이스를 제공합니다.

이번 블로그 글은 시작에 불과합니다. 실제 엔터프라이즈 환경에서 이 도구를 활용하는 방법, 고급 스크립팅 기법, 그리고 관리자들이 좀처럼 언급하지 않는 자동화 전략에 대한 더 깊은 이야기를 듣고 싶다면 함께 제작한 팟캐스트 에피소드 Automate Microsoft 365 with the Cross-Platform CLI를 꼭 들어 보시기 바랍니다. 구독하시고, 리뷰도 남겨 주시고, 오늘부터 관리 업무를 자동화해 보십시오!

Entities in this article

SharePoint Microsoft 365 Microsoft Entra ID Node.js PowerShell Microsoft Graph Microsoft 365 admin center Microsoft Teams Azure DevOps Container

Related articles

RSS