목록전체 글 (44)
번개멍
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 클래스는 가독성과 재사용 성을..
아래와 같은 API 유닛테스트 호출시 Data 값이 없이 나왔다... @GetMapping("/role/list") @ResponseBody public Callable getRoleList(@RequestParam Map paraMap) { System.out.println("paramap ::"+paraMap); return () -> roleManagementService.getRoleList(paraMap); } 검색및 질문결과 MockMvcResultHandlers.print() 로 찍었을때 Data 가 비어서 나타났다. 'Callable' 요 친구가 비동기 처리 방식이기때문에 위에 방식으로는 결과값을 알 수 없었다. 해당 값을 확인하기 위해 getAsyncResult() 비동기처리의 결과값을 ..
.Interceptor AOP를 적용한 Spring MVC의 요소입니다. Interceptor는 요청 주소에 대해 관심을 갖고 요청이 발생하게 되면 요청 주소를 확인하여 Controller의 메소드를 호출 하기 전이나 후에 다른 메소드를 호출 할 수 있도록 가로 채 가는 개념이다. 요청 발생시 호출되는 메소드의 코드가 중복 되는 부분이 있을때 Interceptor를 통해 처리하게 됩니다. 로그인 여부 확인, 등급별 서비스 사용 권한 확인 등의 작업을 처리할 때 많이 사용합니다. Interceptor는 Java 프로젝트와 XML 프로젝트의 셋팅 방법이 각각 다릅니다. Interceptor 구현 Interceptor는 HandlerInterceptor 인터페이스를 구현하거나 HandlerInterceptor..