양자 프로그래밍 with QDK & Q#
참고. 이 글은 개인적으로 양자컴퓨터 프로그래밍과 Microsoft QDK/Q# 기술을 공부한 “자료”들을 기록하면서 더불어 관심있는 다른 분들과 공유하기 위한 용도입니다. 기술에 대한 풀이나 설명을 추가하지 않습니다(아직 역량이 부족합니다^^) |
- Microsoft Learn-1-Quantum 개발 키트를 사용하여 첫 번째 Q# 프로그램 만들기
Microsoft 양자 프로그래밍 설명서
우선 Microsoft에서 Open Source로 제공하는 양자컴퓨터 프로그래밍 개발 도구(QDK)와 언어(Q#) 그리고 관련 Azure Quantum 서비스에 등에 대한 학습 자료로서 그 시작점은 “Microsoft Quantum 설명서” 가 가장 좋을 것 같습니다.
참고. 양자컴퓨팅(기반이 되는 양자역학)의 중요 개념인 양자 중첩상태(Superposition), 얽힘(Entanglement) 등의 학술적 개념과 Qubit(양자비트) 등에 대해서는 사전 이해가 있으면 더 많은 도움이 됩니다만, 없어도 괜찮습니다 문서에서 추가 설명을 다룹니다.
Quantum 개발 키트를 사용하여 첫 번째 Q# 프로그램 만들기
그렇지만 개발자로서 그 첫 시작은 역시나 “Hello World”에서 부터라는 것 우리모두 알고 있죠? 😀
Microsoft 기술을 단계별로 따라하며 배울 수 있는 Learn 사이트에서 Quantum Computing 관련 자료는 두 개 정도로 보입니다. 그 중 첫 번째가 바로 사실상의 Q# Hello World에 해당하는 학습 자료입니다.
저는 얼만 전에 이렇게 “Completed”한 상태입니다 😀
오늘은 이 자료를 소개하겠습니다.
학습 목차는 아래와 같습니다.
- 소개1분
- 연습 – Visual Studio Code용 QDK 설치12분
- Q# 프로그램은 어떻게 구성되나요?6분
- 연습 – 양자 임의 비트 생성기 만들기8분
- 연습 – 양자 난수 생성기 만들기10분
- Azure Quantum이란?6분
- 지식 점검3분
- 요약
제가 따라 학습한 경험 몇 가지를 공유하면,
- 우선 QDK 설치, 실행, 테스트 등의 환경이 Visual Studio Code에 맞춰져 있습니다(Open Source임을 고려). 참고로 저는 Visual Studio에서 테스트를 진행했습니다. 자료와는 조금 다르므로 우선 .NET Core 버전 맞추기부터 시작해서 QDK 설치 등을 설명서를 따라하면서 진행하시면 크게 어렵지 않으실겁니다.
- Q#의 프로그래밍 구성의 간단한 설명과 더불어 두 개의 아주 간단한 예제 프로그램이 Q# 언어와 더불어 양자컴퓨터 프로그래밍의 가장 기본이자 기초가 되는 Qubit(양자 비트)의 생성, 중첩상태, 측정과 결과에 관한 코드 진행을 경험해 볼 수 있습니다.
- 특히 우리가 알고 있는 난수가 일명 “의사난수(Pseudo Random)”라는 이론상의 정확한 의미의 난수가 아니라는 점, Qubit를 이용한 난수 발생은 어떻게 다르지를 체험해 볼 수 있습니다.
- 한글 번역이 잘 안되어 있는 부분이나 매끄럽지 않는 부분이 있습니다, 영문 문서를 같이 참조하시면 좀 더 나으실겁니다.
양자컴퓨터 프로그램에 관심 있는 분이라면 우선 Hello World와 Qubit 1개를 직접 생성하고 처리하는 예제를 돌려보시는 것만으로도 매우 흥미로우실 겁니다 😀