Gas? 트랜잭션을 발행하는 노드는 트랜잭션에 Gas라는 수수료를 포함시킨다.이 트랜잭션을 수신한 노드중 채굴 노드가 만약에 블록 채굴에 성공했고 그 블록에 방금 수신된 트랜잭션을 포함시켰을 경우에 그 트랜잭션에 들어있던 수수료인 Gas를 채굴 보상으로 받게 되는것이다. 채굴자는 기본급(기본 채굴 보상) + 인센티브(그 블록에 포함된 트랜잭션들에 들어있는 수수료인 Gas) = 총합 Ether를 채굴 보상으로 받게 되는 것이다. 트랜잭션을 발행할때, 스마트 컨트랙트를 한줄 한줄 실행할때 모두 Gas가 필요하다. solidity 언어로 작성된 스마트 컨트랙트는 EVM(Etherium Virtual Machine)위에서 작동한다. 엄밀히 말하면, 이 언어가 solidity 컴파일러로 번역되면 solidity ..
전자서명 문서를 전자서명해서 전송하는 과정 1. 문서를 해쉬한다. (고정길이 해쉬값으로 문서를 압축)2. 그 해쉬값을 자신의 비밀키로 한번더 암호화 한다.(전자서명)3. 그 암호화된 문자열을 기존의 문서에 덧붙인다.4. 전자서명 + 문서를 전송한다. 전자 서명된 문서를 수신하는 과정 1. 문서를 받아서 보낸사람의 공개키로 전자서명된 부분을 복호화 한다.-> 복호화 하면 문서를 해쉬한 고정길이 해쉬값이 나오게 될것이다. 2. 수신된 문서의 전자서명된 부분을 제외한 나머지 원래의 문서를 같은 해쉬함수로 해쉬해서 해쉬값을 구한다. 1번과 2번의 해쉬값을 비교해서 일치할 경우 그 사람이 이 문서를 보냈다는것이 확실하게 인증 된다. 이것을 비밀키 공개키를 활용한 전자서명이라고 한다. 블록체인에서는 어떤 노드가 트..
이 문제는 dp로도 풀수 있고 비트마스크로도 풀 수 있는 문제이다.dp로 풀 경우에는 각 열을 증가시키면서 새롭게 나타나는 새로운 패턴을 더해주어야 한다. dp로 푸는 방법은 이해가 잘 안가서 포기 했고, 대신에 비트마스크를 활용해서 풀었다. http://joonas-yoon.blogspot.kr/2016/03/2718.html이블로그에서 너무 잘 설명해 놔서 따로 설명하진 않겠다. 재귀 호출하면서 중복된 호출을 피하기 위해서 메모이제이션 까지 구현해야 하는 상당히 좋은 문제인듯하다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include #include using namespace std;i..
Bridge의 의미는 다리이다. 기능 클래스 계층과 구현 클래스 계층을 서로 연결하는 패턴이다. 클래스 계층의 두가지 역할 1. 기능 클래스 계층 상위 클래스는 기본적인 기능을 갖고 있다.하위 클래스는 기본적인 기능에 새로운 기능이 추가 된다. A라는 추상 클래스를 상속받는 B라는 클래스 존재. 2. 구현 클래스 계층최상위 클래스가 인터페이스이고 이 인터페이스는 자식 클래스들에서 구체화될 메소드들이 정의되어 있다.자식 클래스에서 부모 인터페이스를 구현하여 사용한다. A라는 인터페이스를 구현한 B라는 객체가 있을때 이것을 구현의 클래스 계층이라고 한다. 클래스 계층의 분리 만약에 기능 클래스 계층과 구현 클래스 계층이 분리되어 있지 않다면? 그렇다면 하나의 계층 구조 안에 구현 클래스와 기능 클래스가 혼재..
클릭 위의 링크에 이분 매칭에 대해서 너무 잘 설명 되어 있기 때문에 한번 읽고 오는 것을 추천한다. 위의 문제는 해석해보면 다음과 같다. 1,2,3,4,5번 총 5명의 사람이 있고 1,2,3,4,5의 총 5개의 작업이 존재한다. 각각의 작업과 각각의 사람이 1:1로 매칭되어 어떤 한 사람이 한 작업을 처리할수 있게끔 매칭하는것이 목적이다. 예를 들어 위의 예제에서1번 사람은 1,2번 작업을 처리할수 있고2번 사람은 1번 작업만을 처리할수 있다고 예제 입력이 되었다. 이 상황에서 1번사람이 2번작업을 처리하고 2번사람이 1번작업을 처리하게끔 매칭 시켜주면 된다. 이분 매칭이라는 의미는 어떤 그래프에서 노드들의 그룹을 두개로 나눴을때 각 그룹내에서는 엣지가 생기지 않고 그룹끼리의 엣지만 존재하게끔 노드를 ..
블록체인 처리 흐름 1 블록체인 네트워크에 있는 사용자 A~F중 A,B,E가 송금을 의뢰한다.(트랜잭션을 발행시킨다.)트랜잭션을 발행시킬때 그 트랜잭션을 자신의 개인키로 전자서명해서 전송한다. 그렇게 되면 수신하는 측에서는 그 송신자의 공개키로 복호화 할수 있으므로, 그것이 진짜 그사람이 보낸것인지 확인이 가능하다. 블록체인 처리 흐름 2 트랜잭션이 블록체인 네트워크에 브로드 캐스트 되며, 결국엔 모든 노드들이 네트워크에서 발생한 동일한 트랜잭션을 수신하게 된다. 블록체인 처리 흐름 3 트랜잭션을 수신한 노드중 채굴자 노드는 그 트랜잭션을 공개키로 검증하고, 열심히 블록을 채굴하기 시작한다.블록을 채굴한다는 의미는 블록 헤더에 포함된 6가지 정보(NONCE,블록 생성 시각, 이전 블록 해쉬값, 머클해쉬 ..
이 문제는 굉장히 장황하게 써있지만 해석을 해보자면 다음과 같다. 예제를 예로 설명 하면 맨처음에 6과 3이 입력되는데, 이 6은 노드의 개수이다. 총 6개의 노드가 있는데, 그 다음줄에 보면 1 4 3 이 입력된다. 1->4를 갈수 있고 4->3으로 갈수 있다는 의미이다. 마찬가지로 6->2 2->5 5->4 2->3 과 같은 그래프를 얻어 낼 수 있다. 위상 정렬이라는 것은 그래프에서 노드들의 순서를 뽑아내는 작업이다. 예를 들어 그래프가 6->2 2->5와 같이 연결되어 있다면 6번 노드를 처리한다음에야 2번 노드를 처리할수 있고 2번노드를 처리한 다음에야 5번노드를 처리할수 있다는 의미이다. 이런식으로 쭉 나열하게 되면 6번 2번 1번 5번 4번 3번 순서대로 처리를 하면 위의 조건을 모두 만족시..
- Total
- Today
- Yesterday
- javascript
- reducer
- Babel
- hydrate
- webpack
- props
- useRef
- react hooks
- typescript
- type alias
- await
- reflow
- async
- state
- return type
- Polyfill
- atomic design
- Action
- promise
- design system
- storybook
- es6
- mobx
- computed
- useEffect
- rendering scope
- reactdom
- server side rendering
- react
- Next.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |