<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>hazzi.log</title>
        <link>https://velog.io/</link>
        <description>성장하는 개발자</description>
        <lastBuildDate>Fri, 04 Dec 2020 01:28:27 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>hazzi.log</title>
            <url>https://images.velog.io/images/ha_zzi/profile/f7bf092b-5266-42f7-8c9a-43ae9001002a/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. hazzi.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/ha_zzi" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA['정말' 입문자들을 위한 맥OS 파이썬 환경설정 가이드 ]]></title>
            <link>https://velog.io/@ha_zzi/%EB%8F%99%EB%A3%8C%EB%B6%84%EB%93%A4%EC%9D%84-%EC%9C%84%ED%95%9C-%EB%A7%A5OS-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-%EA%B0%80%EC%9D%B4%EB%93%9C</link>
            <guid>https://velog.io/@ha_zzi/%EB%8F%99%EB%A3%8C%EB%B6%84%EB%93%A4%EC%9D%84-%EC%9C%84%ED%95%9C-%EB%A7%A5OS-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-%EA%B0%80%EC%9D%B4%EB%93%9C</guid>
            <pubDate>Fri, 04 Dec 2020 01:28:27 GMT</pubDate>
            <description><![CDATA[<p>vscode와 anaconda 설치가 끝난 상황이라고 알고 있습니다. 설치가 안되셨다면 꼭 설치해주세요!
아나콘다 버전은 현재 3.8입니다.</p>
<p><a href="https://jwkim96.tistory.com/32">아나콘다란</a>
<a href="https://www.redhat.com/ko/topics/middleware/what-is-ide">IDE란</a></p>
<p>여기서부터는 터미널을 이용해야하기 때문에 조금 낯설게 느껴질 수 있지만 그게 당연한 것이므로 명령어에 조금씩 익숙해져 봅시다!</p>
<p>저희는 맥북을 사용하고 있기 떄문에 맥OS에 맞는 명령어를 입력해주어야 컴퓨터가 알아듣고 우리가 원하는 일을 해줄 수 있습니다.</p>
<p>가상환경을 생성하고 그 가상환경을 vscode가 찾을 수 있도록 연동까지 하는 것이 글의 목표입니다.</p>
<blockquote>
<p>가상환경은 자신이 원하는 python 환경을 구축하기 위해 필요한 모듈만 담아 놓는 바구니라고 생각하시면 좋습니다. 개발을 하다보면 여러 라이브러리를 설치하게 될 것인데, 한 바구니에다가 모든 라이브러리를 때려 박으면 서로 충돌이나거나 버그가 발생할 수 있습니다. 이를 방지할 수도 있고, 다른 버전을 사용할 때도 종종 있는데 매번 downgrade 나 upgrade를 하는 것은 비효율적이기도 하고 또 다른 문제가 생길 수도 있으니 꼭 가상환경을 세팅해주세요. (<del>세팅 안해도 개발이 가능하긴 하지만..</del>)</p>
</blockquote>
<p>런치패드에 있는 기타폴더에 있는 &#39;터미널&#39;을 클릭해줍니다. 
<del>(기타폴더에 없어도 어딘가에 존재할거에요..!)</del>
터미널은 저희가 컴퓨터에게 명령을 내릴 수 있는 통로입니다. 
컴퓨터와의 채팅이라고 생각하면 편합니다 :)</p>
<p>저희의 첫 번째 명령어를 입력해봅시다.
아나콘다를 설치한 이유는 가상환경을 만들기 위해서입니다. anaconda에게 부탁하여 가상환경을 생성해봅시다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/4d5bcc28-8007-4e8a-8301-fc9f0b2cc565/image.png" alt=""></p>
<pre><code>conda create --name my_env python==3.8</code></pre><p>터미널에 위와 같이 입력해주세요. 위 명령어는 
&quot;아나콘다야 my_env라는 이름으로 가상환경을 설치해줄래? 아 그리고 python 버전은 3.8로 부탁해&quot; 를 컴퓨터가 알아들을 수 있게 명령을 내렸습니다.
가상환경 이름을 my_env라고 하였는데, 어떤 이름을 하셔도 괜찮지만 env라는 키워드가 있다면 가상환경이란 것을 바로 알 수 있겠죠?</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/996edb73-17b6-4b01-9bea-d9b9317283ac/image.png" alt=""></p>
<p>위와 같이 뜬다면 잘하신겁니다 ! 엔터를 눌러 설치를 더 진행합니다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/be1f83f5-6562-4ba0-97d5-199ea01ca5f7/image.png" alt=""></p>
<p>친절하게도 가상환경을 활성화/비활성화할 수 있는 명령어를 알려주네요.</p>
<pre><code>conda activate my_env</code></pre><p>&quot;아나콘다야 my_env라는 이름을 가진 가상환경을 실행시켜줘&quot;라는 명령어를 입력해봅시다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/63711b11-5af3-413e-89b8-21abb915fe40/image.png" alt=""></p>
<p>잘 따라오셨다면 앞에 (base)였던 부분이 (my_env)라고 바뀐 것을 확인할 수 있습니다. 이제 저희는 가상환경이라는 바구니 안에 들어와 있습니다. 아까 저희가 아나콘다에게 python 3.8버전을 부탁하였는데 제대로 설치되었는지 확인해봅시다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/c75d3ad9-f851-40e0-9626-0f2c29a8fcc8/image.png" alt=""></p>
<pre><code>python --version</code></pre><p>Python 3.8.0 이라는 대답을 볼 수 있습니다. 부탁을 잘 들어준 것 같네요! 버전일치는 중요합니다. 버전이 다르면 같은 코드라도 다르게 실행되거나 실행이 안될수도 있습니다.</p>
<p>아까 위에서 터미널에서 보았듯이, 가상환경 종료 명령어는</p>
<pre><code>conda deactivate</code></pre><p>입니다. 새로운 라이브러리를 설치하실 때는 가상환경을 실행하고 pip라는 명령어를 통해 설치할 건데, 이것은 나중에 더 자세히 알려드리도록 하겠습니다.</p>
<p>이제 vscode로 넘어가볼까요?</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/68d24b2f-9828-4dcf-81a4-d5d6f5670b72/image.png" alt=""></p>
<p>vscode를 실행하면 위와 같은 화면이 뜹니다.
New file을 클릭하거나 command + N을 입력하여 새 파일을 추가해봅시다. 빈 파일에 다음과 같이 입력해보세요. 이 명령어는 Story City! 를 출력해줄것입니다.</p>
<pre><code>print(&quot;Story City!&quot;)</code></pre><p><img src="https://images.velog.io/images/ha_zzi/post/58631a8e-869a-42c6-b0af-37b67bab36d1/image.png" alt=""></p>
<p>그런다음 command + S 를 입력하여 파일을 저장해봅시다. 동일한 작업은 같은 폴더안에서 파일들을 관리하는 것이 좋고, 파일 이름은 어떤 것으로 해도 상관없습니다만, .py를 꼭 붙여주세요 이것이 python 파일이라고 명시적으로 알려주는 것이기 때문입니다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/2219a218-84af-4721-b229-92ffd913bf0b/image.png" alt=""></p>
<p>제대로 따라오셨다면 위와 같이 폰트 색이 알록달록해진것을 확인할 수 있습니다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/242a8104-4ea0-4fba-951e-df6b2688c617/image.png" alt=""></p>
<p>왼쪽 하단에 위와 같은 가상환경(또는 인터프리터)을 선택할 수 있는 버튼이 있습니다. 처음 설치한 경우에는 사진과는 다를 것인데 일단 클릭해주세요.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/6ce7d450-c4fd-46f0-a84f-037d70eed4c1/image.png" alt=""></p>
<p>이곳에 my_env가 보이시면 그것을 클릭해주세요 !</p>
<p>pylint 를 설치하라는 메시지가 뜰 거인데, 설치하시고 Conda를 클릭하시면 자동으로 가상환경이 실행됩니다.</p>
<p>파일 실행은 shift + Enter 를 입력하시면 되는데,
아마 처음이시면 이것저것 설치하라고 메시지가 뜰겁니다. 다 설치해주세요!</p>
<h2 id="20220121">2022.01.21</h2>
<p>새 맥북으로 동일하게 세팅해도, 터미널에서 실행이 되길래 구글링을 해봤습니다.</p>
<p><a href="https://superuser.com/questions/1461655/vs-code-shiftenter-does-not-send-code-to-python-interactive-why">https://superuser.com/questions/1461655/vs-code-shiftenter-does-not-send-code-to-python-interactive-why</a> </p>
<p>위 링크에 따라 Settings에서 Send Selection To Interactive Window 를 체크해주니 Shift + Enter로 Interactive Window에서 잘 실행되는 것을 확인할 수 있었습니다 :&gt;</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/36fea7b9-8e58-4a96-891c-f6417d87bfc4/image%20(11).png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Qiskit 시작하기 (Getting Started with Qiskit)]]></title>
            <link>https://velog.io/@ha_zzi/Getting-Started-with-Qiskit-%EB%B2%88%EC%97%AD</link>
            <guid>https://velog.io/@ha_zzi/Getting-Started-with-Qiskit-%EB%B2%88%EC%97%AD</guid>
            <pubDate>Wed, 21 Oct 2020 06:37:12 GMT</pubDate>
            <description><![CDATA[<p><a href="https://medium.com/@abby.s.mitchell/getting-started-with-qiskit-explained-by-a-software-developer-not-a-quantum-physicist-b8ba820685e5">https://medium.com/@abby.s.mitchell/getting-started-with-qiskit-explained-by-a-software-developer-not-a-quantum-physicist-b8ba820685e5</a> / abby mitchell</p>
<blockquote>
<p>이 글은 외국의 개발자분이 초보자를 위해 Qiskit 튜토리얼을 작성하신 것을 번역하였습니다. 정말 좋은 자료라 한국어로 번역하여 많은 분들이 읽으시면 좋겠는 마음에 원작자에게 허락을 구했더니 흔쾌히 번역을 허락해주셨습니다 다시 한번 감사드려요! (Abby, Thank you again!)
<a href="https://github.com/harheem">저</a>와 개발자 친구 <a href="https://github.com/neont21">피터</a>가 번역하였고 신소영(<a href="mailto:sophy.shin@kakao.com">sophy.shin@kakao.com</a>)님이 검수해주셨습니다 :)</p>
</blockquote>
<h1 id="qiskit-시작하기-물리학자말고-소프트웨어-개발자가-설명해줄게">Qiskit 시작하기 (물리학자말고 소프트웨어 개발자가 설명해줄게)</h1>
<p>양자컴퓨팅에 관심이 있는 소프트웨어 개발자인데, 고등학교 때부터 물리학을 공부하지 않았다고요? IBM의 퀀텀 코드베이스(Qiskit)를 사용해 보고 싶지만, 어디서부터 시작해야 할지 모르겠다고요? 몇 개의 블로그나 튜토리얼을 찾았지만, 전문 용어 때문에 꼼짝 못하고 있진 않나요? 
여러분은 운이 좋습니다. 저는 이미 위와 같은 어려움을 겪었고 여러분은 그런 과정을 겪지 않도록 이 블로그를 쓰기로 하였습니다.</p>
<p>이 튜토리얼을 안내해 드리겠습니다 : Getting Started with Qiskit (<a href="https://github.com/Qiskit/qiskit-tutorials/blob/master/tutorials/circuits/1_getting_started_with_qiskit.ipynb">https://github.com/Qiskit/qiskit-tutorials/blob/master/tutorials/circuits/1_getting_started_with_qiskit.ipynb</a>)</p>
<p>저는 양자물리학자가 아닙니다. 이 블로그의 목표는 튜토리얼의 개념에 대한 매우 수준 높은 개요를 제공함으로써 더 많은 소프트웨어 개발자들이 양자컴퓨팅을 시작할 수 있도록 돕는것입니다. 여러분이 쓰는 코드를 이해하는데 도움이 되는 아주 기본적인 필요한 지식을 알려드리겠습니다. 만약 여러분이 이 블로그에서 다루는 지식 이상으로 양자컴퓨팅을 다루고 싶다면, 아마도 어느 시점부터는 조금 더 깊이 있는 양자물리학 이론을 배워야할지도 모릅니다 (미안해요!)</p>
<h2 id="시작하기에-앞서-중요">시작하기에 앞서 (중요!)</h2>
<p>여러분이 양자컴퓨팅에 대한 기본 지식이 있고, 기존 컴퓨팅과 어떻게 비교되는지 알고 있다고 가정합니다. 만약 큐비트(qubits), 얽힘(entanglement), 중첩(superposition)이 무엇인지 모른다면 여기서 기본을 다지는 것을 제안합니다 (기다릴테니 다녀오세요):</p>
<p><a href="https://www.youtube.com/watch?v=JhHMJCUmq28&amp;feature=youtu.be">https://www.youtube.com/watch?v=JhHMJCUmq28&amp;feature=youtu.be</a></p>
<p>여기서 사용된 실제 코드 아주 복잡하지 않기 때문에 그저 일반적인 프로그래밍 지식만으로 충분하긴 하겠지만 여러분이 파이썬에 대한 지식을 어느 정도 가지고 있다고 가정합니다.
튜토리얼을 진행하기 위해 Qiskit을 설치해야 하는데, 만약 아직 설치하지 않았다면 다음의 동영상을 따라 설치해 보세요.</p>
<p><a href="https://www.youtube.com/watch?v=M4EkW4VwhcI&amp;feature=youtu.be">https://www.youtube.com/watch?v=M4EkW4VwhcI&amp;feature=youtu.be</a></p>
<p>Qiskit을 설치했다면 빈 주피터 노트북을 열고 시작할 수 있습니다!
(설치 파일은 다음의 링크를 확인하세요: <a href="https://www.qiskit.org/overview#quick-start">https://www.qiskit.org/overview#quick-start</a>) </p>
<h2 id="tutorial-part-0--qiskit-시작하기">Tutorial Part 0 — Qiskit 시작하기</h2>
<p>튜토리얼 Part 0: Qiskit 시작하기
<img src="https://images.velog.io/images/ha_zzi/post/dac63982-6494-47de-b0a5-1b9e89f1d8a7/image.png" alt=""></p>
<p>좋아요, 첫 번째 단원부터 시작합시다.
만약 다음과 같이 생긴 시각화된 양자 회로를 본 적 없다면:
<img src="https://images.velog.io/images/ha_zzi/post/bb57ab05-1297-4998-991a-e67339946f71/image.png" alt=""></p>
<p>사용 중인 라이브러리에 따라 다른 스타일의 형태 봤을 수도 있습니다. 위의 시각화는 Qiskit을 통해 얻은 스타일화된 버전이며, 코드의 결과물로 다음과 같은 조잡한 버전도 볼 수 있습니다:</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/c29e56bf-cc5a-4dbe-8c15-8fd66a3a6a8a/image.png" alt=""></p>
<p>간단히 말하자면, 양자 컴퓨터로 알고리즘을 수행하는 것은 다음과 같은 과정을 포함합니다:
지정된 수의 큐비트를 시스템(예. 회로)에 전달합니다.
(알고리즘을 구성하는) 지정된 게이트 조합을 해당 큐비트에 적용합니다.
큐비트를 측정하고 그 결과를 고전적인 비트(예. 0과 1)로 저장합니다.</p>
<p>위에서 본 시각화된 회로를 다시 살펴 봅시다:</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/b470ea9a-10e9-40e0-bbb6-1639e79f8230/image.png" alt="">
어떤 결과를 측정하기 전에 실제로 그 회로를 설정해야 합니다(이것을 빌드 단계라고 합니다). 그러고나서 양자 컴퓨터 시뮬레이션 혹은 실제 컴퓨터에서 (실행 단계라고 알려진) 실험을 실행합니다. 이 단계를 구현하기 위해 Qiskit 코드를 사용합니다.
큐비트에 적용할 수 있는 다양한 게이트들이 있는데 이 튜토리얼의 목적을 위해서는 두 개만 알면 충분합니다:
<img src="https://images.velog.io/images/ha_zzi/post/fd1538cb-0933-4603-b67a-8503aaa1609d/image.png" alt=""></p>
<h2 id="tutorial-part-1--회로-만들기">Tutorial Part 1 — 회로 만들기</h2>
<p><img src="https://images.velog.io/images/ha_zzi/post/7fbd1f6f-9f35-461a-bb45-029653cc1ace/image.png" alt=""></p>
<p>괜찮아요 당황하지 마세요. 전문용어가 많기는 하지만 천천히 따라와 보세요.
세 큐빗 GHZ 상태란 무엇일까요?</p>
<p>이것은 얽혀있는 3개 큐비트 세트를 부르는 양자 물리학 용어입니다.  큐비트가 GHZ 상태에 있으면 0과 1만으로는 상태를 나타낼 수 없습니다. 그래서 다음과 같이 수학적으로 표기합니다:</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/356b36ad-6945-4672-a3b7-b55c468382ee/image.png" alt=""></p>
<p>수학에 대해 너무 깊이 들어가지는 않겠지만 (자세한 것을 알고 싶으면 맨 밑에 있는 보너스 자료를 확인해주세요.) 튜토리얼에서 알 수 있듯이, 중첩 상태에 있는 한 개의 큐비트를 이렇게 나타낼 수 있습니다:</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/988d6a3d-d973-454f-a045-13f7aff78afa/image.png" alt=""></p>
<p>Controlled-Not (CNOT) 게이트를 이용해서 이 큐비트를 다른 두 개와 결합하면 GHZ 상태(상태가 하나의 0이나 하나의 1로 표현된게 아니라 세개의 0 (000)과 세개의 1(111)로 표현 된 것을 주목하세요)를 얻을 수 있습니다. </p>
<p>이 이상한  |〉 기호는 무엇일까요? </p>
<p>브라-켓 표기법은 양자컴퓨팅에서 큐빗을 나타내기 위해 매우 흔하게 쓰입니다. (클래식 비트나 일반적인 숫자와는 상반됩니다) 이 맥락에서 |0〉는 0 상태의 큐비트를 나타내고, |1〉은 1 상태의 큐비트를 나타냅니다. </p>
<p>튜토리얼에서 볼 수 있듯이, 마찬가지로 이 브라켓 표기법으로 여러 큐비트들을 나타낼 수 있습니다. 특히 이 표기법은 큐비트 상태를 벡터로 나타내기 위해 사용됩니다. 깊게 들어가진 않겠지만 만약 여러분이 양자컴퓨팅을 더 다루고 싶다면, 만약 아래쪽에 있는 보너스 자료 링크의 내용을 더 자세히 알고싶다면 양자 상태 벡터를 필수적으로 이해해야 합니다.</p>
<p>벨(Bell) 상태란 무엇일까요?
GHZ 상태가 3개의 얽힌 큐비트를 나타내듯이, Bell 상태는 2개의 얽힌 큐비트를 나타냅니다. 이 튜토리얼에서 회로를 만들 때 먼저 Bell 상태를 생성하여 처음 2개의 큐비트를 연결하고 그 다음에 첫번째 큐비트와 3번째의 큐비트를 연결하여 GHZ 상태를 생성합니다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/3a052fbc-45b5-4395-9ca1-2764d7cc0444/image.png" alt=""></p>
<h2 id="tutorial-part-2--회로-시각화">Tutorial Part 2 — 회로 시각화</h2>
<p><img src="https://images.velog.io/images/ha_zzi/post/ec44c0aa-1108-4c80-a0f2-4c3e30539651/image.png" alt=""></p>
<p>짠! 회로를 빌드하고 시각화했습니다!</p>
<p>참고: circ.draw(&#39;mpl&#39;) 대신 circ.draw()를 실행했다면, (앞에서 언급된 것과 유사한) 회로의 덜 예쁜 시각화를 얻을 것입니다.</p>
<p>파란 상자의 정보는 양자 컴퓨팅 이론으로 뛰어들기 시작합니다. 튜토리얼을 완료하기 위해서는 이 내용을 완전히 이해할 필요는 없습니다만 이 튜토리얼 이후에 양자 여행을 이어나가는 것에 관심 있다면 텐서곱(Tensor Product, 동그라미 안에 X표시가 된 연산자)과 큐비트의 행렬 표현에 대해 배우는 것으로 시작하길 추천 드립니다(마지막에 있는 보너스 자료의 링크를 확인하세요).</p>
<h2 id="tutorial-part-3--백엔드로-상태벡터-계산하기">Tutorial Part 3 — 백엔드로 상태벡터 계산하기</h2>
<p><img src="https://images.velog.io/images/ha_zzi/post/f12e9d87-ef2f-4090-a4ac-c5eda011de52/image.png" alt=""></p>
<p>이제 이번 파트에서 실제로 회로를 작동시키고 결과를 얻어 봅시다.</p>
<p>튜토리얼에서 실제 양자컴퓨터에서 회로를 실행하는 방법을 보여주지는 않지만, 몇 개의 다른 시뮬레이터를 실행합니다. 시뮬레이터는 더 빠르고 노이즈가 없는 완벽한 계산 결과를 보여줍니다. Qiskit은 다양한 양자 시뮬레이터 ‘백엔드(backends)’를 사용하여 동작하고, 각 시뮬레이터는 다른 형식으로 그 결과를 반환합니다. (예: statevector, unitary 와 QASM)</p>
<p><em>*실제 양자컴퓨터는 ‘소음(‘noisy’)’을 고려하는데, 이는 항상 올바른 결과가 나오지 않기 때문에 여러 번 실험을 해야 정확한 결과를 판단할 수 있다는 것을 의미합니다. 맨 밑에 있는 보너스 자료를 확인해보시면 아시겠지만, 소음 감소(Noise reduction)는 매우 중요한 연구 영역입니다. (연구 영역은 하드웨어와 소프트웨어를 포함합니다)</em></p>
<p>상태벡터란 정확히 무엇일까요?</p>
<p>3개의 클래식 비트가 있는 경우를 생각해 봅시다. 계산 과정에서 이 비트들은 0 또는 1의 값을을 가질 수 있게되므로 다음과 같이 총 8개의 조합을 만들어 낼 수 있습니다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/37d1f244-2ffd-484a-acef-632193602beb/image.png" alt=""></p>
<p>하지만, 앞에서 말했다시피 정확히 0과 1의 조합으로 중첩상태를 표현한다는 것은 불가능합니다. 대신에 상태벡터를 이용하여 이를 나타낼 수 있습니다. 상태벡터(State Vectors)는 양자 상태를 나타내는 복소수 벡터(Complex Vector)입니다. 복소는 ‘실수’ 부분과 ‘허수’ 부분을 갖고 있다는 것을 의미합니다.(고등학교 때 기억나시나요?) 3 qubit GHZ 상태를 상태벡터로 나타내면 다음과 같습니다:
<img src="https://images.velog.io/images/ha_zzi/post/1b48fe05-1d2f-487a-9907-6d6444226b0d/image.png" alt=""></p>
<p>다음의 코드를 사용해서 Qiskit statevector 시뮬레이터로 상태벡터를 계산해 볼 수 있습니다:
<img src="https://images.velog.io/images/ha_zzi/post/d0324c8b-900d-4e8d-9b84-fc6f752db7e6/image.png" alt=""></p>
<p>위에 보여진 행렬 표현과 다소 다른 형식이라 당황스러우신가요? 포맷이 다를 뿐 이라고 이해하시면 됩니다.
행렬의 스타일이 여러분의 마음에 들지 않는다면, Qiskit에서 시각화 라이브러리를 통해 다양한 옵션을 선택할 수 있습니다. (튜토리얼 2(<a href="https://github.com/Qiskit/qiskit-tutorials/blob/5cf8f3445fd900bb1ec3d5863e294ab355551135/tutorials/circuits/2_plotting_data_in_qiskit.ipynb">https://github.com/Qiskit/qiskit-tutorials/blob/5cf8f3445fd900bb1ec3d5863e294ab355551135/tutorials/circuits/2_plotting_data_in_qiskit.ipynb</a>) 는 가장 일반적인 것 중 일부에 대한 개요를 제공합니다.)</p>
<p> <img src="https://images.velog.io/images/ha_zzi/post/422cada7-264a-4b7e-b3a7-ce304dc7f4d2/image.png" alt=""></p>
<p>plot_state_city 함수를 사용해서 상태 벡터를 시각화 해보았습니다. </p>
<p>좋습니다. 이것이 가장 직관적인 시각화가 아닐 수 있지만, 왼쪽에 있는 그래프는 statevector의 ‘실수’ 부분을 나타내고, 오른쪽 그래프는 ‘허수’부분을 나타냅니다. 파란색 막대기의 높이는 우리가 관측할 때 큐비트가 0과 1의 조합으로 붕괴될 확률을 나타냅니다. 이 경우 큐비트가 000이나 111로 붕괴될 확률은 대략 50 대 50이며, 절대 다른 조합으로는 붕괴되지 않을 것입니다. (회로 게이트의 설치 방법 때문에) </p>
<p>*<em>이런 부분이 양자컴퓨팅의 놀라운 부분입니다.  게이트의 특정한 조합을 선택하여, 큐비트를 잘 처리하여 모든 가능한 경우의 수(8개)가 아닌 단 2개의 결과만을 계산해 낼 수 있습니다. 양자 알고리즘을 개발한다는 것의 아주 기본적인 부분이라고 볼 수 있습니다. *</em></p>
<h2 id="tutorial-part-4--백엔드로-유니터리-계산하기-unitary-backend">Tutorial Part 4 — 백엔드로 유니터리 계산하기 (Unitary Backend)</h2>
<p><img src="https://images.velog.io/images/ha_zzi/post/b519ca3e-050f-43de-9b56-9c21c7cdf422/image.png" alt=""></p>
<p>유니터리(Unitary)란 무엇인가요?</p>
<p>여기서 유니터리(unitary)라고 할 때 그것은 큐비트 게이트가 유니터리 행렬로 표현될 수 있음을 의미합니다. 행렬은 &#39;켤레전치 또한 가역&#39;일 때  유니터리입니다(이것이 잘 이해되지 않는다면 비디오(<a href="https://www.youtube.com/watch?v=DUuTx2nbizM">https://www.youtube.com/watch?v=DUuTx2nbizM</a>) 를 시청하기 바랍니다).</p>
<p>양자 물리학에서 이 개념은 종종 다음과 같이 표현됩니다:</p>
<p> <img src="https://images.velog.io/images/ha_zzi/post/7b7146e0-9a74-41ca-aff7-2a4cbf1a7afa/image.png" alt=""></p>
<p>U가 원본 행렬일 때, U†는 컬레전치를, I는 단위행렬을 의미합니다(이런 표기법은 물리학 교재에서 많이 보게 될 겁니다).</p>
<p>따라서, Qiskit의 유니터리 시뮬레이터는 우리가 작성한 회로의 결과를 8x8 유니터리 행렬로 보여줄 것입니다. 이 결과 또한 주피터 노트북에서는 그다지 보기 좋은 형태가 아니지만, 기본적으로 그것은 다음과 같습니다:</p>
<p> <img src="https://images.velog.io/images/ha_zzi/post/c4e0e476-86e9-49ba-8ab8-f15fb46ee96a/image.png" alt=""></p>
<h2 id="tutorial-part-5--openqasm-backend">Tutorial Part 5 — OpenQASM Backend</h2>
<p>거의 다 끝나갑니다! 뇌가 녹지 않고 여기까지 온 것은 대단합니다.👏👏👏
이 마지막 섹션에서는 회로 출력을 여러 번 시뮬레이션 해보세요. (실행 횟수가 많을 수록 결과가 더 정확해 집니다.)</p>
<p> <img src="https://images.velog.io/images/ha_zzi/post/6dd93675-1577-470c-aaa0-aab46a21b8d4/image.png" alt=""></p>
<p> |0〉, |1〉의 계산 기저(basis : 선형독립적인 벡터)란 무엇일까요?
이 용어는 큐비트가 측정되는 방식을 말합니다. 이 튜토리얼의 목적상 여러분이 알아야 할 것은 우리의 큐비트가 클래식 비트로 붕괴될 때 큐비트는 0 또는 1의 값을 갖는다는 것입니다. 사용할 수 있는 다양한 기저가 있지만, |0〉, |1〉 기저( Z 기저(주석: Z축으로 측정이 진행되기 때문))가 가장 흔합니다.</p>
<p>이 방정식은 무엇을 의미하나요?
<img src="https://images.velog.io/images/ha_zzi/post/e16b476e-d474-4649-8736-11b41dec65a9/image.png" alt=""></p>
<p>이 방정식은 Born Rule이라고 하며 회로를 실행할 때 0과 1의 특정 조합(예를들어 000 010 100 등등)을 얻을 확률을 대수적으로 계산하는데 사용됩니다. GHZ 상태의 경우 이 방정식은 결과가 000과 111이 나올 확률이 1/2이고, 다른 경우는 0이라는 것을 알려줍니다. 그런 다음 회로를 여러 번 실행하고 000과 111이 몇 번 나오는지 확인하여 이 확률을 검증할 수 있습니다. 이 튜토리얼에서 코드를 이해하기 위해 이 공식의 수학적 증명을 알필요는 없습니다만, 만약에 Born Rule과 다른 양자역학 원리에 대해 자세히 알고 싶다면 보너스 자료를 확인해주세요.</p>
<p> <img src="https://images.velog.io/images/ha_zzi/post/9488346c-488e-485a-8073-a68c6f14b7a5/image.png" alt=""></p>
<p>위 섹션은 비교적 명백합니다. 한 가지 주목할 점은 아래에 보이는 새로운 라인은 3개의 “클래식” 비트를 나타냅니다. 이 클래식 비트는 측정(측정된 큐비트 당 1개의 클래식 비트)을 통해 얻은 정보를 저장하는 데 사용됩니다. 일부 회로 다이어그램에서는 공간을 줄이기 위해 이러한 클래식 비트 라인 여러 개를 하나의 줄로 합쳐서 표현하기도 합니다.</p>
<p>다음 단계에서 회로를 여러번 실행하고 (정확하게는 1024번) 그 결과를 집계하는 작업을 합니다. 이론적으로  ‘완벽한’ 양자컴퓨터 (즉, 시뮬레이터)에서는 000과 111만 결과로 나오겠지만, 실제 양자컴퓨터에서 회로를 실행하면 실제 장비의 소음때문에 몇 가지 변칙적인 결과가 나올 수 있습니다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/efbcc98d-c13c-4dc7-809e-726fdd3aee77/image.png" alt=""></p>
<p>시뮬레이터에서 회로가 실행된 1024번 중 ‘000’이 나온 측정 결과가 510번 ‘111’이 나온 측정 결과가 514번이라는 것을  get_counts 함수를 사용하여 알 수 있습니다. 시뮬레이터를 사용한 결과이기 때문에 다른 결과는 없었습니다.</p>
<p>마지막으로 이 결과를 히스토그램으로 시각화해보겠습니다:</p>
<p> <img src="https://images.velog.io/images/ha_zzi/post/42cefa27-8ef5-4819-bf42-2a40dfc468b0/image.png" alt=""></p>
<p>🎉🎉🎉 축하합니다 해내셨군요!🎉🎉🎉
여기 제가 약속했던 보너스 자료가 있습니다:
●    Qiskit 튜토리얼 나머지 부분: <a href="https://github.com/Qiskit/qiskit-tutorials/blob/master/start_here.ipynb">https://github.com/Qiskit/qiskit-tutorials/blob/master/start_here.ipynb</a>
●    컴퓨터 사이언스 너드를 위한: <a href="https://www.youtube.com/watch?v=F_Riqjdh2oM&amp;t=4413s">https://www.youtube.com/watch?v=F_Riqjdh2oM&amp;t=4413s</a>
●    역사 너드를 위한: <a href="https://www.youtube.com/watch?v=iol5936dZho&amp;list=PLhyKYa0YJ_5ATEDqJRuoIvOH-eVkHP7ms">https://www.youtube.com/watch?v=iol5936dZho&amp;list=PLhyKYa0YJ_5ATEDqJRuoIvOH-eVkHP7ms</a>
●    큐비트를 나타내는 다양한 방법을 빠르게 요약한 비디오: <a href="https://www.youtube.com/watch?v=tBnWG_95F9c">https://www.youtube.com/watch?v=tBnWG_95F9c</a>
●    대수학과 브라켓 표기법: <a href="https://arxiv.org/pdf/1803.07098.pdf">https://arxiv.org/pdf/1803.07098.pdf</a>
●    양자컴퓨터에서의 ‘소음’: <a href="https://www.youtube.com/watch?v=AUAkoEiutOE">https://www.youtube.com/watch?v=AUAkoEiutOE</a>
●    일반적인 양자 용어와 개념 사전 : <a href="https://www.quantiki.org/">https://www.quantiki.org/</a>
●    양자역학을 학습하기 위한 자료: <a href="https://lookingglassuniver.wixsite.com/blog/post/how-to-learn-quantum-mechanics-on-your-own">https://lookingglassuniver.wixsite.com/blog/post/how-to-learn-quantum-mechanics-on-your-own</a></p>
<h1 id="소감">소감</h1>
<blockquote>
<p>제대로 번역 작업을 해보는 것은 이번이 처음이었는데, 공부도 되고 재미있었습니다. 뜻을 이해하는 것은 쉬워도 우리말로 이해하기 쉽게 쓰는 것은 어려운 것 같습니다. :&gt;</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[Hacktoberfest2020에 참여하세요!]]></title>
            <link>https://velog.io/@ha_zzi/Hacktoberfest2020%EC%97%90-%EC%B0%B8%EC%97%AC%ED%95%98%EC%84%B8%EC%9A%94</link>
            <guid>https://velog.io/@ha_zzi/Hacktoberfest2020%EC%97%90-%EC%B0%B8%EC%97%AC%ED%95%98%EC%84%B8%EC%9A%94</guid>
            <pubDate>Sat, 17 Oct 2020 05:35:22 GMT</pubDate>
            <description><![CDATA[<h1 id="hacktoberfest2020">Hacktoberfest2020</h1>
<p><img src="https://images.velog.io/images/ha_zzi/post/b02bfe38-312f-4fe9-8705-de8d916969a8/image.png" alt=""></p>
<blockquote>
<p><strong>Support open source and pick a limited edition T-shirt or plant a tree.</strong></p>
</blockquote>
<p>공식 홈페이지(<a href="https://hacktoberfest.digitalocean.com/)%EC%97%90">https://hacktoberfest.digitalocean.com/)에</a> 접속하면 볼 수 있는 문구입니다. 
<img src="https://images.velog.io/images/ha_zzi/post/159ec926-d060-46d1-b5c4-7f20aae09208/image.png" alt="">
<strong>오픈 소스를 지원하여 티셔츠를 받거나 나무를 심을 수 있는 좋은 프로젝트입니다!</strong>
START HACKING 버튼을 눌러 프로젝트에 참여하세요 :&gt;
전 세계에 있는 누구나! 10월 1일부터 10월 31일 기간 내에 Pull Request 4개를 보내기만 하면 참여가 완료됩니다. 관심이 있지만, 영어도 잘 모르겠고 Pull Request가 무엇인지도 모르겠다면 아래 토픽을 확인해주세요</p>
<h1 id="hacktoberfest2020-korea">Hacktoberfest2020 Korea</h1>
<p>영어에 자신이 없다고 돌아서지 말아주세요. Hacktoberfest에 참여하는 한국 개발자들은 이러한 초보자들을 위하여 <strong>비공식 한국 웹사이트</strong>(<a href="https://www.hacktoberfestkorea.com/)%EB%A5%BC">https://www.hacktoberfestkorea.com/)를</a> 제작하였습니다. 처음엔 오타도 많고 이미지나 서식 등이 문제가 많았지만(아무래도 많은 PR을 장려하기 위해 일부로 그러신듯 합니다 ㅎㅎ) 지금은 많은 개발자들의 도움으로 아주 멋있는 웹사이트가 되었습니다.<br><img src="https://images.velog.io/images/ha_zzi/post/8813d489-4e34-4275-9b44-37b0af58b558/image.png" alt=""></p>
<p>정말 정말 아무것도 모르지만 참여하고 싶으시면
<a href="https://www.facebook.com/groups/788404381916128/">https://www.facebook.com/groups/788404381916128/</a> 이 페이스북 그룹에 참여하여 도움을 받으세요! 많은 개발자들이 여러분들을 도와주실 겁니다.</p>
<p>원래는 어떤 프로젝트에도 PR(Pull Request)를 보내기만 하면 PR이 인정되었습니다만..! 
많은 개발자들에게 무차별적인(거의 폭력에 가까운) 스팸PR들이 쏟아졌다고 합니다. 
어떤 유튜버가 &#39;대충 PR 이렇게 보내면 티셔츠 받을 수 있어~&#39; 라는 식으로 영상을 올렸던 것이 원인이 되었다고 합니다 :&lt; 
그래서 지금은 hacktoberfest라는 topic을 가진 저장소만 인정을 하고, 만약 당신의 PR이 스팸처리가 되면 참여할 수가 없습니다. </p>
<p>저의 1개의 PR은 hacktoberfest를 가진 저장소에 보내지 않았지만, 공식 홈페이지에 나와있는 대로 &quot;hacktoberfest-accepted&quot; label을 생성하여 PR을 보냈더니 인정이 되었습니다.
<img src="https://images.velog.io/images/ha_zzi/post/6536c0c5-8428-4cd2-8287-dd2ac57261da/image.png" alt=""></p>
<p><img src="https://images.velog.io/images/ha_zzi/post/0f4eb25d-d52e-4b16-8d91-f69771bca123/image.png" alt="">
로고가 예쁘게 디자인되어서 티셔츠도 정말 예쁘게 나올 것 같아요! 저처럼 hacktoberfest에 참여하시고 티셔츠를 받으시거나 나무를 심어주세요 :)♥
<img src="https://images.velog.io/images/ha_zzi/post/cec67054-46a8-4ec6-a6b1-cd05ef3b6bd6/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터 기초 개념, 동인, 기법(시그마프레스)]]]></title>
            <link>https://velog.io/@ha_zzi/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B8%B0%EC%B4%88-%EA%B0%9C%EB%85%90-%EB%8F%99%EC%9D%B8-%EA%B8%B0%EB%B2%95</link>
            <guid>https://velog.io/@ha_zzi/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B8%B0%EC%B4%88-%EA%B0%9C%EB%85%90-%EB%8F%99%EC%9D%B8-%EA%B8%B0%EB%B2%95</guid>
            <pubDate>Sun, 04 Oct 2020 12:47:31 GMT</pubDate>
            <description><![CDATA[<h3 id="후기">후기</h3>
<p>전반적으로 만족스러웠는데 입문자들에게 강추까지는 조금 힘들 것 같습니다. :&lt; 아무것도 모르는 상태에서 이 책을 읽는 것을 막고 싶기 때문입니다. 이 책은 비즈니스적인 지식과 컴퓨터 공학적 지식이 둘 다 있는 상태일 때 쉽게 읽히고 빅데이터를 전체적으로 정리하는 데에 도움이 될 것이라 생각합니다. 저는 기업의 비즈니스에 대해서 거의 모르는 상태였기 때문에 초반 책 내용을 읽는 것이 조금 버겁게 느껴졌습니다. 빅데이터를 기업에서 왜 활용해야 하는지, 어떻게 활용하는지 이런 내용에 초점을 맞추었기 때문에 기업가의 시점에서 쓰인 것 같다고 느껴지면서도 빅데이터가 어떻게 저장되고 처리하는지에 대해 자세하게 설명하기 때문에 공학적인 측면의 서술도 잘 되어 있습니다 :&gt;</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/83f7a074-a9f7-4278-802b-bfbd86e5c4e6/KakaoTalk_20201004_211949142_01.jpg" alt="">
도표와 아이콘을 최대한 활용하여 쉽게 풀어쓰려고 노력한 것이 느껴지지만, 그럼에도 쉽다고 느껴지진 않았습니다. 하지만 내용이 반복되기 때문에 책 앞부분에서 제대로 이해를 못했더라도 뒤에서 자세히 풀어서 설명해주고 예시를 들어준다는 점이 좋았습니다 :&gt;
1부 내용이 전반적으로 빅데이터 내용을 훑어주는데, 이 부분이 잘 안읽히고 이해가 안가더라도 괜찮다고 생각합니다. 조금 안읽혀도 일단 끝까지 읽는 것에 집중하면 도움이 많이 될 거라 생각합니다.
<img src="https://images.velog.io/images/ha_zzi/post/f182b2ae-1de8-40a2-8df5-c464a05f5bd6/KakaoTalk_20201004_212855482.jpg" alt="">
&quot;빅데이터 분석 수명주기의 9개 단계&quot; 에 대한 설명을 정말 잘했다고 생각합니다. 이 부분을 따로 노트에 정리할 정도로 큰 틀을 정리하는데 도움이 되었습니다. 내용이 모호하게 느껴져도 바로 뒤에 예시가 있으니 읽다보면 명확해지는게 느껴져서 더욱 좋았습니다 :&gt;</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/a4c931bb-509a-41ef-8b8c-56ae92b1598b/KakaoTalk_20201004_211949142.jpg" alt=""></p>
<p>특히 각 개념의 뒷부분에서는 기업이 빅데이터를 도입을 왜 결정하였는지, 어떤 문제점이 있었고, 어떻게 해결했는지 책에서 설명한 개념에 맞게 예시를 들어줍니다. 빅데이터를 다룬 가볍고 조금 더 쉬운 책을 읽고 이 책을 읽는다면 더 효율적이라고 생각합니다.</p>
<h3 id="요약">요약</h3>
<blockquote>
<p><strong>비즈니스 + 공학, 어느 정도 지식이 있다면 추천! 아니면 조금 더 쉬운 책을 접하고 읽기!</strong></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[csv encoding 한글 문제]]></title>
            <link>https://velog.io/@ha_zzi/csv-encoding-%ED%95%9C%EA%B8%80%EC%9D%B4-%EA%B9%A8%EC%A7%88-%EB%95%8C</link>
            <guid>https://velog.io/@ha_zzi/csv-encoding-%ED%95%9C%EA%B8%80%EC%9D%B4-%EA%B9%A8%EC%A7%88-%EB%95%8C</guid>
            <pubDate>Sat, 26 Sep 2020 16:04:49 GMT</pubDate>
            <description><![CDATA[<h2 id="한글-인코딩-문제-발생">한글 인코딩 문제 발생</h2>
<pre><code>save_file = pd.DataFrame(data[&#39;naver&#39;], columns = [&#39;name&#39;, &#39;text&#39;, &#39;url&#39;])
save_file.to_csv(&#39;test.csv&#39;, encoding =&#39;utf-8&#39;, index = False)</code></pre><p>크롤링을 하고, pandas를 이용해서 파일을 저장하려고 했습니다. 
그런데 다음과 같이 한글이 깨지는 문제가 발생하였습니다.
<img src="https://images.velog.io/images/ha_zzi/post/b589bb1e-9ccd-4c54-86d8-b4375dba3cf6/image.png" alt=""></p>
<h2 id="utf-8-sig">utf-8-sig</h2>
<pre><code>save_file = pd.DataFrame(data[&#39;naver&#39;], columns = [&#39;name&#39;, &#39;text&#39;, &#39;url&#39;])
save_file.to_csv(&#39;test.csv&#39;, encoding =&#39;utf-8-sig&#39;, index = False)</code></pre><p>utf-8 -&gt; utf-8-sig 로 변경하고 실행시키니 잘 저장된 것을 확인할 수 있습니다.</p>
<p><img src="https://images.velog.io/images/ha_zzi/post/7d7a6502-7950-407c-a8c6-a61d3fbba9b8/image.png" alt=""></p>
<p>&#39;utf-8-sig&#39;에서 &#39;sig&#39;는 &#39;signature&#39;의 약칭입니다. &#39;utf-8-sig&#39;를 사용하면 스트링 즉, 문자열로 처리하는게 아니라 Byte Order Mark(BOM)으로 취급합니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[2020 오픈소스 컨트리뷰톤 후기]]]></title>
            <link>https://velog.io/@ha_zzi/2020-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%BB%A8%ED%8A%B8%EB%A6%AC%EB%B7%B0%ED%86%A4-%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@ha_zzi/2020-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%BB%A8%ED%8A%B8%EB%A6%AC%EB%B7%B0%ED%86%A4-%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Sat, 26 Sep 2020 04:41:39 GMT</pubDate>
            <description><![CDATA[<p>안녕하세요 2020 오픈소스 컨트리뷰톤 멘티 김하찌입니다. 많은 것을 배우고 느낀 바가 있어서 간단하게라도 후기를 적게 되었습니다.</p>
<h1 id="오픈소스-컨트리뷰톤">오픈소스 컨트리뷰톤</h1>
<p><img src="https://images.velog.io/images/ha_zzi/post/34c90da0-98ea-4069-90d4-2e67f5628140/image.png" alt="">
<img src="https://images.velog.io/images/ha_zzi/post/f8c90776-7687-412b-88d7-fb18a77d2c04/image.png" alt=""></p>
<h2 id="지원-동기-및-지원-프로젝트">지원 동기 및 지원 프로젝트</h2>
<p>믿고 따랐던 교수님이 좋아서 오픈소스 수업을 들었었고, 그 수업을 들어 지금 아끼는 팀원들을 만났고 이 팀원들 덕분에 오픈소스 컨트리뷰톤을 알게 되었습니다. 컨트리뷰톤에 대해 알게되자마자 꼭 하고 싶은 마음이 들었는데, 멘토가 있다는 것은 든든한 버팀목과 나침반이 있는 느낌이 들었기 때문입니다. 
상금이 있는 대회지만 상금보다 더 귀한 것을 많이 얻어갈 수 있을거라는 기대감 때문에 꼭 선정되고 싶어 참가 신청서를 열심히 썼습니다. 사실 돌이켜보면 거의 애원한 수준인 것 같기도하지만 자기 PR을 잘하는 것은 그만큼 중요한 것 같습니다.
멘토님이 지원서를 직접 읽고 선정하기 때문에 관련 경험이 있는 것과 꾸준히, 성실히 할 것 같은 이미지를 남기는 것이 중요한 것 같습니다. 
<img src="https://images.velog.io/images/ha_zzi/post/8ed8af51-a754-4024-8836-0b24676d5189/image.png" alt="">
오픈소스 수업을 들었을 때 인공지능과 IoT에 관심이 있어서 간단한 인공지능 비서 어플리케이션을 개발하였습니다. 
아두이노 보드를 이용하고 파이어베이스를 알게 되고, 난생 처음으로 안드로이드 스튜디오로 어플리케이션도 만들어 보았습니다. 단기간에 정말 많은 지식들이 필요했기 때문에 버거웠지만 많은 양을 빠르게 공부할 수 있었습니다.
많은 프로젝트들 중 제가 경험했던 오픈소스 프로젝트와 가장 유사하고, 딥러닝을 독학하는 중이었기 때문에 큰 고민 없이 1지망으로 [Tensorflow Lite for Microcontroller프로젝트] 를 지원하였고 정말 운이 좋게도 멘티에 선정이 되었습니다.
<img src="https://images.velog.io/images/ha_zzi/post/80ff9a26-4070-43ef-a4c9-e856ce90a038/image.png" alt="">
<img src="https://images.velog.io/images/ha_zzi/post/329b321f-3bc4-4cb8-90c8-1ab06b524dd3/image.png" alt=""></p>
<h1 id="컨트리뷰톤을-추천하는-이유">컨트리뷰톤을 추천하는 이유</h1>
<p>추천하는 이유는 정말정말 많습니다. 그리고 경쟁률이 주택청약만큼 치열하다라는 소문이 있다는데, 경쟁률이 치열하다는 건 그만큼 이 컨트리뷰톤이 좋다는 것을 나타내는 지표가 되지 않을까 싶네요. 프로젝트 별로 상이할테지만, 대략적으로 추천하는 이유를 골라보자면 다음과 같습니다.</p>
<blockquote>
<p>*<em>1. 유명 오픈소스 프로젝트에 콜라보레이터로서 활동해볼 수 있다.
2. 하드웨어 및 도서를 지원받을 수 있다.
3. 팀장 및 팀원들의 노하우와 지식을 얻을 수 있다.
4. 좋은 사람들과 인연을 맺을 수 있다.
*</em></p>
</blockquote>
<h2 id="콜라보레이터">콜라보레이터</h2>
<p><img src="https://images.velog.io/images/ha_zzi/post/bd0defc7-8dc1-443d-8154-62c2ca494187/image.png" alt="">
<img src="https://images.velog.io/images/ha_zzi/post/54737904-36b1-42be-9400-bed87bc1e7c3/image.png" alt="">
좋은 아이디어가 나와서 그 아이디어로 프로젝트를 진행하였고, 책 [TinyML]을 받은 직후에는 소스코드 검증을 병행하였습니다. 당당하게 깃허브에 이름도 올라가고 프로젝트를 진행하면서 많은 것을 알아야했기에 이 작업 자체만으로도 얻은 것이 많았습니다. <a href="https://github.com/yunho0130/tensorflow-lite">https://github.com/yunho0130/tensorflow-lite</a></p>
<h2 id="라즈베리파이--tinyml">라즈베리파이 &amp; TinyML</h2>
<p><img src="https://images.velog.io/images/ha_zzi/post/afce31f6-fb5b-4196-8187-9075a4c71372/image.png" alt="">
저희 프로젝트 분야가 IoT이기 때문에 사무국에서 라즈베리파이를 지원해주셨습니다. 제가 아는 분은 다른 프로젝트의 멘티로 선정되셨는데 우분투 번역 작업이라 못받으셨다고 하셔서 자랑을 했었습니다. (ㅋㅋ) 그리고 책 검증 작업을 해야 했기에 책을 받았는데 코로나 사태가 심각해져서 택배로 받았었습니다. 하나 하나 포장해주신 멘토님께 감사의 말씀 올립니다. </p>
<h2 id="노하우--지식">노하우 &amp; 지식</h2>
<p>프로젝트가 마냥 순탄하지는 않았습니다. 막혔던 부분이 훨씬 많기 때문에 허구한날 삽질만 했었습니다. 아이디어를 선정하는 순간부터 발생했던 이슈들이 어마 어마하게 많은데 이러한 <strong>이슈들이 있을 때 어떤 식으로 시도헀고, 어떤 식으로 해결했는지 이 방법 자체를 알게 된 것이 무척이나 좋았습니다.</strong> 버그나 이슈를 잘 해결하는 개발자가 좋은 개발자라는 말이 있는 것처럼 문제가 발생했을 때 잘 해결하는 것이 중요합니다. 같이 부딪혀보고 해결해보았기 때문에 배운 점이 많았습니다. 천 줄쯤 되는 코드들을 뜯어보고 디버깅 해보는 작업도 해보고, 제가 뜯어보았던 부분들을 정리해서 공유하기도 하였습니다. 
또, 팀프로젝트를 학교에서 진행하다보면 팀장의 역할을 진행하는 것이 버거우기 시작했었는데, 멘토님을 보면서 그리고 각 프로젝트의 팀장님들을 보면서 <strong>프로젝트를 효율적으로 진행하는 방법을 배울 수 있었습니다.</strong> 깃허브 프로젝트 칸반보드 사용을 알게 되어 제 개인 프로젝트에서 잘 사용하고 있고, 다양한 도구들을 사용하여 회의를 진행하고 이를 문서로 잘 정리하는 방법 등등 얻어갈 수 있는 것이 많았습니다.
<img src="https://images.velog.io/images/ha_zzi/post/ab544806-a1ee-429b-9c54-3d071a635fb2/image.png" alt=""></p>
<h2 id="인연">인연</h2>
<p>가장 추천하는 이유입니다. 곁에서 배울 것도 많고 좋으신 분들을 15분이나 알게된 것이 큰 행운이라고 생각합니다. 평소에 만나기 어려운 분들을 알게 되었고 현재 개발자로 일하시는 분들도 있어서 평소에 궁금했던 것, 고민이었던 것들을 편하게 물어볼 수 있었습니다. 같은 대학생이신 분들과 얘기를 나누면서 비슷한 고민을 나누고 동기 부여도 하는 기회도 있었습니다.
무엇보다 멘토님께 정말 감사드리고 싶은 것이 저희 멘티들을 소중하게 대해주시고 더 챙겨주시려고 하시는게 보여서 감동적이었습니다. 안목이 뛰어나다고 생각드는 이유가 멘토님이 직접 선정한 멘티분들 또한 멋있으시고 배울 점이 많고 좋은 분들이었기 때문입니다. 그런 분들을 알게 된 것 자체만으로 이 컨트리뷰톤에 신청하기 잘했다는 생각이 듭니다.
<img src="https://images.velog.io/images/ha_zzi/post/2e714891-8dbf-424c-ae81-90fbb1cd5ba8/image.png" alt=""></p>
<blockquote>
<p>한달 조금 넘는 시간이지만 기대했던 것 이상으로 많은 것을 얻었습니다. 2020년 중에 가장 운이 좋은 일이고, 그래서 2020년이 소중하고 기억남는 해가 될 것 같습니다.
코로나가 아니었다면 멘티님들과 많은 교류를 나눌 수 있을 수도 있었을 거라는 아쉬움도 남네요. 
그렇지만 멘토님이 장기적으로 만남을 원하시니 앞으로도 기대가 됩니다!</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>