상세 컨텐츠

본문 제목

[Nomad Coin] Introduction

Go/Blockchain

by Gopythor 2022. 7. 9. 21:58

본문

728x90
반응형

#2.1 What are we building

이 강의의 목표?  암호화폐를 이루는 부속들에 대한 이해도를 쌓는 것. 

암호화폐와 블록체인 기술 뒤에 무엇이 있는가?

해쉬, 블럭, 트랜잭션, 작업증명(PoW), P2P, 지갑, 디지털 서명, 검증인, 채굴인 등을 이해할 것이다.

거래소에 팔고 싶다면, 비트코인 깃허브로 가서 fork 한 다음에 비트코인 클론을 시작하면 된다.

미래에 이더리움, 폴카닷, 코스모스나 카다노 같은 코인 프로젝트에 참여하게 된다면 무슨 소리를 하는지 이해 할 수 있다.

직접 자체적으로 블록체인을 만들어 볼 것이다. 블록들을 위한 탐색기도 직접 만들고, 해쉬가 어떻게 구성되어 있고, 채굴을 어떻게 하며 블록은 어떻게 되어있는지 배울 것이다. 또한 상호작용하기 위한 JSON API도 만들것이다. 어떻게 블록체인으로 인터넷 화폐를 보호할 수 있는지, 왜 그것이 현명한 선택인지 공부할 거고, 코인을 구성하고나면 거래에 대해 알아볼 것이다. 거래 입력값과 출력값. 거래에 대해 이야기하면서 코인의 소유권도 알아볼 것이다. 그러면서 전자 지갑 모듈도 만들 것이다. 보안인증에 대한 것도 굉장히 많다. 그래야 우리 블록체인을 지킬 수 있다.

 

#2.2 Why Go

  Go 코드를 직접 보면 이해하기 쉬운 고급 프로그래밍 언어 같지만, 굉장히 강력한 언어이다. 성능은 다른 프로그래밍 언어보다 더 빠르지만, 코딩하는 방식은 자바스크립트와 별 차이가 없다. 성능도 좋고, 속도도 빠르고, 코딩 결과물도 깔끔하게 나온다. 코드를 읽었을 때 이해하기도 쉽다. 그리고 사이즈도 엄청 작다. Go가 차지하는 표면적은 정말 쪼그맣다. 

  배울것이 그렇게 많지 않다는 점이 많은 사람들이 Go를 싫어하는 이유 중 하나이다. 그러나 그 점이 좋은 점이다. 뭔가를 하는대 딱 한 방법 밖에 없다. 예를 들어 자바스크립트나 타입 스크립트 개발자는 뭔가를 하려고 할 때 여러가지 방법으로 접근할 수 있다.

  Array가 하나 있다고 해보자. for 루프(forEach, for, for in, for of)에도 여러 방법이 있다. .map이나 filter 혹은 .forEach. 그걸 다 배워야 한다. 그게 filter 함수가 됐던 map 함수가 됐던. 그러나 Go에는 그런 것들이 없다. 단 한가지 방법 for 루프 밖에 없다. 개발자들이 어떤 기능을 쓸 지 고민할 필요가 없다. 그 말 뜻은 Go를 사용하는 모든 사람들이 통일된 방법으로 코딩을 한다는 소리고, 다른 누군가의 Go 코드를 읽게 되더라도 이해하기가 수월하다. 왜냐하면 이해하기 힘든 굉장히 창의적이고 독창적인 코드는 없을 것이기 때문이다. Go 언어의 기본 라이브러리에 코드를 본다면 그 코드가 무얼 하고자 하는지 쉽게 이해할 수 있다. 굉장히 직관적이다.

   Go언어에는 다른 언어에는 있는 것들이 없다. 예를 들어 타입스크립트나 자바스크립트에는 try/catch 구문(try {} catct{}이 있다. 파이썬의 경우에는 try/except, Exceptions 형태로 있다. 자바스크립트 경우에는 에러를 일으키는 throw도 있다. 배울 것이 적다는 것이다.

  Go 기본 라이브러리는 완성형이다. 강의의 99%는 기본 라이브러리에서 처리 가능하다. 이것 저것 부가적으로 설치할 필요가 없다. 결과물이 다른 패키지들에 의존하지 않아도 된다. 파이썬이나 node.js를 해봤으면 npm도 많이 쓰고 pip install도 많이 쓰는 것을 알것이다. npn Express, npn install pug, npn install. 연봉이 더세고, 쓰기 편하고, 가독성도 높고 생산성도 굉장히 빨리 높일 수 있다.

  다음섹션에서는 Go의 기능들 몇가지에 대해 알아볼 것이다. 모든 기능을 다 배우진 않을 것이다.

 

#2.3 Requirements

  이 강의를 위해서 두 가지가 필요하다. 첫번째는 소프트웨어이다. Go 언어가 설치되어 있으면 된다. 콘솔에서 Go를 실행할 수 있으면 된다. Go를 설치하는 방법은 OS에 따라 다르다. Windows, macOS, Linux 다 다르다. macOS의 경우 Homebrew를 사용할 수 있고, 윈도우의 경우 Chocolately를 사용할 수 있을 것이다. 콘솔에서 Go 버전을 확인할 수 있다면 문제 없다.

https://go.dev/dl/

  IDE에 대해 이야기해보자. VS Code는 무료고 아름답다. 강의를 들으면서 VS Code를 쓰고 싶다면, Go 익스텐션을 설치해야 한다. 믿지 못할 만큼 훌륭하다. linting이 내장이라 코드를 더 퀄리티있게 도와주고, 몇 가지 단축키들도 있고, 서식도 지원해준다.

  Go 파일을 하나 열어보면 화면 오른쪽 아래 부분이 이와 같이 여러가지 팝업을 보게 된다. 

  일단은 Visual Studio Code를 제대로 설치하고 Go 익스텐션도 설치한다. 

 

  VSCode를 사용하기 싫으면 JetBrain에서 만든 GoLand도 괜찮다. Go 언어만을 위해서 개발된 것이다. 멋있는 단축키들도 있고, 함수들을 새로운 시각에서 볼 수 있게 해준다. 자동완성 기능도 있다. 첫 30일 기간은 무료로 사용할 수 있다.

https://www.jetbrains.com/go/

 

강의 출처 : 노마드코더(https://nomadcoders.co)

728x90
반응형

관련글 더보기

댓글 영역