PowerShell에서 배열, 해시 테이블 및 사전을 만드는 방법

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

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

이렇게 하면 키가 알파벳 순서로 표시됩니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - PowerShell Array