1. GoLang 2. Geth (go-ethereum) 3. Linux에 GoLang 설치 4. Linux에 Geth 설치 1. GoLang Go는 2009년 구글에서 일하는 로버트 그리즈머, 롭 파이크, 켄 톰프슨이 개발한 프로그래밍 언어이다. Go는 정적 타입 컴파일 언어의 효율성과 동적 언어처럼 쉬운 프로그래밍을 할 수 있도록 하는 것을 목표로 한다. Go는 가비지 컬렉션(Garbage Collection) 기능이 있고, 병행성(concurrent)을 지원하는 컴파일 언어이다. 구문이 C와 비슷하지만 메모리 보안, 가비지 컬렉션, 구조 타이핑, CSP 스타일 병행성을 제공한다. 이 언어는 golang.org 이라는 도메인 이름 때문에 종종 고랭(Golang)으로도 호칭되지만 정확한 명칭은 Go이다..
1. UTXO (Unspent Transaction Outputs) 2. Account Model 디지털 화폐가 유용하게 쓰이려면 양도 가능해야 한다. 블록체인을 송금할 때에는 소유자에 의해 시작되어 트랜잭션이 생성된다. 이 거래는 네트워크에 얼마나 많은 돈의 주인이 바뀌었는지, 그리고 새로운 주인이 누구인지 알려준다. 비트코인을 비롯하여 대부분의 블록체인은 거래 모델로 UTXO(Unspent Transaction Outputs) 모델을 사용한다. 이더리움에 적용된 바와 같이 사용자 잔액을 추적하는 Account Model도 존재한다. UTXO를 사용하는지 Account Model을 사용하는지에 관계없이 모든 블록체인은 다음 방식을 따른다. 사용자 상호작용(대부분 트랜잭션)은 네트워크에 브로드캐스트되며,..
1. 타원곡선 디지털 서명 알고리즘(ECDSA) 2. 타원곡선 사용 코드 예시 1. 타원곡선 디지털 서명 알고리즘(ECDSA) 타원곡선 디지털서명 알고리즘(ECDSA, Elliptic Curve Digital Signature Algorithm)은 타원곡선암호를 전자서명에 접목시킨 암호 알고리즘이다. 이는 비트코인, 이더리움 등의 암호화폐 거래 시 정당한 소유주만이 자금을 쓸 수 있도록 하기 위해 사용된다. 타원곡선 디지털서명 알고리즘은 1985년 닐 코블리츠(Neal Koblitz)와 빅터 밀러(Victor Miller)가 제안한 타원곡선암호(ECC, Elliptic Curve Cryptosystem)에 기반을 둔 전자서명 알고리즘이다. 블록체인 네트워크에서 트랜잭션을 주고 받을 때, 수신자가 인증자의..
1. P2P 개념 2. P2P 코드 구현 1. P2P 개념 P2P는 동등 계층간 통신망이라고도 하며, 비교적 소수의 서버에 집중하기보다는 망 구성에 참여하는 기계들의 계산과 대역폭 성능에 의존하여 구성되는 통신망이다. P2P 통신망은 일반적으로 노드들을 규모가 큰 애드혹으로 서로 연결하는 경우 이용된다. 순수 P2P 파일 전송 네트워크는 클라이언트나 서버라는 개념 없이, 오로지 동등한 계층 노드들(peer nodes)이 클라이언트와 서버 역할을 동시에 네트워크 위에서 하게 된다. 2. P2P 코드 구현 /* index.ts */ import { BlockChain } from '@core/index' import { P2PServer } from './src/serve/p2p' import peers f..
1. blockHeader.ts 코드 분석 2. block.ts 코드 분석 3. chain.ts 코드 분석 오늘은 TypeScript 언어로 Block Chain의 구조를 구현해보고자 한다. 아래 코드는 @types라는 하위 디렉토리에 생성된 Block.d.ts 파일의 내용이다. declare interface IBlock extends IBlockHeader { merkleRoot: string hash: string nonce: number difficulty: number data: string[] } declare interface IBlockHeader { version: string height: number timestamp: number previousHash: string } IBlock..
1. interface와 type 유사성 2. interface와 type 차이점 TypeScript에서 타입을 정의하는 방식은 2가지가 있다. 바로 interface와 type이다. 이 글에서는 두 방식의 유사성과 차이점에 대해 알아보고자 한다. 1. interface와 type 유사성 1.1. interface와 type 선언 방식 /* interface */ interface Person { name: string age: number } const jiyoung: Person = { name: "jenny", age: 25, } /* type */ type Person = { name: string, age: number } const jiyoung: Person = { name: "jenny",..
1. TypeScript 소개 2. TypeScript 개발 환경 설정 3. ESLint 4. Prettier 1. TypeScript 소개 TypeScript는 JavaScript의 슈퍼셋인 오픈 소스 프로그래밍 언어이다. 마이크로소프트에서 개발, 유지하고 있으며 엄격한 문법을 지원한다. TypeScript는 자바스크립트 엔진을 사용하면서 커다란 애플리케이션을 개발할 수 있게 설계된 언어이다. 자바스크립트의 슈퍼셋이기 때문에 자바스크립트로 작성된 프로그램이 타입스크립트 프로그램으로도 동작한다. JavaScript는 동적 타입의 인터프리터 언어로 런타임에서 오류를 발견할 수 있다. 이에 반해 TypeScript는 정적 타입의 컴파일 언어이며 TypeScript 컴파일러 또는 바벨(Babel)을 통해 Ja..
1. 블록체인 개념 2. 블록 구성 요소 3. merkle 모듈 4. crypto-js 모듈 5. 블록 예시 코드 1. 블록체인 개념 블록체인(Block Chain)은 블록(Block)을 잇따라 연결(Chain)한 모음을 말한다. 블록체인 기술이 쓰인 가장 유명한 사례는 가상화폐인 '비트코인'이다. 블록체인 기술에서 '블록(Block)'에는 일정 시간 동안 확정된 거래 내역이 담긴다. 온라인에서 거래 내용이 담긴 블록이 형성되는 것이다. 거래 내역을 결정하는 주체는 사용자이며, 블록은 네트워크에 있는 모든 참여자에게 전송된다. 참여자들은 해당 거래의 타당성 여부를 확인한다. 승인된 블록만이 기존 블록체인에 연결되면서 송금이 이루어진다. 제3자가 거래를 보증하지 않고도 거래 당사자끼리 가치를 교환할 수 있..
1. ORM(Object Relational Mapping) 2. sequelize 사용 방법 1. ORM(Object Relational Mapping) ORM(Object Relational Mapping)은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 지향 언어에서 사용할 수 있는 "가상" 객체 데이터베이스를 구축할 수 있다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체 모델과 관계형 모델 간에는 불일치가 존재하는데, ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. ORM 장점 (1) 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 ..
1. Redux Middleware 2. redux-thunk 3. redux-saga 1. Redux Middleware middleware는 소프트웨어 각 분야에서 세부적으로 다르게 뜻한다. 위키백과에서는 OS와 소프트웨어 중간에서 조정과 중개 역할을 하는 중간 소프트웨어라고 지칭한다. 소프트웨어 분야에서는 같은 이름을 가지고 있지만 다른 것을 의미하는 것들이 많아서 유의해야 한다. Redux의 동작 순서는 action이 dispatch된 후 reducer를 호출하여 기존에 있던 state를 dispatch한 action으로 바꾼다. 이때 reducer가 호출되어 state를 바꾸기 전에 동작하는 것이 middleware이다. 보통 Redux에서 middleware를 사용하는 주된 이유는 비동기 작업..
1. React Router 개념 2. React Router 사용방법 1. React Router 개념 우리가 흔히 말하는 '페이지 이동'이라는 기능을 React에서는 React Router를 통해 처리할 수 있다. 라우팅을 간단하게 설명하면, 사용자가 요청한 URL에 따라 해당 URL에 맞는 페이지를 보여주는 것이다. React에서는 Routing 관련 라이브러리가 많이 있는데, 그 중 가장 많이 쓰이는 것은 React Router이다. React는 SPA(Single Page Application) 방식이다. 기존의 웹 페이지(MPA 방식)처럼 여러 개의 페이지를 사용, 새로운 페이지를 로드하는 방식이 아니다. 새로운 페이지를 로드하지 않고, 하나의 페이지 안에서 필요한 데이터만 가져오는 형태를 가..
1. Redux 개념 2. Redux에서 사용되는 키워드 3. Redux의 3가지 원칙 4. Redux 사용 방법 5. Redux 보완점 1. Redux 개념 Redux는 JavaScript app을 위한 state container이다. React 뿐만 아니라 Angular, jQuery, vanilla JavaScript 등 다양한 framework와 작동되도록 설계되었다. 즉, React만을 위한 Library는 아니다. Redux는 React의 좋은 보완재라고 할 수 있다. 그 이유는 action에 반응하여 상태를 변경하므로 React와 같이 UI를 상태에 대한 함수로 기술하는 framework와 특히 잘 어울리기 때문이다. Q. React에 Redux가 필요한 이유는 무엇일까? React로 프로..
- Total
- Today
- Yesterday
- 컴파일
- Navigator 객체
- int
- History 객체
- gcc
- bom
- 키워드
- keyword
- Browser Object Model
- location 객체
- Screen 객체
- Document Object Model
- 자료형
- window 객체
- 변수
- long
- 리액트 #React #props #state #javascript
- stdio.h
- short
- Char
- c언어
- DOM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |