개인프로젝트

    [개인 프로젝트] Around Flavor (주변 음식점 랜덤 찾기) 후기

    주변 음식점 랜덤 찾기 항상 점심시간이나 낯선 공간에 갔을때 귀차니즘으로 음식점을 찾아보지 않는 나같은 사람들을 위해 개발했다. 비슷한 기능을 하는 웹이나 앱이 널리고 널렸지만 생각을 실천으로 옮기는 첫번째 프로젝트라 나름 재밌게 개발했다. 개발하면서 나름 고민했던 부분들을 공유하기 위해 글을 쓴다. Web Link : Around Flavor 1. 구글맵 구현 먼저 네이버지도, 카카오맵 등도 많은데 구글맵을 선택한 이유는 글로벌한 프로젝트를 만들어보고 싶어서이다. 구글맵은 프론트(react)에서 구현을 했다. GoogleMapsPlatform에서는 nodejs의 예시코드가 있었기 때문에 react를 위한 라이브러리를 선택해야 했다. react-google-maps/api와 google-map-react..

    [ethFruitShop] 중간 점검

    1. 구현한 기능들 토큰 발급 상점 - 과일구매(eth,토큰), 토큰 구매 구매하기,판매하기 - 유저들간 과일 거래 보유과일 - 보유한 과일 확인 2. 추가할 기능들 event를 이용하여 거래내역 보는 페이지 구현 과일을 다른 유저에게 보내기 유저간 과일 구매 토큰으로도 가능하게 구현 개인 프로젝트로 하려고 생각했던것은 아니었지만 학원에서 간단한 과제를 하다가 이것저것 기능을 더 추가하고 싶어 만들다가 프로젝트로 생각하고 정리하려고 한다. cryptozombie와 같이 solidity의 기본 문법을 아는것도 중요하지만 프로젝트를 실제로 해보면서 부딪히는 오류들을 마주하는게 나와 맞는 공부 방법인것 같다. 기능들도 미리 생각했던 것이 아니기때문에 기능을 하나 추가할때마다 코드를 갈아 엎어야 되는 부분이 많..

    [React Error] JSON schema for a JavaScript project using TypeScript tooling

    프론트를 만들다 보니 파일의 수가 많아지면서 import 경로가 깔끔하게 보이지 않았다. 그래서 루트 폴더를 설정해주기 위해 jsconfig.json 파일을 만들고 아래와 같이 경로를 설정해줬다. { "compilerOptions": { "baseUrl": "src" }, "include": ["src"] } 하지만 위 파일에 JSON schema for a JavaScript project using TypeScript tooling 라는 오류가 떴다. 오류를 찾아보니 대부분 아래의 설정을 검색해서 체크하라고 한다. 그래도 실행이 안되서 다른방법들을 해봤지만 모두다 실패했다. 나의 경우는 남들과는 달랐다. 나는 jsconfig.json 파일을 react프로젝트 src 경로에 생성했었다. 이것이 문제였고..

    [ethFruitShop] how to return mapping

    solidity에서 함수를 통해 mapping 자체를 return 하고 싶었다. 결과적으론 mapping을 return할수 없었다. 내가 얻고 싶은건 객체였으나 mapping을 return할수 없었기 때문에 mapping과 비슷하게 return 할수 있는 방법을 찾아봤다. 그래서 key값과 value값을 따로 뽑아 프론트에서 객체를 만들어주는 방법을 선택했다. const hasFruit = await deployed.methods .hasFruit() .call({ from: account }); const fruitWallet = await deployed.methods .getFruitWallet() .call({ from: account }); let temp = {}; for (let i = 0;..

    [Solidity Errror] uncaught (in promise) Error: Please pass numbers as strings or BN objects to avoid precision errors

    uncaught (in promise) Error: Please pass numbers as strings or BN objects to avoid precision errors 라는 에러가 난 코드는 프론트(리액트)에서 아래와 같다. const buy = async () => { await deployed.methods.buyFruit(name, count).send({ from: account, to: CA, value: web3.utils.toWei(count * price, "ether"), }); }; 이유를 구글링 해보니 web3.utils.toWei 함수의 첫번째 매개변수의 타입이 string 타입이였다. 그래서 코드를 아래와 같이 type을 추가해줬다. const buy = async ()..

    [Solidity Error] Member "push" is not available in string[] memory outside of storage

    function getFruitList() public returns(string[] memory){ string[] memory temp; for(uint i=0; i