묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Ethereum 실전! 초보자를 위한 Lottery Dapp 개발
Lottery Bet 함수 테스트 강의 중 4:36에서 'from' 관련 오류가 발생합니다.
감사하게도 강좌를 통해 스마트 컨트랙트에 대해서 배우고 있는데요, Bet 테스트 코드 실행 시, 에러가 발생하고 있는데 어디서 문제인지 파악이 안되서 질문글 올려요 Error: The send transactions "from" field must be defined! Lottery.solpragma solidity >=0.4.22 <0.9.0; contract Lottery { struct BetInfo { uint256 answerBlockNumber; address payable bettor; byte challenges; //0xab... } address public owner; uint256 private _tail; uint256 private _head; mapping (uint256 => BetInfo) private _bets; uint256 private _pot; uint256 constant internal BET_AMOUNT = 5 * 10 ** 15; uint256 constant internal BET_BLOCK_INTERVAL = 3; uint256 constant internal BLOCK_LIMIT = 256; event BET(uint256 index, address bettor, uint256 amount, byte challenges, uint256 answerBlockNumber); constructor() public { owner = msg.sender; } function getPot() public view returns (uint256 pot) { return _pot; } /** * @dev 베팅을 한다. 유저는 0.005 ETH를 보내야 하고, 베팅을 1 byte 글자를 보낸다. * 큐에 저장된 베팅 정보는 이후 distribute 함수에서 해결된다. * @param challenges 유저가 베팅하는 글자 * @return 함수가 잘 수행되었는지 확인히는 bool 값 */ function bet(byte challenges) public payable returns (bool result) { // check the paater ether is sent require(msg.value == BET_AMOUNT, "Not enoughf ETH"); // push bet to the queue require(pushBet(challenges), "Fail to add a new Bet Info"); // emit evnet emit BET(_tail - 1, msg.sender, msg.value, challenges, block.number + BET_BLOCK_INTERVAL); return true; } // save ther bet to the queue // 결과값 검증 // check the answer function getBetInfo(uint256 index) public view returns (uint256 answerBlockNumber, address bettor, byte challenges) { BetInfo memory b = _bets[index]; answerBlockNumber = b.answerBlockNumber; bettor = b.bettor; challenges = b.challenges; } // function pushBet(byte challenges) public returns (bool) { function pushBet(byte challenges) internal returns (bool) { BetInfo memory b; b.bettor = msg.sender; b.answerBlockNumber = block.number + BET_BLOCK_INTERVAL; b.challenges = challenges; _bets[_tail] = b; _tail++; return true; } // function popBet(uint256 index) public returns (bool) { function popBet(uint256 index) internal returns (bool) { delete _bets[index]; return true; } } lottery.test.js const assertRevert = require("./assertRevert"); const Lottery = artifacts.require("Lottery"); contract('Lottery', function (deployer, user1, user2) { let lottery; beforeEach(async () => { lottery = await Lottery.new(); }) //it.only('getPot should return current pot', async () => { it('getPot should return current pot', async () => { let pot = await lottery.getPot(); assert.equal(pot, 0); }) describe('Bet', function () { console.log(user1); it.only('should fail when the bet money is not 0.005 ETH', async () => { // Fail transaction await assertRevert(lottery.bet('0xab', { from: user1, value: 4000000000000000 })) // transaction object {chainId, value, to, from, gas, gasPrice} }) it('should put the bet to the bet queue with 1 bet', async () => { // bet await lottery.bet('0xab', { from: user1, value: 5000000000000000 }) // check contract balance == 0.005 // check bet info // check log }) }) }); 중간에 제가 노트북을 리부트해서 서버의 정보가 날라가서 일까요?? ganache-cli -d -m tutorial로 다시 구동했는데, user1를 출력해보면 undefined가 나옵니다. ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[에러] Database not found에 관해서
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요메인어플리케이션을 실행시 에러가 발생하여 질문남깁니다.해당에러는 다음과 같습니다.하지만 해당경로에는 아래와 같이 파일이 존재하구요다른 글들을 참고해봤지만 에러가 해결되지 않아서 글을 남깁니다. 감사합니다.githubhttps://github.com/heechanCho/jpashop
-
미해결풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
9일차 어드민 삭제에서 executePay 로직 문의드립니다!
안녕하세요. 9일차 어드민 삭제 강의를 보던 중 cart resolver에서 구현해주신 executePay 로직에 의문이 생겨 문의 남깁니다!위 코드는 9일차 강의 코드로, 결제 버튼을 눌렀을 때 결제 목록에서 삭제된 상품이 포함되어있는지 판별하기 위해, if 문을 이용하여 newCartData를 순회하며 createdAt이 없는 상품이 있는지 체크하고 있습니다.여기서 newCartData 는 현재 결제 목록에 담긴 상품이 아닌, 결제된 상품을 제외하고 새로운 cart로 업데이트 하기 위해 기존 cart에서 ids를 필터링한 cart인 것으로 보여서요. 그럼 if 문에서 삭제된 상품을 판별하기 위해서는 newCartData가 아닌 ids를 순회해야 하는 것이 아닌가 여쭙니다!
-
미해결[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
XML 파일다루기2에서 예제 객체.content 문의
안녕하세요! 수업 듣다가 궁금한 점이 있어 문의드립니다.강의 제목: 섹션3 "XML 포맷 이해와 파이썬으로 XML 파일 다루기2"문의 관련 강의 시점: 해당 강의의 3:15 부근문의 내용: 예제를 풀어보니 이 문제에서는soup = BeautifulSoup(response.text, 'xml')이랑 soup = BeautifulSoup(response.content, 'xml')모두 출력이 맞게 나오는데 객체.text랑 객체.content랑 어떤걸 써도 상관이 없은건가요? 무슨 차이가 있는지 문의드립니다.
-
미해결Vue.js 시작하기 - Age of Vue.js
vue cli npm 설치
안녕하세요! 강의를 보고 따라 설치해보다가 오류가 나서 질문합니다.구글링으로도 찾아보았지만 도저히 해결이 안되어서요.node.js 버전과 npm 버전은 강사님께서 말씀하신 조건이 충족됩니다.node -v : v18.16.0npm -v : 9.5.1npm install -g @vue/clichanged 858 packages in 21s65 packages are looking for funding run npm fund for detailsnpm install을 사용했을 땐 이런 오류가 뜨고yarn global add @vue/cliyarn : 'yarn' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + yarn global add @vue/cli + ~~~~ + CategoryInfo : ObjectNotFound: (yarn:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundExceptionyarn을 사용했을 때는 이런 오류가 뜹니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
소리 강제로 나오게하는법?
안녕하세요 개복치님!개복치님의 강의를 수강한 후 다양한 어플을 만들어보고자현재 알람어플을 제작하고 있는데요사용자의 현재 핸드폰 볼륨이 무음일 경우에도알람이 실행되면 알람음이 강제로 나오게 하려고 하면 어떤 설정을 해주어야 할까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
지원 중단된 기능이 사용됨 이라고 나오네요 ㅠㅠ
getCurrentPosition() 및 watchPosition()은 더 이상 안전하지 않은 출처에서 작동하지 않습니다. 이 기능을 사용하려면 애플리케이션을 HTTPS와 같은 안전한 출처로 전환하는 것을 고려해야 합니다. 자세한 내용은 다음 페이지를 참고하세요코드 입니다 const askForLocation = function () { navigator.geolocation.getCurrentPosition((position) => { console.log(position); }); };.
-
해결됨CAN 통신 - 자동차 신입이 알아야 할 모든 것
에러 발생 시 메세지 전송에 대한 질문
안녕하세요. 에러 수업을 듣다가 질문이 있어 남깁니다. 원래 어떤 제어기가 메세지를 송신하고 있을 때는, 다른 제어기들은 컨트롤러가 버스에 메세지를 누군가가 보내고 있는지를 확인하고, 이 메세지 송신이 끝나면 송신을 원하는 메세지들이 앞다투어 메세지를 보내다가, ID가 작은 우선순위부터 다시 메세지를 보낸다고 이해했습니다. 즉, 결국 하나의 제어기만이 버스에 메세지를 송신할 수 있습니다. 그런데, 에러 발생 시 passive의 에러 발생을 보내는 힘이 약한 이유를 듣고 보니, 얘는 어떤 제어기가 송신중임에도 에러 인지를 위해 바로 카운터를 보낸다고 하셨습니다. 그러면 0이던 1이던 에러 카운터를 보내면서, 이미 송신중이던 제어기의 데이터가 제대로 다른 제어기들에게 송신이 안될 것이라 생각이 됩니다. 결론적인 질문을 말씀드리면,1.메세지를 수신하고 있는데 에러가 발생했을 때, 이미 다른 제어기가 송신중임에도 에러 카운터를 보내는 것이 맞나요?2.혹시 맞다면, 이미 송신중인 데이터가 제대로 송신이 어떻게 될 수 있는지 궁금합니다. 에러 카운터가 송신중인 데이터와 버스에 섞일 것이라 생각이 됩니다. 감사합니다.
-
미해결
test
안녕하세요 ㅎㅎㅎ
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
session hijacking 질문
안녕하세요. 열심히 듣고 있는 수강생 1입니다. 다름이 아니라 session hijacking 실습 중에 강사님께서 공격자 컴퓨터에서 c드라이브 밑에 c://www/session/ 이렇게 디렉토리를 만드셔서 실습하시더라구요그래서 저도 똑같이 디렉토리를 만들어서 실습을 진행하는 중인데 404 Not Found가 뜹니다. 강사님께서는 rowdata.txt가 파일이 만들어지는데 저는 왜 이렇게 나오는 걸까요??
-
미해결실전! Querydsl
tuple자료구조가 어떻게 되어 있는 건가요 ?
@Test public void tupleProjection() throws Exception { List<Tuple> result = queryFactory .select(member.username, member.age) .from(member) .fetch(); System.out.println("result = " + result); for (Tuple tuple : result) { String username = tuple.get(member.username); Integer age = tuple.get(member.age); System.out.println("username = " + username); System.out.println("age = " + age); } } result = [[member1, 10], [member2, 20], [member3, 30], [member4, 40]]username = member1age = 10username = member2age = 20username = member3age = 30username = member4age = 40 출력값이 위와 같은데 .get()메소드로 꺼내는 걸로 보면 Map과 같은 자료구조인건가 싶기도 하면서, 통째로 출력하면 List<List<>>와 같은 자료구조의 모습이더라구요tuple은 어떤 자료구조인가요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
스토리지 데이터에 하나만 안지워 지네요
스토리지 데이터에 다른건 다 삭제 되는데 하나 남았을때 삭제가 안되네요 전체 삭제하든 더블클릭으로 삭제하든 삭제가 안되네요 추가적으로 전체삭제를 해도 데이터가 안지워 지네요 ㅠㅠ코드입니다.const todoInput = document.querySelector("#todo-input"); const todoList = document.querySelector("#todo-list"); //로컬스토리지에서 데이터 빼오기 const savedTodoList = JSON.parse(localStorage.getItem("saved-items")); const createTodo = function (storageData) { //할일 추가 함수 let todoContents = todoInput.value; if (storageData) { todoContents = storageData.contents; } const newLi = document.createElement("li"); const newSpan = document.createElement("span"); const newBtn = document.createElement("button"); //할일 완료 이벤트 newBtn.addEventListener("click", () => { newLi.classList.toggle("complete"); saveItemsFn(); }); //할일 삭제 이벤트 newLi.addEventListener("dblclick", () => { newLi.remove(); saveItemsFn(); }); if (storageData?.complete) { newLi.classList.add("complete"); } newSpan.textContent = todoContents; newLi.appendChild(newBtn); newLi.appendChild(newSpan); todoList.appendChild(newLi); todoInput.value = ""; saveItemsFn(); }; const keyCodeCheck = function () { //할일 추가 실행 함수 if (window.event.keyCode === 13 && todoInput.value !== "") { createTodo(); } }; const deleteAll = function () { //전체 삭제 함수 const liList = document.querySelectorAll("li"); for (let i = 0; i < liList.length; i++) { liList[i].remove(); } saveItemsFn(); }; const saveItemsFn = function () { //할일 저장 함수(네트워크 스토리지에) const saveItems = []; for (let i = 0; i < todoList.children.length; i++) { const todoObj = { contents: todoList.children[i].querySelector("span").textContent, complete: todoList.children[i].classList.contains("complete"), }; saveItems.push(todoObj); } saveItems.length === 0 ? localStorage.removeItem("saved-Items") : localStorage.setItem("saved-items", JSON.stringify(saveItems)); }; if (savedTodoList) { for (let i = 0; i < savedTodoList.length; i++) { createTodo(savedTodoList[i]); } }
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
안드로이드 스튜디오에서 에뮬레이터 2개 띄우기
강의에서 보면 안드로이드 스튜디오에서 가상 에뮬레이터를 2개 띄워서테스트 하던데 어떻게 2개 띄우는 건가요?저는 도저히 2개 동시에 띄우는 게 안되네요.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
실루엣 값을 기준으로 필터한 값을 target값으로 선정
안녕하세요. 교수님. 이번 강의를 보면서 실루엣 값과 각 군집의 평균값에 대개 배웠는데요. 이렇게 구해진 각 값들의 실루엣 계수들에 대해 어느정도 값을 기준으로 필터링하여 해당 클러스터된 각 데이터를 target 값으로 사용하여 다른 데이터의 회귀분석 예측모델을 사용하려는 생각을 조금 해보았는데 이런 진행 방식이 맞는걸까요?
-
해결됨실전! 스프링 데이터 JPA
@GeneratedValue 질문하고싶어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@GeneratedValue에서 지금은 autoincrement로숫자로 단순히 pk값이 1/2/3/4이런식으로 사용되고있는데MEMBER00001/MEMBER00002/MEMBER00003같이 PK값에 특정한 문자열이 앞에 들어가는경우는 어떻게하나요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
프로그램이 무거운거같아요
1 프로젝트가 무겁습니다 용량을 줄일수가 있나요 2 단순 테스트인데 프로젝트 하나 만들때마다 용량이 400메가씩인데 삭제도 안되요 허가를 받아야한다고 ㅜ
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
PCA 3개이상에서의 2차원 군집화시 의미
안녕하세요. 강의를 듣고있는 학생입니다.강의에서는 PCA1과 PCA2를 기반으로 2차원에서 군집분류를 하는데 PCA가 3이상이 있을 경우에 PCA2와 PCA3을 2차원으로 하여 시각화를 하는 건 의미가 있을까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
이미지 업로드 할때 한글이름 파일 500에러
안녕하세요 제로초님 이미지 업로드할때 한글이름으로 된 이미지를 업로드하면 화면에 보여지고 s3에도 업로드는 되는데 post할때는 500에러가 나네요 ㅠㅠ 백엔드에 encodeURIComponent하고 normalize("NFC") 까지 써봤는데 고쳐지지가 않아서 문의 남깁니다 ㅠㅠconst upload = multer({ storage: multerS3({ s3: new AWS.S3(), bucket: "react-sansbook-aws", key(req, file, cb) { cb( null, `original/${Date.now()}_${path.basename( encodeURIComponent(file.originalname) )}` ); }, }), limits: { fileSize: 20 * 1024 * 1024 }, // 20MB
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H 질문드립니다.
안녕하세요 선생님. 강의 항상 잘 보고 있습니다.Q1. 수빈이와 동생의 위치가 같을때는 고려하지 않아도 되나요?(답지를 보니까 그런 코드가 없어서 질문 드립니다.)만약 고려하지 않아도 된다고 한다면, 8-G(12851번 문제 - 숨바꼭질2) 에서는 왜 고려해야 했나요??(제가보기엔 같은 문제 같은데요..ㅎㅎ)Q2. 이 부분이 꼭 있어야 하나요? 만약 그렇다면 시간복잡도를 줄이기 위해 그렇게 하신건지 궁금합니다.
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
(영상 7:55) HAL_GPIO_ctrl shift 눌러도 단축키가 안나옵니다.
(영상 7:55) HAL_GPIO_ctrl shift 눌러도 단축키가 안나오는데... 우선 저는 아직 보드를 주문해놓고 아직 오진 않았습니다. 보드와 연결이 안되어 있어서 해당 단축키가 안먹는건지... 어떤 이유로 단축키가 먹지 않는건지 문의드립니다.