본문 바로가기

Web_Study/TypeScript

TypeScript_Project5:Blocks

▶ BlockChain?

  • 여러개의 블록이 사슬처럼 묶인 것
  • 블록 안에 데이터 존재하며 이 블록은 다른 블록으로 묶여있는 개념
  • 블록간의 연결고리는  Hash

 

▶ Proactive

  • start를 실행하면 build/index.js 실행함을 의미

package.json

  • 이와 같이 script 실행 시, 매우 비효율적!

Terminal단

  • ts-node : 빌드없이 타입스크립트를 실행시키는 엔진
    • 빌드없이 빠르게 새로고침하고싶을때 사용
    • 개발환경에서만 사용

 

  • nodemon : 자동으로 커맨드를 재실행해주는 엔진
    • 서버 코드 변경 시, 자동으로 서버 재시작

▶ Block 생성

index.ts

  • Block의 모양을 interface로 생성
    • hash를 이용하여 데이터를 보호 -> 블록정보가 수정되지 않음을 의미
    • height : 블록의 위치를 의미
    • data : 블록이 보호할 데이터

index.ts

  • block의 hash값은 prevhash, height, data를 이용하여 만들어짐
    • 블록의 signature 의미(hash의 특성을 이용) 

* static 함수는 class안에서 사용하는 함수로써 class instance가 없어도 부를 수 있는 함수

* hash값 계산을 위하여 crypto package import!

  • esModuleInterop : 자바스크립트에는 여러 시스템과 모듈이 존재하는데, 여러 모듈을 import 허용할지에 대한 설정

tsconfig.json

  • Definitely Typed

타입스크립트로 작성되지 않은 패키지를 import할때 나타날 수 있는 error

 

  • 패키지 안의 함수를 타입스크립트에게 설명해주어야함 (d.ts파일을 이용)
    • 사용자가 매번 패키지를 import할때마다 d.ts파일 생성 제한
  • Definitely Typed 이용
    • npm에 존재하는 대부분의 Package에 대한 정의파일 존재
    • 여러 참가자들이 만든 오픈소스
      • package파일 설치 시, .d.ts파일을 추가해서 제공하는 경우가 많지만 아닌 경우에 Definitely Typed 이용

 

//npm i -D @types/node명
npm i -D @types/crypto

 

'Web_Study > TypeScript' 카테고리의 다른 글

TypeScript_Project6:BlockChain_Final  (0) 2023.01.03
TypeScript_Project4:Type Definition  (0) 2022.09.01
TypeScript_Project3:Type Definition  (0) 2022.07.27
TypeScript_Project2:Lib Configuration  (0) 2022.07.11
TypeScript_Project1:Target  (0) 2022.07.01