목록코딩이야기 (31)
번개멍
EthChainId chainId = web3j.ethChainId().send(); System.out.println(chainId.getChainId()); 현재 체인의 chain Id를 알 수 있다. BigInteger blockNumber = web3j.ethBlockNumber().send().getBlockNumber(); System.out.println(blockNumber); 현재 블럭의 번호를 알 수 있다. String contractAddress = "${contractAddress}"; Credentials cutromerCreds = Credentials.create("${privateKey}"); TransactionManager cutomerTokenTxManager = new..
Redis 특징 모든 데이터를 메모리에 저장하고 조회하기에 빠른 속도를 보장한다. 싱글 쓰레드를 사용하기 때문에 원자성을 유지할수 있기 때문에 트랜잭션에 자유롭다. 여기서 원자성이란 어떤 것이 더 이상 쪼개질 수 없는 성질을 말한다. 리스트형 데이터 입력과 삭제의 속도가 mysql 에 비해 10배 빠르다. 실제 메모리에 종속되기에 예기치 않은 오류로 리부팅이 되면 데이터가 날라간다. 단점을 보호하기 위해 보관및 백업을 통해 영속성을 유지할수 있다. DBMS 를 사용할때는 데이터가 캐시가 아닌 디스크에 저장되기 때문에 데이터를 가져올때 마다 disk I/O 가 발생하게 된다. 입출력시 디스크를 경유하게 되면 메모리를 통한 입출력 보다 만배 이상 느리다고 한다. 그러는 반면 Redis 는 메모리에서 한번에 ..
function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); _afterTokenTransfer(address(0), to, tokenId); } 둘의 차이는 safeMint의 경우 mint 하려고 하는 ad..
Remix 온라인 Solidity 용 IDE 이며 디버깅 및 테스트를 제공하며, 간단한 Smart contract 를 작성하는데 최적이다. 빠르고 간단한 테스트에 최적이지만 복잡한 로직에는 부적절하다. Truffle - 스마트 컨트랙트 개발 프레임워크 솔리디티 코드 개발을 로컬에서 보다 편리하게 개발 할 수 있도록 지원해주는 프레임워크이다. Truffle 은 web3.js 라이브러리를 채택하고 있다. truffle 단점으로 Verify 가 자동으로 지원되지 않는다라고 한다. 최근에는 Hardhat 이라는 프레임워크를 많이 사용하는것 같다. HardHat 위에 개발 도구들에 비해 보다 전문개발 도구이며, 작성, 컴파일, 테스트, 배포 등을 가능함 turffle 에 비해 내부적으로 가상 이더리움 네트워크를 ..
openzeppelin을 이용하여 ERC20 기반의 토큰을 Sepolia 테스트넷에 발행 및 ERC721 기반의 NFT 발행하는 작업을 진행해보겠다. yarn add @openzeppelin/contracts openzeppelin 을 설치하고 싶었지만.... node의 버전 문제가 생겼고 다운그레이드를 진행하였다. 내 node --version 은 19.0.1 이고 hardhat이 지원하는 18.0.0.으로 변경하고자 node 버전 관리 모듈인 n을 이용하려고 한다. npm install n sudo n 18.0.0 n 설치후 노드 버전을 변경하고 싶었으나 installed된 노드 위치와 active된 노드의 위치가 달라서 노드 버전을 계속 새로 설치하고 버전을 변경해도 active된 노드 버전이 변경..
POJO란 무엇인가? Plain Old Java Object, 간단히 POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다(위키피디아) POJO의 필수 요소로는 가볍고, 유연하고, 간단명료 함이 있다. 장점 : 특정 프레임워크에 종속되지 않은 프로그래밍. 모든 java 프로그램에서 사용이 가능하다. 특정 프레임워크에 종속되지 않기 때문에 테스트가 자유롭다. 규칙 멤버변수의 접근자는 private 멤버 변수마다 getter/setter 가 존재 getter/setter 메소드의 접근자는 public POJO 클래스는 가독성과 재사용 성을..