많은 현대 도구들, 특히 구성 관리 및 코드로서의 인프라(IaC) 공간에서는 JSON 또는 YAML 파일을 사용하여 구성 데이터를 저장합니다. YAML에서 JSON 형식으로 데이터를 변환해야 하는 경우 이 기사가 여러분을 위한 것입니다.
이 기사에서는 Python, PowerShell, Go에서 스크립팅을 포함하여 YAML에서 JSON 형식으로 데이터를 변환하는 여러 방법을 배우게 될 것입니다.
사전 요구 사항
이 튜토리얼의 예제를 따라 하고 싶다면
- A code editor. This article will use Visual Studio Code version 1.55.1. Feel free to use any code editor you want.
- YAML을 JSON으로 변환하기 시작하려면 예제 YAML 내용이 필요합니다. 아래 내용을 operating-systems.yml이라는 새 파일에 복사하여 작업 디렉토리에 YAML 파일을 저장하세요.
Python을 사용하여 YAML을 JSON으로 변환하기
Python은 자동화에 사용하기에 탁월한 언어입니다. 하지만 Python의 기능을 확장하여 YAML에서 JSON으로 문서를 변환할 수 있다는 것을 알고 계셨나요? 그리고 몇 단계만 수행하면 어렵지 않게 YAML에서 JSON으로 변환을 시작할 수 있습니다.
이 섹션의 예제를 실행하려면 Python 3.9와 PIP(작성 시점의 최신 버전은 21.0.1입니다)이 설치되어 있어야 합니다.
Python에 YAML 지원 추가
Python은 기본적으로 YAML을 읽거나 해석할 수 없습니다. 즉, Python은 기본적으로 YAML 문서를 읽거나 해석할 수 없습니다. Python에 YAML 지원을 추가하려면 먼저 PyYAML 모듈을 설치해야 합니다.
PyYAML 모듈을 설치하려면 Python의 패키지 설치자인 pip
명령을 실행해야 합니다. 이를 위해 다음 단계를 따르십시오.
먼저 명령 프롬프트나 PowerShell과 같은 기본 명령 해석기를 엽니다. pip
명령은 둘 다에서 작동해야 합니다. 이 예제에서는 PowerShell을 사용합니다.
그런 다음 PowerShell에서 아래 명령을 실행합니다. 이 명령은 PyYAML 모듈을 설치합니다.
아래 스크린샷에서 볼 수 있듯이 pip
가 PyYAML의 최신 버전을 설치했습니다(작성 시점의 버전은 5.4.1입니다).

변환 스크립트 작성
필요한 모듈(PyYAML)을 설치했으므로 변환 스크립트를 작성할 준비가 되었습니다. YAML을 JSON으로 변환하는 Python 스크립트를 작성하려면 다음 단계를 따르십시오.
1. 코드 편집기를 열고 작업 디렉터리에 convert-os.py라는 새 파일을 만듭니다. 이 파일이 스크립트입니다.
2. 코드를 복사하여 비어 있는 convert-os.py 파일에 붙여넣기하세요. 이 스크립트는 operating-systems.yml의 YAML 내용을 읽어와 JSON 형식으로 변환한 후, JSON 출력을 python_operating-systems.json 파일에 작성합니다.
3. convert-os.py 스크립트를 저장합니다.
변환 스크립트 실행
변환 스크립트를 만든 후, 테스트해보세요. YAML에서 JSON Python 스크립트를 실행하려면 다음 단계를 따르세요:
1. 터미널 창을 엽니다. 이 기사에서는 PowerShell을 사용하지만 명령 프롬프트 (CMD)도 동일하게 작동합니다.
2. 아래 명령어를 복사하여 PowerShell에 붙여넣고 Enter 키를 누르세요. 이 명령은 Python
실행 파일을 실행하여 이전 섹션에서 만든 convert-os.py 스크립트를 호출합니다.
명령을 실행한 후에는 아래 이미지와 유사한 출력을 볼 수 있어야 합니다. 화면에 JSON 출력이 표시되고 동일한 출력이 c:\temp\python_operating-systems.json 파일에 저장되었음을 확인할 수 있습니다.

3. 마지막으로, python_operating-systems.json이라는 JSON 파일을 엽니다. 이 파일은 convert-os.py Python 스크립트가 생성했어야 합니다. 이 예에서는 메모장에서 파일을 열려면 PowerShell에서 아래 명령을 실행하십시오.

PowerShell을 사용하여 YAML을 JSON으로 변환하기
PowerShell은 텍스트 파일을 수정하고 JSON으로 여러 형식의 객체를 변환할 수 있습니다. PowerShell은 확장 가능하기 때문에 적절한 모듈을 사용하여 YAML을 JSON 형식으로 변환할 수 있습니다.
PowerShell에 YAML 지원 추가하기
PowerShell은 JSON 콘텐츠를 처리하는 데 내장된 지원이 있지만 YAML은 지원되지 않습니다. 다행히도 YAML 파일을 지원하기 위해 PowerShell을 확장하는 모듈이 있습니다. 이 모듈의 이름은 PowerShell-yaml이며, 작성 시점의 최신 버전은 0.4.2입니다. 이 모듈을 설치하려면 다음 단계를 따르십시오.
1. 컴퓨터에서 PowerShell 세션을 엽니다.
2. 아래 명령을 복사하여 PowerShell에 붙여넣고 Enter 키를 누르세요. 이 명령은 Install-Module
cmdlet을 사용하여 PowerShell-yaml 모듈을 설치합니다.
3. 모듈을 설치한 후에는 PowerShell의 일부로서 두 개의 새로운 cmdlet이 사용 가능해집니다. 이러한 새로운 cmdlet은:
ConvertFrom-Yaml
– YAML 데이터를 해시 테이블로 변환하는 cmdlet입니다.
ConvertTo-Yaml
– 해시 테이블 객체를 YAML 데이터로 변환하는 cmdlet입니다.
PowerShell에서 두 cmdlet이 모두 사용 가능한지 확인하려면 PowerShell에서 아래 명령을 실행하세요.
아래에서 볼 수 있듯이 Get-Command
cmdlet은 PowerShell-yaml 모듈에서 cmdlet을 나열했습니다.

변환 스크립트 작성
YAML을 JSON으로 변환하는 PowerShell 스크립트를 작성하려면 다음 지침을 따르세요.
1. 코드 편집기를 열고 작업 디렉토리에 convert-os.ps1이라는 새 파일을 만듭니다.
2. 아래 코드를 복사하여 빈 convert-os.ps1 파일에 붙여넣으세요. 아래 코드 스니펫은 operating-systems.yml 파일을 읽고 JSON으로 변환합니다. JSON으로 변환한 후에는 그것을 PowerShell_operating-systems.json 파일에 저장합니다.
3. convert-os.ps1 파일을 저장하세요.
변환 스크립트 실행
변환 스크립트를 만들었으니 이제는 YAML을 JSON으로 변환하도록 스크립트를 실행하는 단계입니다. PowerShell 변환 스크립트를 실행하려면 다음 단계를 따르세요.
- PowerShell 창을 열어주세요. 이미 열어둔 것이 없다면요.
2. 아래 명령어를 복사하여 PowerShell에 붙여넣고 Enter 키를 누르세요. 이 명령어는 이전 섹션에서 생성한 convert-os.ps1
스크립트를 호출합니다.
3. 스크립트를 실행한 후, 이전 단계에서 convert-os.ps1 스크립트가 생성한 JSON 출력 파일 C:\temp\PowerShell_operating-systems.json을 엽니다. 이를 위해 PowerShell에서 아래 명령어를 실행하여 PowerShell_operating-systems.json을 메모장으로 엽니다.

Go를 사용하여 YAML을 JSON으로 변환하기
Python과 PowerShell은 모두 고수준 언어입니다. 고수준 언어는 스크립트 작성을 쉽게 만들지만 조금 더 많은 제어권을 빼앗습니다. 반면에 Go는 저수준 언어로, YAML 데이터를 가져오는 것을 더 복잡하게 만듭니다.
이 섹션의 예제는 Go를 사용할 것입니다. 이 글을 작성하는 시점에서 최신 버전은 go1.16.3입니다. 아직 Go를 설치하지 않은 경우 컴퓨터에 설치하려면 다운로드 및 설치 페이지를 참조하세요.
Go에 YAML 지원 추가하기
PowerShell과 Python과 마찬가지로 JSON 지원은 Go의 핵심 라이브러리의 일부입니다. 그러나 YAML은 아닙니다. Go에 YAML 지원을 추가하려면 YAML.v3 패키지를 먼저 go get
명령어를 사용하여 설치해야 합니다. YAML.v3 패키지를 설치하려면:
먼저, 컴퓨터에서 사용할 명령 셸을 엽니다. 예를 들어, PowerShell 또는 명령 프롬프트를 사용합니다. 이 예제에서는 PowerShell을 사용합니다.
다음에는 PowerShell에서 아래 명령을 복사하여 실행하십시오. 이 명령은 gopkg.in/yaml.v3 패키지를 다운로드하고 설치합니다.

변환 스크립트 작성
YAML을 JSON으로 변환하는 Go 스크립트를 작성하려면 다음 지침을 따르십시오.
1. 코드 편집기를 열고 작업 디렉토리에 convert-os.go라는 새 파일을 만듭니다.
2. 아래 코드를 복사하여 빈 convert-os.go 파일에 붙여넣으십시오. 이 코드는 필요한 패키지를 가져오고 일부 메모리 구조를 정의하며 YAML 파일을 가져와 JSON으로 변환한 다음 c:\temp\go_operating-systems.json이라는 JSON 파일에 쓰기 작업을 수행합니다.
3. convert-os.go 파일을 저장하세요.
변환 스크립트 실행
Go 스크립트를 실행하려면 스크립트 파일명 뒤에 go run
명령을 사용합니다. YAML을 JSON으로 변환하는 Go 스크립트를 실행하려면 다음과 같이 진행하십시오.
1. 컴퓨터에서 사용할 명령 셸을 엽니다. Windows에서는 명령 프롬프트나 PowerShell에서 go
명령이 모두 작동합니다. 이 예제에서는 PowerShell을 사용하여 go
를 실행합니다.
2. PowerShell에 진입한 후 아래 명령을 복사하여 PowerShell에서 실행합니다. 이 명령은 go run
명령을 호출하여 c:\temp\convert-os.go 스크립트를 실행합니다.

3. 스크립트를 실행한 후, 이전 단계에서 convert-os.go 스크립트가 생성한 출력 파일 C:\temp\Go_operating-systems.json을 엽니다. 이 예에서는 메모장에서 Go_operating-systems.json을 엽니다.

결론
이 글에서는 Python, PowerShell 및 Go 스크립트를 사용하여 YAML 데이터와 파일을 JSON으로 변환하는 방법을 배웠습니다. 이제 YAML을 JSON으로 변환하는 다양한 방법을 알았는데, 어떤 방법을 더 많이 사용하실 건가요?