피드로 돌아가기
NgSysV2-10.2: PowerShell Scripting essentials
Dev.toDev.to
DevOps

PowerShell은 객체를 텍스트 대신 파이프라인으로 전달하여 데이터 구조를 유지하면서 처리한다

NgSysV2-10.2: PowerShell Scripting essentials

MartinJ2026년 3월 30일5beginner

Context

기존 CLI 도구들은 문자열을 파싱하여 데이터를 처리하므로 파싱 규칙이 변경되면 스크립트가 오작동한다. PowerShell은 이런 파싱 의존성을 제거하기 위해 객체를 직접 전달하는 방식을 사용한다. 변수는 $ 접두사로 선언하며 동적 타이핑을 지원하지만 한 번 할당되면 타입이 강하게 적용된다.

Technical Solution

  • 변수명 앞에 $를 붙이고 대소문자를 구분하지 않으며 문자열, 숫자, 배열, 객체를 저장할 수 있다
  • 비교 연산자(-eq, -ne, -gt, -lt, -ge, -le)와 논리 연산자(-and, -or, -not)를 사용하여 조건을 평가한다
  • For, While, ForEach 루프를 지원하며 While 루프는 조건이 참인 동안 실행되고 ForEach는 컬렉션을 순회한다
  • If-Else 문으로 조건부 실행을 제어하고 $null, $false, $0, $'', $@()는 false로 평가된다
  • Get-Process | Sort-Object Name 같은 파이프라인으로 Producer | Filter | Transform | Output 패턴을 구현한다
  • try...catch 블록으로 예외를 처리하며 $ErrorActionPreference = 'Stop'으로 글로벌 에러 처리를 설정한다

Windows 환경에서 Get-Service | Where-Object { $_.Status -eq 'Running' } | Select-Object Name 같은 파이프라인 패턴을 사용하면 복잡한 텍스트 파싱 없이 서비스 목록을 필터링할 수 있다

원문 읽기