ERC721 & NFT
ERC721 & NFT
ERC-721 함수의 기능ERC-721 표준에 정의된 함수 9개
함수명
속성
balanceOf
owner가 소유한 NFT의 갯수 반환
ownerOf
특정 tokenId를 가진 NFT의 소유주 주소를 반환
approve
특정 계정에게 자신이 소유한 NFT 하나를 사용하도록 허용
getApproved
특정 NFT가 다른 계정에게 사용 승인되었는지의 여부 반환
setApprovalForAll
특정 계정에게 자신이 소유한 NFT에 대한 사용을 허용
isApprovedForAll
owner가 특정 계정에게 자신의 모든 NFT에 대한 사용을 허용했는지의 여부 반환
transferFrom
NFT 소유권 전송
safeTransferFrom
받는 주소가 NFT를 받을 수 있는지 확인 후 NFT 소유권 전송
safeTransferFrom
받는 주소가 NFT를 받을 수 있는지 확인 후 NFT 소유권 전송
ERC-721에는 9개의 표 ...
ERC20
ERC20ERC-20 ?
ERC-20은 Ethereum Request for Comment 20의 약어로, 20은 리퀘스트 숫자이다.
이더리움 네크워크의 개선안을 제안하는 EIPs(Ethereum Improvement Proposals)에서 관리하는 공식 프로토콜이다.
이더리움 블록체인 네트워크에서 정한 표준 토큰 스펙이다.
필요한 이더리움과 호환성이 있는 모든 요구 사항을 충족시키는 표준을 ERC-20로 간주한다.
ERC-20 토큰은 이더리움과 교환 가능하고, 이더리움 지갑으로 전송 가능하다.
EIP vs ERC 차이
EIP(Ethereum Improvement Proposals)는 이더리움 개선 제안
ex. “이더리움 생태계를 이런식으로 개선해보면 어떨까요~?”
ERC(Ethereum Request for Comments)는 이더리움 기능 표준
ex. ”이 **기능(=프로그래밍 코드)**은 앞으로 이더리움 기능의 표준이 될 것 입니다.”
➡️ EIP가 E ...
분산원장기술 / 트랜잭션
분산원장기술 / 트랜잭션분산원장기술(DLT; Distributed Ledger Technology)분산원장(Distributed Ledger) = 분산원장기술 = 공유원장
⇒ 블록체인 기술의 핵심
→ 거래 정보를 기록한 원장을 특정 기관의 중앙화된 서버가 아닌 분산화된 네트워크에서 참여자들이 공동으로 기록 및 관리하는 기술
→ 분산[Distributed : 광범위하게 널리 분포 의미] + 원장[Ledger : 거래내역이 기록된 장부 의미] = 분산원장
중앙집중원장(Centralized Ledger)기존의 여러 서비스가 지닌 형태, 여러 대기업이 제공하는 서비스와 은행시스템은 그들이 지닌 신뢰를 바탕으로 이용. 기관이나 기업에게 신뢰비용으로 수수료 등을 지불하고, 그들은 서비스를 제공하며 데이터를 보관(보안)하고 활용함. But, 기존의 중앙집중형 데이터베이스 관리시스템의 취약점이 존재.
중앙집중원장이 지닌 취약점
비용
제3자인 중앙집중형 관 ...
Docker 사용
Docker의 기능, CLIDocker 핵심 키워드컨테이너애플리케이션이 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고, 도커라는 기술 위에 실행될 수 있도록 만든 애플리케이션 상자
이미지실행되는 모든 컨테이너는 이미지로부터 생성 됨.
이미지는 애플리케이션 및 애플리케이션 및 애플리케이션 구성을 함께 담은 템플릿으로, 이를 사용해서 컨테이너 생성.
이미지를 이용해 여러 개의 컨테이너를 생성 → 애플리케이션 수평 확장이 가능.
이미지는 기본 이미지(base image)로부터 변경 사항을 추가/커밋하여 다른 이미지를 만들 수 있다.
⇒ [ex] node.js로 작성된 애플리케이션을 이미지로 만들고 싶은 경우에 node.js 이미지를 기본 이미지로 삼고 내가 만든 애플리케이션을 추가하여 이미지화.
레지스트리이미지는 레지스트리에 저장됨. 대표적인 이미지 레지스트리는 Docker Hub, Amazon ECR. 도커 CLI에서 이미지를 이용해 컨테이너 생성 시, 호스트 ...
Docker / Container
Docker 설치 / Container 기술Docker 설치
MacOs
Ubuntu - Docker Engine / Docker Compose 설치
12345# MACdocker --version# Ubuntusudo docker --version
Docker의 등장 - 컨테이너 기술 연관성
컨테이너 : 물자를 싣고 내릴 때, 선박이 입항해 있는 시간을 단축, 필요 인력 감소.
→ 컨테이너 기술을 “소프트웨어 수송, 배포”에 사용 = 리눅스 컨테이너(lxc)
→ 애플리케이션을 쉽게 컨테이너화할 수 있는 생태계 또는 커뮤니티가 없음
→ 도커(Docker)는 Docker Hub라는 소프트웨어 저장소와 함께 성장
→ 쉽게 애플리케이션을 포장, 컨테이너 방식으로 실행
⇒ 실행 환경에 구애받지 않고 애플리케이션 실행 가능
Docker?컨테이너 방식 장점
의존성 충돌 문제 해결
개발과 배포 환경을 일치
수평 확장을 쉽게 해줌
각 서버에 새로운 내용 ...
Node.js 모듈 사용 / Fetch 네트워크 요청
Node.js 모듈 사용 / Fetch 네트워크 요청[JS/Node] 비동기 2
Node.js 모듈 사용법브라우저에서 사용할 수 있는 비동기 흐름은 타이머 혹은 DOM 이벤트와 관련된 상황으로 다소 한정적.
BUT!
Node.js의 경우 많은 API가 비동기로 작성됨.
Node.js ?로컬 환경에서 자바스크립트를 실행할 수 있는 자바스크립트 런타임이다. 브라우저에서 불가능한 기능이 가능.
모듈 ? 어떤 기능을 조립할 수 있는 형태로 만든 부분. fs(File System) 모듈은 PC의 파일을 읽거나 저장하는 일을 지원함.
서버사이트 스크립트 언어가 아닌 프로그램(환경)이다.
웹서버와 같이 확장성 있는 네트워크 프로그램 제작을 위해 만들어졌다. ⇒ 한가지 언어로 전체 웹 페이지를 만들 수 있게 됨.
Node.js의 특징
자바스크립트 언어 사용
자바스크립트 엔진 사용으로 속도가 빠르다
이벤트 기반 비동기 방식(Non-Blocking)
Node.js 에서 모든 A ...
비동기 - UnderBar 라이브러리
비동기 - UnderBar 라이브러리[JS/Node] 비동기
💡 비동기 흐름은 callback, promsie, async/await 중 하나의 문법을 이용해 구현 가능.
Achievement Goals
어떤 경우에 중첩된 callback이 발생하는지 이해
중첩된 callback의 단점과 Promise의 장점 이해
Promise 사용 패턴을 이해
resolve, reject의 의미 / then, catch와의 관계 이해
Promise에서 인자를 넘기는 방법
Promise.all 의 사용법
async / await : keyword에 대해 이해 및 작동 원리 이해
Node.js의 fs 모듈 사용법을 이해
비동기비동기의 이해커피숍에서 먼저 주문한 손님1이 커피를 받을 때까지, 줄 서 있는 손님2는 주문 불가능
→ blocking : 하나의 작업이 끝날 때까지, 이어지는 작업을 “막기”
손님2는 손님1의 커피가 나온 후, 주문 가능 → 손님1의 주 ...
내장 고차함수
[JS/Node] 내장 고차함수Built-in higher order functions내장 고차함수 ?자바스크립트에는 기본적으로 내장된 고차함수들 중 배열 메소드들의 일부가 대표적인 고차함수에 해당한다.
배열의 filter 메소드는 모든 배열의 요소 중에서 특정 조건을 만족하는 요소를 걸러내는 메소드이다.
ex) number 타입을 요소로 갖는 배열에서 짝수만 걸러내거나, 18보다 작은 수만을 걸러내기, string 타입을 요소로 갖는 배열에서 길이가 10이하인 문자열 걸러내기, ‘korea’만 걸러내기.
filter 메소드를 이용해 특정 조건 만족하는 요소 걸러내기123let arr = [1,2,3,4];let output = arr.filter(짝수); // 문법 오류지만 예시console.log(output); // [2,4]
filter 메소드는 배열의 요소를 인자로 전달되는 콜백 함수에 다시 전달한다. 콜백 함수는 전달받은 배열의 요소를 받아 함수를 실행 ...
고차함수 (Higher-order Function)
[JS/Node] 고차함수First-class citizen ; 특별 대우 받는 함수자바스크립트에서 특별한 대우를 받는 일급 객체(first-class citizen) 중 하나가 함수이다. 자바스크립트에서 함수는 아래와 같이 특별하게 취급된다.
변수에 할당(assignment) 할 수 있음
다른 함수의 인자 (argument)로 전달 될 수 있음
다른 함수의 결과로서 리턴될 수 있음
함수를 변수에 할당할 수 있어서 함수를 배열의 요소나 객체의 속성값으로 저장할 수 있다.
⇒ 함수를 데이터[ string / number / boolean / array / object ]를 다루듯이 다룰 수 있다는 의미
1. 변수에 함수를 할당하는 경우1234567891011/* **변수 square에 함수를 할당하는 함수 표현식**, * 자바스크립트에서 함수는 일급 객체라 변수에 저장 가능함. * But, 함수 표현식은 할당 전에는 사용할 수 없음 ...
DOM과 HTML
[JS/브라우저] DOM 으로 HTML 조작하기
🚨 CRUD(Create, Read, Update, Delete)에 집중하고, 이해하자. 이후 다양한 trivia에 대해 알아야 한다. DOM에는 HTML에 적용(APPEND)하는 메소드가 따로 있다는 것을 주의!
Goal
DOM을 JavaScript로 조작하여 HTML Element를 추가 / 삭제 / 내용 변경
createElement - CREATE
querySelector, querySelectorAll - READ
textContent, id, classList, setAttribute - UPDATE
remove, removeChild, innerHTML = “”, textContent = “” - DELETE
appendChild - APPEND
innerHTML와 textContent의 차이
DOM을 JavaScript로 조작하여 HTML Element를 추가 / 삭제 ...