PowerShell에서 배열, 해시 테이블 및 사전을 만드는 방법
- PowerShell에서 배열 생성
- PowerShell에서 해시 테이블 작업하기
- PowerShell에서 정렬된 사전 생성하기
- 해시 테이블 vs. 정렬된 사전: 주요 차이점
- 실제 사용 사례
- 결론
- 자주 묻는 질문 (FAQ)

PowerShell은 데이터를 효율적으로 저장하고 조작할 수 있는 다양한 데이터 구조를 제공합니다. 배열, 해시 테이블 및 정렬된 사전은 스크립트 및 자동화 작업에서 다양한 유형의 데이터 컬렉션을 처리하는 데 도움이 되는 기본 구조입니다.
이러한 데이터 구조를 사용하는 방법을 이해하면 PowerShell 스크립트에서 더 나은 조직화, 효율적인 검색 및 구조화된 데이터 관리를 할 수 있습니다. 이 가이드에서는 다음을 탐색합니다:
- PowerShell에서 배열 생성 및 조작
- 키-값 저장을 위한 해시 테이블 사용
- 데이터 순서를 유지하기 위한 정렬된 사전 작업
- 해시 테이블과 정렬된 사전 비교
- 각 구조의 실제 사용 사례 구현
이 튜토리얼이 끝나면 PowerShell에서 이러한 데이터 구조를 사용하는 방법에 대한 확고한 이해를 가지게 될 것입니다.
PowerShell에서 배열 생성
PowerShell에서 배열이란 무엇인가?
PowerShell에서 배열은 단일 변수에 저장된 여러 값의 컬렉션입니다. 배열은 데이터를 효율적으로 저장하고 조작할 수 있도록 합니다.
@()
를 사용하여 배열 선언하기
PowerShell에서 배열을 초기화하는 올바른 방법은 @()
구문을 사용하는 것입니다. 다음은 세 개의 문자열 요소로 배열을 생성하는 방법입니다:
$data = @('apple', 'ball', 'cat')
출력:
apple
ball
cat
빈 배열 생성
나중에 채워질 빈 배열이 필요한 경우 다음과 같이 선언합니다:
$data = @()
배열의 데이터 유형 가져오기
.GetType()
메소드를 사용하여 배열의 유형을 확인할 수 있습니다:
$data.GetType()
출력:
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
배열에서 요소 접근
배열은 0 기준 인덱스를 가지므로 첫 번째 항목은 인덱스 [0]
에 있습니다.
$data[0] # Retrieves the first item
출력:
apple
배열의 마지막 요소에 동적으로 접근하려면 다음을 사용합니다:
$data[-1]
출력:
cat
배열에 항목 추가하기
PowerShell 배열은 불변하기 때문에 Python이나 JavaScript처럼 직접 항목을 추가할 수 없습니다. 대신, 추가 항목을 포함하는 새로운 배열을 만들어야 합니다:
$data += 'dog'
출력:
apple
ball
cat
dog
배열에서 항목 제거하기
항목을 제거하려면 배열 필터링을 사용합니다:
$data = $data | Where-Object { $_ -ne 'ball' }
출력:
apple
cat
dog
PowerShell에서 해시 테이블 작업하기
해시 테이블이란 무엇인가?
해시 테이블은 고유한 키를 사용하여 값을 효율적으로 검색할 수 있는 키-값 저장 구조입니다. 해시 테이블은 사전 또는 연관 배열로도 알려져 있습니다.
해시 테이블 생성하기
PowerShell에서 해시 테이블을 선언하려면 @{}
구문을 사용합니다:
$hash = @{Fruit = "Apple"; Color = "Red"; Count = 5 }
해시 테이블 내용 보기
$hash
출력:
Name Value
---- -----
Fruit Apple
Color Red
Count 5
해시 테이블에서 값 접근
키를 사용하여 값을 접근할 수 있습니다:
$hash['Color']
출력:
Red
또는 점 표기법을 사용할 수도 있습니다:
$hash.Count
출력:
5
해시 테이블에서 항목 추가 및 제거하기
새로운 키-값 쌍 추가
$hash['Shape'] = 'Round'
키-값 쌍 제거
$hash.Remove('Color')
PowerShell에서 정렬된 사전 생성하기
정렬된 사전을 사용하는 이유?
해시 테이블은 삽입 순서를 유지하지 않지만 정렬된 사전은 유지합니다. 데이터의 순서가 중요한 경우 유용합니다.
정렬된 사전 선언하기
[ordered]
속성을 사용합니다:
$dict = [ordered]@{Fruit = "Apple"; Color = "Red"; Count = 5 }
정렬된 사전 요소 접근
$dict['Fruit']
출력:
Apple
순서 유지
정상 해시 테이블을 여러 번 출력하면 순서가 변경될 수 있습니다. 그러나 정렬된 사전에서는 순서가 일관되게 유지됩니다.
$dict
출력:
Name Value
---- -----
Fruit Apple
Color Red
Count 5
해시 테이블 vs. 정렬된 사전: 주요 차이점
특징 | 해시 테이블 | 정렬된 사전 |
---|---|---|
순서 유지? | ❌ 아니오 | ✅ 예 |
접근 속도 | ✅ 빠름 | ✅ 빠름 |
최적 | 임의 접근 데이터 | 키 순서 보존하기 |
실제 사용 사례
사용 사례 1: 사용자 정보 저장 (정렬된 사전 예제)
$user = [ordered]@{
Name = "John Doe"
Email = "johndoe@example.com"
Role = "Admin"
}
사용 사례 2: 단어 발생 횟수 세기 (해시 테이블 예제)
$text = "apple banana apple orange apple banana"
$wordCount = @{}
$text.Split() | ForEach-Object {
if ($wordCount.ContainsKey($_)) {
$wordCount[$_] += 1
} else {
$wordCount[$_] = 1
}
}
$wordCount
출력:
Name Value
---- -----
apple 3
banana 2
orange 1
결론
PowerShell은 데이터를 효율적으로 저장하고 조작하기 위해 배열, 해시 테이블 및 정렬된 사전을 제공합니다.
- 값 목록으로 작업할 때 배열(
@()
)을 사용하십시오. - 순서 제약 없이 키-값 저장을 위해 해시 테이블(
@{}
)을 사용하십시오. - 삽입 순서를 보존해야 할 때 정렬된 사전(
[ordered]@{}
)을 사용하십시오.
이러한 데이터 구조를 마스터하면 PowerShell에서 스크립팅 효율성과 자동화 능력이 향상될 것입니다. 🚀
자주 묻는 질문 (FAQ)
PowerShell에서 해시 테이블과 사전의 차이는 무엇인가요?
PowerShell에서 해시 테이블과 사전은 종종 같은 의미로 사용됩니다. 그러나 사전은 .NET 프레임워크(System.Collections.Hashtable
)의 일부인 반면, PowerShell의 해시 테이블(@{}
)은 내장되어 있으며 PowerShell 스크립트에 최적화되어 있습니다.
PowerShell 배열에서 항목을 추가하거나 제거하는 방법은 무엇인가요?
PowerShell에서 배열은 불변이므로 직접 수정할 수 없습니다. 대신, 다음을 사용하십시오:
- 항목 추가:
$array += 'newItem'
- 항목 제거:
$array = $array | Where-Object { $_ -ne 'itemToRemove' }
PowerShell에서 해시 테이블을 정렬할 수 있나요?
네, 정렬된 사전([ordered]@{}
)을 사용하거나 해시 테이블을 정렬된 형식으로 변환하여 사용할 수 있습니다:
$sortedHash = $hash.GetEnumerator() | Sort-Object Name
$sortedHash
이렇게 하면 키가 알파벳 순서로 표시됩니다.