묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
docker-compose 후 데이터 전송 시 에러에 대해서...
먼저 각 폴더의 경로입니다. 해당 코드는 몽고디비 경로입니다.야믈파일에서의 코드입니다. docker-compose up 을 하고 데이터를 전송 했을 때의 에러입니다.(바디 안에 phone의 값은 스크린샷으로 인해 지운 부분입니다.) docker-compse를 하지 않은 상태에서의 데이터 전송 메세지입니다.도커화 시키기 전에 바로 내 컴퓨터에서는 잘 전송이 되어지는데 docker-compose했을 때에 에러가 발생을 합니다.위에는 docker-compose up명령어를 작동 시켰을때 나오는 메세지들인데 해당 건에서는 에러메세지라고 보일 만한 것들을 찾지 못하였습니다.처음에는 몽고디비 경로를 잘못 설정 한 것 같아서 강의를 다시 보고 야믈파일에서 써주었던 database경로로 네임 리졸류션 하여 설정을 해주었는데 에러가 발생을 하여 질문을 남깁니다. ㅠ-ㅠ혹시 제가 놓친 부분이나 잘못된 부분이 있다면 가르쳐주신다면 감사드립니다 ㅠㅠ 에러를 해결해보기 위해 도전해본 방법은 3가지 였습니다.몽고디비 주소를 127.0.0.1:27017 에서 database:27017로 변경 후 도커빌드 -업기존에 실행되고 있던 몽고디비를 중지한 후 도커 컴포즈업 실행 도커 이미지 모두 삭제한 후 다시 빌드 업 실행 해결 방법을 아신다면 답변 부탁드립니다. 감사합니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
fiy.io로 진행할 때 APIURL설정에 관하여
fiy.io강의 진행 후vercel에 그맵마켓 웹 배포하기 강의 진행했는데화면에 데이터를 못받아 오고 있습니다.정말 죄송한데 원인을 잘 모르겠어요..어떤 부분을 어떻게 찾아봐야할까요.. fly.io에서 URL에 안들어가지는게 뭔가 이상한거같은데..안돌아가고 있다는 느낌이랄까요greb-market-server에서 fly deploy에러나는데 이거때문일까여?PS D:\VScode\grab-market-server> fly deploy==> Verifying app configValidating D:\VScode\grab-market-server\fly.tomlPlatform: machines✓ Configuration is valid--> Verified app config==> Building imageRemote builder fly-builder-blue-feather-4034 ready==> Creating build context--> Creating build context done==> Building image with Docker--> docker host: 20.10.12 linux x86_64[+] Building 23.1s (0/1)[+] Building 12.9s (12/14) => CACHED [internal] load remote build context 0.0s => CACHED copy /context / 0.0s => resolve image config for docker.io/docker/dockerfile:1 1.9s => CACHED docker-image://docker.io/docker/dockerfile:1@sha256:39b85bbfa7536a5feceb7372a0817649e 0.0s => [internal] load metadata for docker.io/library/node:16.17.1-slim 0.6s => [base 1/2] FROM docker.io/library/node:16.17.1-slim@sha256:1f6cbe8654b31c214225bddd12451b857 0.0s => CACHED [base 2/2] WORKDIR /app 0.0s => CACHED [build 1/6] RUN apt-get update -qq && apt-get install -y python pkg-config build- 0.0s => CACHED [build 2/6] COPY --link package.json package-lock.json ./ 0.0s => CACHED [build 3/6] RUN npm ci --include=dev 0.0s => CACHED [build 4/6] COPY --link . . 0.0s => ERROR [build 5/6] RUN npm run build 10.3s ------ > [build 5/6] RUN npm run build:#12 0.549#12 0.549 > grab-market-server@0.1.0 build#12 0.549 > react-scripts build#12 0.549#12 1.839 Creating an optimized production build...#12 10.22 Failed to compile.#12 10.22#12 10.22 ./src/App.js#12 10.22 Line 6: 'React' must be in scope when using JSX react/react-in-jsx-scope#12 10.22 Line 7: 'React' must be in scope when using JSX react/react-in-jsx-scope#12 10.22 Line 8: 'React' must be in scope when using JSX react/react-in-jsx-scope#12 10.22 Line 9: 'React' must be in scope when using JSX react/react-in-jsx-scope#12 10.22 Line 10: 'React' must be in scope when using JSX react/react-in-jsx-scope#12 10.22 Line 12: 'React' must be in scope when using JSX react/react-in-jsx-scope#12 10.22#12 10.22 Search for the keywords to learn more about each error.#12 10.22#12 10.22------Error: failed to fetch an image or build from source: error building: executor failed running [/bin/sh -c npm run build]: exit code: 1
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션 2, 1,2차원 탐색(봉우리)
선생님 안녕하세요 문제를 푸는 과정에서 궁금한 점이 생겨서 질문 드립니다.먼저 저는 문제에서 힌트를 얻어 기존의 배열의 테두리에 0을 추가해주고 풀었습니다.근데 arr.push / arr.unshift를 통하여 배열 상하단에 [0,0,0,0,0]으로 된 배열을 추가하고 난 뒤배열 안의 arr[i]의 배열에도 push, shift를 통해 0을 추가해줬습니다. 이 과정에서 동일하게 for문을 진행했는데추가해준 첫번째, 마지막 배열의 길만 9개가 되는데 왜 그런지 이유를 잘 모르겠습니다.다른 배열들은 push, unshift가 한번씩만 된 거 같은데, 추가해준 배열만 2번씩 된 거 같습니다. 이유가 무엇인지 알 수 있을까요?? 제가 잘못한 부분이 있는걸까요??<html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function solution(arr){ let answer = 0; let newArr = new Array(arr.length).fill(0); arr.push(newArr); arr.unshift(newArr); for(let i=0;i<arr.length;i++){ arr[i].push(0); arr[i].unshift(0); } for(let i=0;i<arr.length;i++){ for(let j=0;j<arr[i].length;j++){ let res = arr[i][j]; if(i !== 0 && i !== arr.length - 1 && j !== 0 && j !== arr[i].length - 1){ if(res > arr[i+1][j] && res > arr[i-1][j] && res > arr[i][j+1] && res > arr[i][j-1]){ answer += 1; } } } } console.log(arr) return answer; } let arr = [ [5,3,7,2,3], [3,7,1,6,1], [7,2,5,3,4], [4,3,6,4,1], [8,7,3,5,2] ] console.log(solution(arr)) </script> </body> </html>
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
section 10 수업과 관련해서 질문드립니다!
데이터 추가 후 서버를 종료하고 다시 실행시키면 사진처럼 id column이 사라져버립니다.이유를 모르겠습니다 ㅠ..
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Duplicate entry '' for key 'product.PRIMARY' 에러
graphql로 상품등록 하고 mysql를 끄고 다시 키면 Duplicate entry '' for key 'product.PRIMARY' 에러가 발생합니다. 그래서 mysql에 있는 데이터를 삭제하고 다시 mysql를 키면 정상적으로 작동을 합니다. 데이터를 수동으로 삭제를 안하고 작동을 어떻게 시킬수 있나요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. const input = `15 BACBACCACCBDEDE`.split('\n'); let arr = input[1].split(''); function solution(arr){ let studentMap = new Map(); let winner = ''; let maxNum = 0; for(let i = 0; i < arr.length; i++){ studentMap.set(arr[i], studentMap.get(arr[i]) +1 || 1); } let studentArr = [...studentMap] studentArr.forEach(arr => { if(arr[1] > maxNum){ maxNum = arr[1]; winner = arr[0]; } }) return winner; } console.log(solution(arr));
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. const input = `10 3 12 15 11 20 25 10 20 19 13 15`.split('\n'); let M = Number(input[0].split(' ')[1]); let arr = input[1].split(' ').map(str => Number(str)); function solution(arr){ let sumArr = []; let sum = 0; for(let i = 0; i < M; i++){ sum += arr[i]; } sumArr.push(sum); for(let j = M; j < arr.length; j++){ sum += arr[j]; sum -= arr[j-M]; sumArr.push(sum); } return Math.max(...sumArr); } console.log(solution(arr));
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이 코드도 괜찮을까요 ?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. const input = `5 5 1 3 1 2 3`.split("\n"); let M = Number(input[0].split(" ")[1]); let arr = input[1].split(" ").map((str) => Number(str)); function solution(arr) { let count = arr.filter((num) => num <= M).length; // 5 let p1 = 0; let p2 = 1; let sum = arr[p1] + arr[p2]; // 4 while (p1 !== p2) { if (sum < M) { count++; p2++; sum += arr[p2]; } else if (sum === M) { count++; sum -= arr[p1]; p1++; } else if (sum > M) { sum -= arr[p1]; p1++; } } return count; } console.log(solution(arr));
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이 코드도 괜찮을까요 ?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수업해주셨던 코드랑 다른건 없을까요 ? const input = `8 6 1 2 1 3 1 1 1 2`.split("\n"); let M = Number(input[0].split(" ")[1]); let arr = input[1].split(" ").map((str) => Number(str)); function solution(arr) { let p1 = 0; let p2 = 1; let sum = arr[p1] + arr[p2]; let count = 0; while (p2 < arr.length) { if (sum < M) { p2++; sum += arr[p2]; } else if (sum > M) { sum -= arr[p1]; p1++; } else if (sum === M) { sum -= arr[p1]; p1++; count++; } } return count; } console.log(solution(arr));
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
fly.io 로그인? 명령어 인식이 안돼요
현시점에서 명령어가 flyctl -> fly로 바뀐거같은데양쪽 명령어 둘다 안먹히네요. fiyio인스톨하고 vscode재기동해봤는데도 같아요+다른 명령어는 된거보면 환경변수문제는 아닌거같은데..아래와 같은 메세지가 뜨는데 잘 모르겠습니다.!PS D:\VScode\grab-market-server> fly auth loginfly : 'fly' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.위치 줄:1 문자:1+ fly auth login+ ~~~+ CategoryInfo : ObjectNotFound: (fly:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException 로컬에서 파워셀열어 실행하면 넘어가는데..
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
정렬을 꼭 해야하는 이유
정렬을 하고 안하고 정답이 다르게 나오는데 그 이유가 무엇인가요??완전 탐색이라 모든 경우를 탐색하는데 정렬을 해야하는 이유가 궁금합니다!!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
section 29 update 함수 어떻게 수정하면 될까요?
감이 안잡히는데 좀 도와주세요 ㅜㅜ힌트라도 주시면 감사하겠습니다.. async update({ productId, updateProductInput, }: IProductsServiceUpdate): Promise<Product> { const product = await this.findOne({ productId }); this.checkSoldout({ product }); const result = this.productsRepository.save({ ...product, // 수정 후 수정되지 않은 다른 결과값까지 모두 받고 싶을 때 사용 ...updateProductInput, }); return result; }
-
해결됨[코드캠프] 훈훈한 Javascript
contents : complete : 가 무슨뜻인가요?
constents:complete: 가 무슨 뜻인가요?const todoObj = { contents: todoList.children[i].querySelector("span").textContent, complete: todoList.children[i].classList.contains("complete"), };
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
section 29 예제 코드 오류
안녕하세요. section29까지 수강을 다 진행하였는데요.예제 코드 관련 오류가 있어 질문드립니다.예제코드가 데이터베이스 처음 만든 상태에서는 괜찮은데 데이터베이스에 데이터를 넣고 코드를 수정하면 아래와 같은 오류가 나옵니다.query failed: ALTER TABLE `product_saleslocation` ADD `id` varchar(36) NOT NULL PRIMARY KEY error: Error: Duplicate entry '' for key 'product_saleslocation.PRIMARY' query: ROLLBACK [Nest] 33022 - 05/21/2023, 12:47:43 PM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)... QueryFailedError: Duplicate entry '' for key 'product_saleslocation.PRIMARY'그리고 DBeaver로 확인하면 product_saleslocation의 기본키인 "id"가 자동으로 삭제되어 있습니다. product_saleslocation의 비정상적인 데이터를 삭제해도 다른 테이블의 기본키에서도 동일한 오류가 발생합니다. 코드를 단순히 주석만 삭제하고 저장해도 프로젝트가 재실행되고 나서 저런 오류가 발생합니다. 프로젝트가 재실행될 때마다 DB에 자동적으로 뭔가 데이터 수정 작업을 하는거 같은데 아무 요청도 안 했는데 DB에 수정이 일어나는 이유를 모르겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
puppeteer 라이브러리 사용 중에 질문 드립니다.
퍼펫티어 쪽 코드인데 미니프로젝트에서 요구한 30개 이상을 크롤링 하는 부분을 완성을 해서 추가적으로 전체 메뉴를 긁어오고 싶어서 위와 같이 코드를 추가했습니다.12번째 코드부터 15번째 코드까지가 총 데이터 길이를 구하는 코드인데해당 코드에서 console.log(cnt);콘솔로 cnt를 출력해보면위와 같이 숫자 10까지 밖에 출력이 안되어서 질문 드립니다. 퍼펫티어 docs에서도이렇게 설명이 되어있어서 해당 코드라면 스타벅스 내에 있는 모든 전체상품 이미지가 크롤링 되어야 될 거 같은데스타벅스 홈페이지에서 카피를 하면 nth-child 의 값은 10까지 밖에 찍히지 않고전체 메뉴가 크롤링 되는 것이 아닌 도중에 제주 말차 메뉴까지 밖에 크롤링이 되지 않는 것이 의문이라 질문 드립니다. 혹시 해당 코드에 문제가 무엇인지 조언을 부탁 드리고 싶습니다 ㅠㅠ 전체 코드는 아래와 같습니다.import puppeteer from "puppeteer"; import mongoose from "mongoose"; import { starbucks } from "../model/starbucksSchema.js"; export async function startCrawling() { const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); await page.setViewport({ width: 1920, height: 1080 }); await page.goto("https://www.starbucks.co.kr/menu/drink_list.do"); await page.waitForTimeout(2400); const cnt = await page.$$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd `, (data) => data.length ); console.log(cnt); for (let i = 1; i <= cnt; i++) { const second_cnt = await page.$$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd:nth-child(${i}) > ul > li`, (data) => data.length ); for (let j = 1; j <= second_cnt; j++) { const image = await page.$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd:nth-child(${i}) > ul > li:nth-child(${j}) > dl > dt > a > img`, (el) => el.src ); const name = await page.$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd:nth-child(${i}) > ul > li:nth-child(${j}) > dl > dd`, (el) => el.textContent ); console.log(`이름: ${name}, 이미지: ${image}`); const starbucks_db = await starbucks.updateOne( { name: name }, { img: image }, { upsert: true } ); } } await browser.close(); } startCrawling();
-
미해결3D리플릿 만들기 - 인터랙티브 웹 프로젝트
페이지를 클릭할 때 Uncaught TypeError: Cannot read properties of undefined (reading 'contains') 에러가 뜹니다.
에러를 보면 8번째와 30번째 줄이 문제라는 것 같은데 둘다 close button에 관련된것들이거든요.getTarget함수를 실행할 때 contains이전부분이 undefined가 나오는 것 같아서, e.target을 console로도 찍어 봤는데 저렇게 뻔히 나오고 있는데 왜 자꾸 오류가 뜨는지 모르겠습니다 ㅠㅠ선생님 코드랑 비교해 봤는데 완성된 코드니까 물론 차이는 있지만 저 부분은 다를 게 딱히 없어 보이거든요..대체 원인이 뭘까요? 작동은 되는데 자꾸 오류가 뜨니까 신경쓰여요
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
context.Provider에 관해서 질문 드립니다.
중첩으로 관리하는 이유에서 살짝 뇌정지가 와서 제가 이해한게 맞는지 여쭙니다.만약 value에 다 전달하게 되면 DiaryEditer와 DiaryList가 동시에 리렌더링 되지만바꾸면 data는 editor에 영향을 안주니까 editor와 List가 따로 리렌더링 일어나게 일어나게 된다는 말인가추가적으로 궁금한건 DiaryStateContext value에 다 넣으면 최적화가 풀린다고 했는데 DiaryItem은 memo를 하고 export 해서 모든 Item이 다시 리렌더링 되는걸 막았잖아요. 근데 그 최적화 마저 풀려버리나요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
새로운 배열 만들때 질문입니다
안녕하세요, 선생님1) m 변수에 바로 arr 정렬해서 넣어서 원래 값과 비교하면 왜 답이 안나오는 걸까요..? function sol(arr){let ans =[];let m = arr.sort((a,b)=>a-b);for(let i = 0; i < arr.length; i++){if(arr[i] !== m[i]) ans.push(i+1);}return ans;}let m = [120, 125, 152, 130, 135, 135, 143, 127, 160];console.log(sol(m)); 2) let m = arr; arr.sort((a,b)=>a-b); 이렇게 했을때도 답이 안나오는 이유는 무엇일까요?slice()로 복사해야하는 이유가 있나요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
18버전 업데이트 강의는 언제 업로드되나요?
리액트 16버전이라 강의 듣는데 헷갈립니다.... 최신 버전 이미지를 추가 해주시긴 하였으나, 기본 설명 자체가 16버전이라 혼란스럽고 불편합니다.당연히 최신 버전 강의인줄 알고 구매 하였는데, 이전 버전이 베이스로 된 강의면 제가 이 돈을 들여서 강의를 구매할 이유가 없다고 생각합니다.강의 업데이트 되는거 맞나요? 언제 업로드 되는건가요?
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
setData(() => [newItem, ...data])에 관한 질문입니다.
함수형 업데이트? 에서 setData(() => [newItem, ...data])를 하면변수 data 값이 setData()안에 들어있는 콜백함수가 들어가는 것인가요? 아니면 콜백함수가 실행된 값이 들어가는 것인가요?