분류 전체보기 52

Blockchain 채굴

1. Blockchain 채굴 이란?2. 코인베이스 트랜잭션(보상)3. 트랜잭션 hash 1. Blockchain 채굴 이란? 채굴은 단순히 "코인을 캐는 행위"로 이해되기 쉽지만, 블록체인에서는 훨씬 중요한 역할을 합니다. 우리가 앞서서 배웠던? 블록의 difficulty ( 난이도 )를 풀고 블록을 체인에 포함시킨 것 그 행위 자체가 블록체인에서의 채굴 입니다. 또한 블록을 채굴한 사람에게 주는 채굴자에 대한 보상은 트랜잭션 구조를 따르고있습니다. 채굴의 작업증명 새로운 블록 생성: 블록체인은 여러 거래들을 하나의 묶음으로 만들어 블록에 저장합니다.트랜잭션 검증: 채굴자는 트랜잭션들이 유효한지를 확인합니다.블록 보안 유지: 블록의 해시값이 정해진 조건(예: 특정 개수의 0으로 시작)을 만족해야 하..

카테고리 없음 2025.05.19

Blockchain Transaction 2

1. unspent (Unspent Transaction Output)2. Transaction 실행 흐름 정리 1. unspent (Unspent Transaction Output)UTXO txin 과 txout 으로 내가 가지고있는 미사용잔액 (UTXO) 를 사용하여 거래를 한후에 트랜잭션 풀에 담기게 됩니다. 그 후에 이 트랜잭션이 블록에 포함되고 채굴이 완료가 되면 그제서야 실제로 이러한 트렌젝션이 발생을 했고 결과와 결과로인한 상태를 업데이트를 해줘야했습니다. 잔액을 검증하기 위한 실제로 블록에 반영된 상태를 나타내는 데이터 구조 를 나타냅니다. // UTXO 구조 => 너 얼마 남았네? 미사용 잔액 추적export class UnspentTxOut { txOutId: string; ..

카테고리 없음 2025.05.19

Blockchain Transaction(요청)

1. Transaction2. UTXO(미사용 잔액)3. Transaction pool 1. Transaction Transaction이란? 트렌젝션이란 블록체인에 남기는 의미 있는 요청 으로서 자신이 이 요청을 했다라는 인증이가능한 서명값과 함께 계약을 하는것입니다.블록체인은 중앙화된 관리자가 없기 때문에 트렌젝션 이 발생하면 이 요청을 한 주체가 누구인지 악용을 했는지 를 검증하기 위해서 지갑을 만들때 생성된 Signatuer(서명)를 항상 넣어줘야 합니다. 블록체인은 이를 확인하고 검증 후 트렌잭션을 성사시키고 Transaction pool 에 임시로 넣게 됩니다. 이후 이 트렌잭션 풀에 있는 거래내용이 채택되고 블록에 포함 이후 채굴자가 difficulty를 풀고 채굴하여 블록이 생성이되면 ..

카테고리 없음 2025.05.19

Blockchain Wallet(지갑)

1. ECC2. 키페어, 서명3. 공개키 검증 블록체인에서의 지갑은 타인들에게 나를 검증하고 나만이 알고있는키로 인증이 가능해야합니다. 즉 지갑이 곧 나 자신을 뜻하는 인증 매체 로서 나의 자산이나 정보 등을 가지고 있습니다. 지갑이 할 수 있는 일1. 암호화폐를 보내고 받을 수 있습니다. 2. 이 지갑이 나임을 인증3. 지갑내의 잔액확인 4. 내가 언제 얼마를 주고받았는지 거래내역을 볼 수 있습니다.5. 복구 문구만 있다면, 지갑을 언제든 다시 복원할 수 있습니다. 1. ECC 블록체인은 중앙기관이 없는만큼 모두가 나임을 검증가능하고 믿을 수 있는 인증이 필요한 수학적 기능이 필요했습니다. 그래서 블록체인의 지갑은 ECC라는 수학적 기술을 사용하게 되었습니다. ECC란타원 곡선 위에서 수학적 연산을..

카테고리 없음 2025.05.14

Chain 의 difficulty(난이도) 조절

1. Chain의 Block 난이도 설정 1. Chain의 Block 난이도 설정 Block은 일정수준의 dibfficulty 난이도를 풀어야 체굴이 됩니다 블록체인의 난이도는 새로운 블록을 채굴(혹은 생성)하기 위해 풀어야 하는 암호학적 퍼즐의 난이도를 정의합니다. 이 퍼즐을 풀려면 충분한 계산 능력이 필요하며, 이 과정을 통해 블록체인 네트워크는 탈중앙화된 방식으로 새로운 거래를 검증하고 블록을 추가할 수 있습니다. 난이도가 높을수록 퍼즐을 푸는 데 더 많은 계산이 필요하게 됩니다. 목표 시간: 비트코인의 경우, 블록 생성 시간 목표는 10분입니다.실제 시간: 2016개의 블록이 생성된 실제 시간을 측정합니다.조정 비율: 실제 시간과 목표 시간의 차이를 기반으로 난이도를 조정합니다. 예를 들..

카테고리 없음 2025.05.13

Blockchain Chain

1. Chain 2. longest chain rule 1. Chain Chain 은 블록과 블록을 하나로 연결한 배열입니다. 이미 Block 과 Block 이 현제 블록의 previousHash 와 이전블록의 hash 로 연결되어 있으나 이 연결된 상태가 올바른 규칙에 따라 생성되었지 검증과 어떠한 검증에 의하여 블럭이 추가되는지에 대한 유효성 검사 등에 대한 것을 블럭을 감싸는 체인형태로 나타냅니다. 블록: 단일 거래 모음의 "상자"체인: 그 상자들이 어떤 순서와 규칙에 따라 이어졌는지를 담은 "이력" chain 은 블록의 길이를 저장하고 특정 블럭을 불러올 수 있으며 체인과 체인과의 길이를 비교하기 위한 로직을 담고 있습니다. 블록체인은 블록이 체굴된후 검증을 위하여 체인을 다른 노드들에게 전..

카테고리 없음 2025.05.13

BlockChain Block

1. Block header와 body 2. GenesisBlcok 3. Block의 연결 previousHash 1. Block header와 body 블록체인의 Block 에도 요청 host처럼 header 와 body로 나뉘어서 정보를 나누어서 저장을 하는 구조를 가집니다. 이는 머클루트로 데이터만 조회하고 연결되는 hash로 다음 블럭과 연결된 상태만 나타내면 되는데 모든데이터를 조회하면서 비교를 한다면 비용이 늘어나고 검증시간또한 늘어나기 때문입니다! 블록 구현 inferface구현된 것이 없고 밑그림만이 있는 설계도 로서 표준 약속 규칙입니다. (공통적인 기능을 명시 필수적으로 구현)일반 메서드 또는 맴버 변수를 가질 수 없고 추상메서드와 상수만 가질수 있습니다. Block..

카테고리 없음 2025.05.13

TDD 테스트 주도 개발

1. TDD2. jset3. TDD 로 검증 1. TDD TDD(Test-driven Development)는 테스트 주도 개발을 뜻하는 소프트웨어 개발 방법론입니다. 먼저 테스트를 작성하고, 그 테스트를 통과하는 코드를 작성하는 방식으로, 선 테스트 후 개발 방식이라고도 합니다. TDD특징짧은 개발 사이클을 반복하며, 자동화된 테스트 케이스를 작성합니다코드를 수정하거나 기능을 추가할 때 수시로 빠르게 검증 할 수 있습니다.리팩토링 시에 안정성을 확보할 수 있습니다.개발 및 테스팅에 대한 시간과 비용을 절감할 수 있습니다. 목표버그가 적은 완벽에 가까운 데모를 고객에게 제공합니다적용 분야익스트림 프로그래밍 개발방법론의 실천 방안 중 하나입니다 [ 좋은 테스트의 특징 ] 그렇다고 테스트를 무작정 작..

카테고리 없음 2025.04.22

TypeScript

1. TypeScript2. 컴파일, ts-node 3. Interface,Assertion,Generic 1. TypeScripttypescript란?JavaScript 은 웹 개발의 표준이지만 규모가 커질수록 타입에 대한 안정성이 부족하고 코드 예측이 어려웠습니다.이를 해결하기 위하여 Microsoft는 정적 타입을 지원하는 TypeScript를 2012년에 출시했습니다.. TypeScript는 JavaScript의 상위 확장(superset)으로, 코드 실행 전에 오류를 잡아내고, 프로젝트시 유지보수를 쉽게 해주는 장점이 있습니다. type원시타입 값 자체를 저장하며, 메모리에 직접 할당된다. 변경이 불가능 한 특성을 가집니다.const [변수명]: [타입] = [타입에맞는값];const a: ..

카테고리 없음 2025.04.21

AWS NGINX

통신규약NGINX는 왜 필요할까?NGINX 사용법 1. 통신규약 인터넷에서 데이터를 주고받을 때는 HTTP 또는 HTTPS라는 약속된 규칙을 따라야 해요.이걸 **통신규약(Protocol)**이라고 부르죠.예: 브라우저가 서버에게 페이지를 요청할 때vbnet복사편집GET / HTTP/1.1 Host: example.com 서버는 이 요청을 읽고 HTML, 이미지, 데이터를 응답해줍니다.2. NGINX가 필요한 이유우리가 React, Node.js, Flask, Spring 같은 서버 애플리케이션을 직접 띄우면 보통 3000번, 3005번, 8080번 같은 비표준 포트를 사용해요.예:bash복사편집http://mydomain.com:3005 하지만 이런 주소는 몇 가지 문제가 있습니다. 1. 포트번호 ..

카테고리 없음 2025.04.21