PowerShell에서 배열을 만들고 사용하는 방법
변수는 거의 모든 코딩 언어에서 가장 기본적인 데이터 구조입니다.하지만 솔직히 말해서, 특히 더 복잡한 내용을 다룰 때는 변수 하나만으로는 충분하지 않습니다.바로 이 부분에서 배열이 중요한 역할을 합니다. C++, Python, PowerShell 등 어떤 언어든 배열은 어디에나 존재합니다.하지만 PowerShell 배열은 실제로 어떻게 작동할까요? 구문은 무엇일까요? 그리고 더 중요한 것은, 어떻게 하면 헷갈리지 않고 사용할 수 있을까요? 자, 이제 자세히 알아보겠습니다.
PowerShell 배열 101
기본적으로 배열은 여러 변수를 그룹화한 것입니다.여러 개의 개별 변수를 관리하는 대신, 관련 데이터를 하나의 컨테이너에 넣고 각 요소에 0부터 번호를 매깁니다.많은 데이터를 한 번에 관리할 때 매우 유용합니다. Windows PowerShell에서는 배열을 만드는 것이 간단합니다.
변수는 $ 기호 로 시작합니다.예를 들어, $prime = 13$는 숫자만 저장합니다.하지만 배열을 만들고 싶다면 여러 값을 쉼표로 구분하여 할당할 수 있습니다..아주 간단합니다.하지만 어떤 사람들은 명시적으로 표현하고 싶어서 다음과 같이 @$week = "Monday", "Tuesday", "Wednesday" 기호 와 함께 괄호를 사용합니다.
$week = @("Monday", "Tuesday", "Wednesday")
이 기능은 특히 명령의 출력을 다루거나 단일 값인지 배열인지 혼동되는 것을 피하고 싶을 때 유용합니다.0부터 9까지 숫자 범위가 필요한 경우 다음과 같이 할 수 있습니다.
$digits = 0..9
0부터 9까지의 숫자 배열을 생성합니다.빈 배열을 초기화할 때는 다음과 같이 할 수 있습니다.
$values = @()
이건 나중에 추가할 수 있는 빈 공간입니다.그리고 중첩을 선호하신다면, 물론 배열은 다른 배열을 포함할 수 있습니다.
$coordinates = @( (5, 10, 23), (11, 7, 16) )
주의하세요.중첩은 금방 혼란스러워질 수 있으므로, 경험이 없다면 아껴서 사용하세요. PowerShell 배열은 혼합된 유형을 저장할 수 있을 만큼 유연하지만, 특정 데이터 유형으로만 제한하려면 다음과 같이 할 수 있습니다.
[int[]] $numbers = 2, 3, 4, 5
이렇게 하면 숫자가 들어가야 할 곳에 문자열을 실수로 넣는 일이 없어져 나중에 골치 아픈 상황을 피할 수 있습니다.타입을 주의 깊게 다루지 않으면 이상한 버그가 발생하기 쉽습니다.
배열 데이터 액세스 및 수정
그럼 배열을 만들었으니, 어떻게 배열에서 데이터를 꺼내오나요? 간단합니다.인덱스를 이용하면 됩니다.배열 인덱스는 0부터 시작한다는 걸 기억하세요.따라서 여섯 번째 항목을 원한다면.입니다 $numbers[5].예를 들어:
$var = $numbers[5]
이렇게 하면 인덱스 5의 값이 새 변수에 복사됩니다.이라는 배열에서 “수요일”을 읽고 싶으신가요 $days? 를 입력하세요 $days[2].0부터 계산하기 때문에 첫 번째 항목은 입니다 $days[0].
배열 값을 바로 변경할 수도 있습니다.예를 들어, 두 번째 요소를 0으로 설정하려면 다음과 같이 합니다.
$numbers[1] = 0
간단합니다.기존 배열에 새 항목을 추가하려면.를 추가하기만 하면 됩니다 +=.예를 들어, .$names += "Johny"는 배열 끝에 “Johny”를 추가합니다 $names.또는 여러 항목을 한 번에 추가하려면.$names += "Charlie", "Liam", "Teresa".와 같은 다른 배열이 있는 경우.를 사용하여 병합 $surnames할 수 있습니다.$names += $surnames
배열 반복을 간편하게 만들기
때로는 각 요소에 수동으로 접근하는 것이 번거로울 수 있습니다.특히 모든 요소에 대해 작업을 수행하려는 경우 더욱 그렇습니다. PowerShell에는 몇 가지 편리한 옵션이 있습니다.기존의 for 루프는 다음과 같습니다.
for ($i = 0; $i -lt $days. Length; $i++) { $days[$i] }
이렇게 하면 각 항목을 살펴보고 지시한 대로 작업이 진행됩니다.foreach 루프는 더욱 편리하고 오류 발생률도 낮습니다.
foreach ($day in $days) { $day }
솔직히 말해서, 어떤 설정에서는 처음에는 for 루프가 필요할 수도 있지만, foreach 에 익숙해지면 훨씬 수월하게 사용할 수 있습니다.
PowerShell 배열은 언제 유용한가요?
배열 없이 스크립팅할 때 가장 큰 골칫거리는 변수의 혼돈입니다.고유한 변수 이름이 많고, 잊거나 잘못 참조하기 쉬운 변수들이 많습니다.배열을 사용하면 모든 관련 데이터를 하나의 관리 가능한 컨테이너로 제한하여 버그를 줄이고 스크립트를 더욱 깔끔하게 만들 수 있습니다.특히 자동화 환경에서는 cmdlet 출력이 어딘가에 저장되어야 하는 객체이기 때문에 배열이 매우 유용합니다.PowerShell 객체 처럼 cmdlet에서 데이터를 가져오는 경우, 더 나은 처리를 위해 배열로 파이프할 수 있다는 점을 기억하세요.
네, 처음에는 좀 이상할 수 있지만, 배열을 효과적으로 사용하기 시작하면 스크립트가 더 깔끔하고 유지 관리하기 쉬워집니다.다만, 타입과 인덱스는 신중하게 사용해야 합니다. PowerShell이 이 부분을 필요 이상으로 어렵게 만들 수밖에 없으니까요.
관련 기사
이 글이 도움이 되었나요?