본문 바로가기

분류 전체보기

(64)
Programmers : 음양 더하기 with JS - 어렵지 않게 풀었다. function solution(absolutes, signs) { var newArr = absolutes.map((item, index) => { if(signs[index]==true){ return item; }else{ return -item; } }) return newArr.reduce((arr, cur) => arr + cur); } function solution(absolutes, signs) { return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0); } 본인도 위 풀이처럼 reduce를 활용하려 했으나 중간에 if 문을 넣는게 지저분해 보일거 같았는데, 이렇게 하니 깔끔한거..
TIL) ERC721 활용하여 테스트넷에 NFT 발행하고 OpenSea에서 확인하기 #활용한 tool Remix AWS S3 버킷 openzeppelin #작업순서 Remix에서 openzeppelin library importing contract 작성 compile 및 deploy 이미지 및 속성값 담은 properties.json 작성 AWS S3 버킷에 properties.json 업로드 json 파일의 url 바탕으로 minting openSea testnet에서 확인 #전체코드 contract part // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/utils/Cou..
TIL) Ganache, Truffle, Hardhat, OpenZeppelin #Ganache 블록체인 개발을 위한 로컬 블록체인 네트워크를 제공하는 도구. 블록체인 네트워크 블록이나 트랜잭션 등 확인가능 #Truffle 스마트 컨트랙트 개발을 위한 도구 스마트 컨트랙트 테스트, 컴파일, 배포 등의 기능 제공 블록체인 네트워크에 연결해서 사용 ganache와 연결 가능 #Hardhat ganache + truffle 로컬 블록체인 네트워크를 제공하고, 스마트 컨트랙트 개발을 위한 테스트, 컴파일, 배포 가능 flexible한 테스트 환경을 제공하여 Truffle보다 더 많이 사용됨 #OpenZeppelin 스마트 콘트랙트 코드 구현을 위한 라이브러리 ERC-20이나 ERC-721과 같은 표준 코드를 제공함
TIL) Solidity 기본 문법: 변수 및 데이터 타입, 함수 #변수의 종류 - 상태변수: 컨트랙트 저장소에 영구적으로 저장되는 변수. 보통 컨트랙트 최상위 단에 선언 - 지역변수: 함수가 실행될 때까지만 존재하는 변수. 기본적으로 스토리지에 저장되지만, 레퍼런스 타입일 경우 재정의 가능 - 전역변수: 블록체인 안에서 모두 접근가능하며, 미리 정의되어 있는 특수 변수. block, msg, tx, this 등 #데이터 타입 - value type: bool, uint, int, address, byte, enum - reference type: struct, arrays, string, mapping #value type - 주소(address) - address와 address payable로 나뉨 - address payable: address에 추가 멤버인 t..
TIL) ERC-20 토큰 배포 및 추가기능 구현(OwnerHelper, TokenLock) #ERC-20이란? - ethereum request for comment 20의 약자 - 이더리움 블록체인 네트워크에서 정한 표준 토큰 스펙 - 이더리움 네트워크의 개선안을 제안하는 EIPs(ethereum improvement proposals)에서 관리하는 공식 프로토콜 - 이더리움 블록체인을 활용하는 토큰은 ERC-20 기준을 맞춰야 함 #ERC vs EIP - ERC는 기능 표준 - EIP는 개선 제안 #관리자 전용 함수 - OwnerHelper abstract contract는 contract의 구현된 기능과 interface의 추상화 기능 모두를 포함. -> 상속받은 자식객체에서 owner함수와 transferownership 함수 사용 + onlyOwner modifier 사용 // int..
Programmers : 없는 숫자 더하기 with JS function solution(numbers) { let box = [0,1,2,3,4,5,6,7,8,9]; let answer = 45; box.map((item) => { if(numbers.includes(item)){ answer -= item; } }) return answer; } function solution(numbers) { return 45 - numbers.reduce((cur, acc) => cur + acc, 0); } reduce를 쓰면 뭔가 더 간단해질 거 같았었는데, 역시나 이렇게 간단해질 수 있었구나 싶었다. 주어진 배열의 값들을 끄집어내면서 다 더한 값을, 0~9까지의 숫자를 더한 값(=45)에서 빼면, 0~9까지의 숫자 중 없는 걸 다 더한 것과 같은 값이 나옴. #..
TIL) 이더리움 스마트 컨트랙트 가스비, 스마트 컨트랙트 활용 사례 #가스비 - 가스비는 코드의 종류에 따라 다르게 부과됨 - 스마트 콘트랙트 개발자들은 가스비를 고려하여 효율적으로 코드를 구현해야 함. 스마트 콘트랙트 활용 사례 #보험계약 - AXA, Fizzy - B3i 표준개발 #원격계약 - DocuSign, Visa 자동차 렌탈 #제품의 유통 추적 - wells fargo, brighhann cotton, the commonwealth bank of australia 물류 유통 #저작권 - Binded 저작권 소유증명서
TIL) 블록체인과 튜링완전성 #튜링 머신 - 무한한 저장공간만 있다면 이 세상의 모든 문제를 풀 수 있는 기계를 만드는 것이 가능한데, 이를 튜링 머신이라고 한다. - 튜링 머신은 튜링 완전언어를 기반으로 구현된다. #튜링 완전언어 - 튜링 머신에 넣어야 할 알고리즘을 만들 수 있는 언어 #무한루프 - 튜링 완전언어의 특성에 따른 필수 불가결한 특징으로, 프로그램이 반복해서 돌아가는 것을 의미한다. - 튜링 완전언어를 기반으로 한 머신은 문제가 완전히 풀릴 때까지 반복해서 돌아가며 루프에 빠진다. - 루프는 시간제한이 없기 때문에, 이러한 특징을 악용하면 네트워크의 과부하를 일으킬 수 있다는 단점이 있다. #비트코인의 튜링 불완전성 - 비트코인은 네트워크가 루프에 빠지는 것을 막기위해 튜링 불완전성한 네트워크를 구현하였다. - 비트..
[React 활용한 개인프로젝트: kadvice] 초기 환경설정(git, npm, directory 생성) (1)git repository 생성 (2)react 프로젝트 만들기 npm create react-app 프로젝트 이름 (3)git과 연결 (4)기본 컴포넌트 생성 - MVC 패턴 (5)directory 생성 ├── package-lock.json ├── package.json └── src ├── App.css ├── App.js ├── components │ ├── controller │ │ └── controller.js // 키워드 받아오기 │ ├── main │ │ ├── advice.js // 명언 모음에서 가져온 개별 명언 │ │ ├── main.js // 명언 보여주는 메인 화면 │ │ └── search.js // 키워드로 명언 검색 │ ├── model │ │ └── model.js ..
TIL) 방법론 : MVC 패턴 MVC = Model, View, Controller USER가 접속 CONTROLLER가 USER 요청에 따라 MODEL을 호출 MODEL은 DB나 파일과 같은 데이터 소스 제어한 후 그 결과 UPDATES VIEW는 UPDATES된 내용을 USER에게 전달