Design Pattern (디자인 패턴)
디자인 패턴
디자인 패턴
JAVA JDK: Java Development Kit JRE: Java Runtime Environment JVM: Java Virtual Machine 변수 영역 클래스 멤버 변수 : static 영역 (JVM 종료 시까지 존재) 지역 변수 : stac...
20.11.09 시작
JWT JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parti...
Nest.js a framework for building efficient, scalable Node.js server-side applications typescript 사용 OOP, FP, FRP 모두 결합 default는 싱글톤 패턴을 사용 싱글톤 패턴 ...
Node.js V8 엔진에 기반해 만들어진 자바스크립트 서버 사이드 플랫폼 Event Driven Single Thread Non-blocking I/O 변수 선언은 var, let, const 이용
NoSQL (Not Only SQL) - Document Model
Express.js 프레임워크 Node.js 상에서 구동되는 javascript 프레임워크 MVC 디자인 패턴을 사용한다.
SSH 원격지 연결 을 가능하게 해주는 프로토콜 중 하나. 인터넷을 통해 통신할 때, 통신 내용을 암호화해서 전달하기 위해 사용 (스니핑 등을 방지한다.)
Docker Go 언어로 작성된 리눅스 컨테이너 기반 오픈소스 가상화 플랫폼 Host OS, Docker Engine 위에서 바로 동작하며, Host의 커널을 공유한다. (커널을 공유하는 경우 I/O 처리가 쉬워져 성능 향상을 꾀할 수 있다.) Host OS가 사용하는...
사용한 툴, 모듈 postman : API 테스트 작성 툴 newman, newman-reporter-html : Node.js 모듈 (npm install …) jenkins : 빌드 자동화 툴 ( 빌드 자동화와 동시에 API를 테스트해 제대로 돌아가는지를 체크할 수...
EVM 스마트 컨트랙트 배포 및 실행을 처리하는 이더리움의 일부 JVM과 비슷하게 바이트코드로 컴파일된 프로그래밍 언어의 인터프리터와 비슷한 계산 엔진 유사 튜링 완전 상태 머신 (넘겨진 가스량에 따라 유한 번의 계산을 수행하기 때문) EVM의 경우...
Ethereum
실제 상용화는 이루어지지 않음
블록 리워드를 계산하기 위해서 필요한 것들 해당 블록에서의 Fixed Reward 를 알아야 한다. 각 블록헤이트 마다의 Fixed Reward [0, 4370000) : 5 Ether [4370000, 7280000) : 3 Ether [728000...
이더스캔에서의 Internal Transaction (메시지) 표현 위의 사진을 보면 21개의 메시지가 있는 것을 볼 수 있다. 하지만 실제로 콜스택을 따라 메시지의 개수를 전부 세본다면 해당 블록에서 184개의 메시지가 있는 것을 확인할 수 있다. (이에 관한 자세한 파싱 방법...
Internal 트랜잭션이란? 일반적인 EOA -> CA 트랜잭션을 A라고 할 때, A가 실행되면서 CA의 내부에서 A에 대한 결과로 서브 트랜잭션들이 수행되는데 이것을 Internal Transaction이라고 한다. On-chain 상에 기록되는 정보는 오직 A 까지이며 ...
Web3 getTransaction, getTransactionReceipt 구조
Gas 란? 트랜잭션을 처리하는데 드는 비용, 즉 Transaction Fee 라고 생각하면 되며 Max_Tx_fee = Gas_Price * Gas_Limit 로 표현한다. 무한루프 코드가 컨트랙트에 존재하는 경우 다른 적법한 코드들이 수행될 수 없기 때문에, 즉 의도적인 공...
코인과 토큰 코인이란, 자신만의 메인 블록체인이 존재해 독립적으로 돌아갈 수 있는 암호화폐를 지칭 (ex. Ether, BTC, …) 토큰이란, 메인 블록체인 내의 기본적인 규약을 지키면서 종속되어 돌아가는 암호화폐를 지칭 (ex. Ethereum 안에서 돌아가는 USDT...
개인키, 공개키, 주소 생성 개인키 : 자신만이 알고 있어야 되는 키 (256bit), 블록체인 상에서 자기자신을 입증할 수 있게 해 줌. 공개키 : 모두가 알고 있어도 되는 키 (256bit), 공개키로 잠겨 있는 경우, 맞는 개인키로만 해제 가능 주소 : 공개키에 ...
Uncle Block 이란? 이더리움 메인 체인으로 선택받지 못한 블록으로, stale block 이라고도 한다.
코틀린 기초 변수 val : 불변 var : 가변 (변수 타입은 유지)
토이 프로젝트를 하면서.. 토이 프로젝트를 진행하면서 타입스크립트로 테스트 코드를 작성하였는데, 이를 진행하며 겪은 문제들을 다시 겪지 않기 위해 관련 이슈를 정리해 두려고 한다. 일단 구글에 존재하는 대부분의 자료들이 js 기반이며, 클래스를 mocking하는 정확한 방식을 찾...
IPFS 모든 컴퓨터를 연결하고자 하는 분산 P2P File System
Webhook 외부 시스템에서 특정 이벤트가 발생되면, 등록해놓은 특정 URL에 해당 정보를 알려주는 방법 (이벤트 핸들링을 위함) API를 이용해 이벤트를 핸들링하기 위해서는 주기적으로 이벤트 발생 여부를 해당 시스템에 요청해야 한다. (리소스의 낭비) Webhook을...
Shamir’s Secret Sharing Scheme (SSSS) 특정 값 (secret)을 여러 개의 조각으로 나누어서 관리하는 기법 x-of-y SSS 의 경우 특정 값을 y개의 조각으로 나누었을 때, x개 만큼의 조각을 안다면 다시 값을 도출해낼 수 있다. 간단...
OTP 1회용 인증수단으로, MFA(Multi Factor Authentication)으로 많이 사용한다. HOTP, TOTP가 존재하며 대부분의 서비스에선 TOTP를 많이 사용한다. 두 방식 모두 SEED는 동일하지만, moving factor가 다르다.
템플릿 엔진 특정 템플릿 파일과 데이터를 합성하여 결과 문서를 출력하는 소프트웨어 혹은 소프트웨어 컴포넌트 html 템플릿 엔진으로는 ejs가 있는데, 이건 .ejs 파일 + 데이터로 렌더링하여 html로 만드는 역할을 한다.
TCP/IP 소켓 TCP/IP 모델을 이용하며, 데이터 송수신 시 소켓을 사용한다. 운영체제별로 다루는 방식이 다르다. (리눅스의 경우 소켓도 파일로 취급, 윈도우에서 별개로 취급 등) 네트워크 데이터 전송은 빅 엔디안 방식 으로 통일
Random Wallet (Non-deterministic Wallet) 랜덤한 개인키를 생성해 주소를 파생함 여러 개의 지갑을 관리하기 너무 복잡하다. (100개의 지갑을 관리하기 위해서는 100개의 개인키를 갖고 있어야 함)
설치 OS: Ubuntu 18.04 Rippled Build Version : 1.6.0
FUll History API 이더리움 등의 블록체인에 대한 정보를 얻기 위해서는 해당 블록체인에 대한 노드가 필요한데, 이를 위해서는 자신의 컴퓨터에 많은 리소스를 노드에 할애해야 한다. (현재 이더리움만 4테라 정도) 이 정도의 용량을 따로 관리하기에는 무리가 있을 수 있...
이해를 위해선 ACAPY의 Swagger UI가 필요합니다. ACAPY에서 진행할 수 있는 기본적인 Happy Path에 대한 정리입니다.
Tails Server 연결 실행 https://github.com/bcgov/indy-tails-server
Hyperledger Aries is a toolkit for building solutions focused on creating, transmitting, storing and using verifiable credentials
하이퍼레저 인디는 ZKP VC/VP에 특화된 SSI 플랫폼
개인 공부 용도로 리서치 한 것들 정리한 것으로 부정확할 수 있다.
SSI 인증 시나리오
In summary, the major contributions of this paper are: a novel SSI-based ACM called SSIBAC, with a focus on data privacy and sovereignty an imp...
2021년 졸업 프로젝트 (DID) 관련 공부 내용 정리
Segment Tree 배열의 값이 지속적으로 바뀌는 상황에서 부분합을 구하는 방법 full binary tree 구조 사용 변경 시마다 O(logN) 만큼 걸림
Selection Sort (선택 정렬) 정렬되지 않은 맨 앞 값과 스왑하면서 진행 시간 복잡도 : O(n^2)
Vector
비트코인 네트워크 비트코인 P2P 프로토콜을 실행하는 노드의 집합 확장 비트코인 네트워크 : 비트코인 P2P 프로토콜, 풀 채굴 프로토콜, 스트라텀 프로토콜 및 비트코인 시스템의 구성요소들을 연결하는 연관 프로토콜 등이 포함되어 있는 네트워크 전반을 가리킨다.
개인키 무작위로 추출, 서명에 사용한다. (256bit)
UTXO (Unspent Transaction Output) 말그대로, 사용되지 않은 트랜잭션 출력값을 말한다. 일반 은행에서 계좌를 만들어 처리하는 방식과는 다르게 On-chain 상에 기록되어 있는 아웃풋을 이용해 코인을 보낼 수 있다. 각 아웃풋을 사용하기 위해서는 해당 아...
사용한 툴, 모듈 postman : API 테스트 작성 툴 newman, newman-reporter-html : Node.js 모듈 (npm install …) jenkins : 빌드 자동화 툴 ( 빌드 자동화와 동시에 API를 테스트해 제대로 돌아가는지를 체크할 수...
의존 주입에서 ‘의존’ 한 클래스가 다른 클래스의 메서드를 실행하는 것 클래스 내부에서 직접 의존 객체를 생성하는 것이 유지보수 관점에서 문제점을 유발할 수 있다.