연결이 안되네요. 오류 메세지를 올릴게요. MongooseError: The uri parameter to openUri() must be a string, got "undefined". Make sure the first parameter to mongoose.connect() or mongoose.createConnection() is a string. at NativeConnection.createClient (D:\inflearn\boiler-plate\node_modules\mongoose\lib\drivers\node-mongodb-native\connection.js:225:11) at NativeConnection.openUri (D:\inflearn\boiler-plate\node_modules\mongoose\lib\connection.js:835:34) at connect (D:\inflearn\boiler-plate\node_modules\mongoose\lib\mongoose.js:447:15) at file:///D:/inflearn/boiler-plate/index.js:19:1 at ModuleJob.run (node:internal/modules/esm/module_job:268:25) at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:543:26) at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:116:5)Example app listening on port 5000 node:internal/modules/esm/resolve:257 throw new ERR_MODULE_NOT_FOUND( ^ Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'D:\inflearn\boiler-plate\config\dev' imported from D:\inflearn\boiler-plate\config\key.js at finalizeResolution (node:internal/modules/esm/resolve:257:11) at moduleResolve (node:internal/modules/esm/resolve:913:10) at defaultResolve (node:internal/modules/esm/resolve:1037:11) at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:650:12) at #cachedDefaultResolve (node:internal/modules/esm/loader:599:25) at ModuleLoader.resolve (node:internal/modules/esm/loader:582:38) at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:241:38) at onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:542:36) at TracingChannel.tracePromise (node:diagnostics_channel:337:14) at ModuleLoader.import (node:internal/modules/esm/loader:541:21) { code: 'ERR_MODULE_NOT_FOUND', url: ' file:///D:/inflearn/boiler-plate/config/dev ' } Node.js v22.11.0 at moduleResolve (node:internal/modules/esm/resolve:913:10) at defaultResolve (node:internal/modules/esm/resolve:1037:11) at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:650:12) at #cachedDefaultResolve (node:internal/modules/esm/loader:599:25) at ModuleLoader.resolve (node:internal/modules/esm/loader:582:38) at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:241:38) at onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:542:36) at TracingChannel.tracePromise (node:diagnostics_channel:337:14) at ModuleLoader.import (node:internal/modules/esm/loader:541:21) { code: 'ERR_MODULE_NOT_FOUND', url: ' file:///D:/inflearn/boiler-plate/config/dev ' } Node.js v22.11.0 code: 'ERR_MODULE_NOT_FOUND', url: ' file:///D:/inflearn/boiler-plate/config/dev ' }
섹션 5 4.2 첫 React App 생성하기 - 3분 3초 npm create vite@latest 입력 시 아래와 같은 에러가 납니다. 예전에 vue 프로젝트를 만들 때도 똑같은 에러가 났는데 구글에 검색하고 생성형 AI에 물어봐도 해결이 안 돼서 질문 드립니다,, 에러 코드: $ npm create vite@latest > npx > create-vite npm error code 3221225477 npm error path C:\Onebite_React npm error command failed npm error command C:\WINDOWS\system32\cmd.exe /d /s /c create-vite npm error A complete log of this run can be found in: C:\Users\조현희\AppData\Local\npm-cache\_logs\2024-12-20T17_22_12_873Z-debug-0.log /c/Program Files/nodejs/npm: line 65: 1280 Segmentation fault "$NODE_EXE" "$NPM_CLI_JS" "$@"
안녕하세요 정환님. 우선 좋은 강의 감사드려요! 첫 프론트엔드 입문임에도 즐겁게 따라가고 있습니다. useEffect를 설명하는 과정에서 setCount가 비동기 방식이니 count 변수에 바로 반영이 되지 않는다는 말씀을 듣고 궁금증이 생겨서 질문드립니다. (구글링을 시도해 봤으나 키워드 자체가 익숙하지 않아 정보를 찾기 힘들었습니다 ㅎㅎ;;) const onClickButton = (incrementValue) => { const updatedCount = count + incrementValue; setCount(updatedCount); console.log(updatedCount); }; 위 코드와 같이 count를 더한 값을 미리 계산한 뒤, 그 값으로 setCount 및 console.log()를 찍어보면 업데이트시마다 값이 정확히 출력되는 것을 확인했습니다. 현재는 App 컴포넌트에서 count 변수의 값을 조작하는 곳이 버튼 한 곳 (해당 이벤트 리스너) 밖에 없기에 크게 문제될 여지는 없다고 느껴집니다. 즉, 해당 경우에서는 단순 로그만 찍고 있는데, 이 경우라면 useEffect보다 해당 이벤트 리스너에 코드 한 줄 추가하는 것 이 더 간단하다는 생각이 들었습니다! 결과적으로, 관리 포인트가 한 곳인 위 케이스에서 마저도 useEffect를 사용하는 것이 좋은 방법인지 여쭤보고 싶습니다! 배속으로 들어도 소리도 참 잘 들리는.. 너무 깔끔한 강의 감사합니다! 따뜻한 연말 보내세요 🙇
윈도우 해결법은 있는데, Mac 해결법은 없는 것 같아서 공유 합니다. 터미널에 아래 명령어 입력하시구, mkdir ~/.npm-global export NPM_CONFIG_PREFIX=~/.npm-global export PATH=$PATH:~/.npm-global/bin echo -e "export NPM_CONFIG_PREFIX=~/.npm-global\nexport PATH=$PATH:~/.npm-global/bin" >> ~/.bashrc npm install -g vercel 입력하시면 정상 설치됩니다~!
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요?: 1-5 알고리즘과 친해지기 (2) 어떤 알고리즘을 학습하고 계신가요?: 최빈값 찾기(알파벳) 여기까지 이해하신 내용은 무엇인가요?: 'a' -> ord('a') -> 97 -> chr(97) -> 'a' 이고, 'A' -> ord('A') -> 65 -> chr(65) -> 'A' 이다. 아스키 코드를 활용하고, 가장 기본이 되는 원리는 이렇다. 0이 26개인 배열(a_o_a)을 만들고, 주어진 문자열(string)을 반복문으로 순회한다. (for char in string: ... ) ord('a') - ord('a') = 0 이고, ord('b') - ord('a') = 1 이고, ... 이 원리에 따라 ord(char) - ord('a') 를 하면, char가 몇 번째 순서의 알파벳인지 구할 수 있다. 이를 0이 26개인 배열(a_o_a)의 인덱스(i)로 활용한다. string을 반복문으로 순회하면서, (만약 숫자나 띄어쓰기가 아니고 알파벳이라면) a_o_a[i] += 1 을 한다. a_o_a 에 각 알파벳의 빈도수가 저장이 된다. a_o_a를 반복문으로 순회하면서, max_alphabet_index를 구한다. chr(max_alphabet_index + ord('a')) 을 하면 최종적으로 최다 빈도수인 알파벳이 구해진다. 2. 어려움을 겪는 부분 저는 string.count(char)를 이용하여 풀었습니다. 그런데 이 아스키 코드 원리를 활용한 알고리즘이 많이 출제되나요? 코테 출제하시는 분들께서 아스키 코드를 활용한 로직을 더 선호하시는지 궁금합니다!
파이썬 decimal() 함수를 모르는 상태에서 if i == '0' or i == '1' or i == '2' or i == '3' or i == '4' or i == '5' or i == '6' or i == '7' or i == '8' or i == '9': tmp+=i int(tmp) 이렇게 코드를 짰다고 했을때 ValueError: invalid literal for int() with base 10: 오류가 뜹니다.. 숫자만 골라서 int 형변환 했는데 왜 오류가 뜰까요..?
안녕하세요 강사님 강의 잘 보고 있습니다 다름이 아니라 특정 조건에서 task가 실행되지 않아 해결방법을 묻고자 글을 남깁니다. task가 실행되지 않고 발생하는 log *** Could not read served logs: Invalid URL 'http://:8793/log/dag_id=dags_get_data_python_operator/run_id=manual__2024-12-20T09:11:57.447383+00:00/task_id=refine_data_/attempt=1.log': No host supplied branch에 따른 dag에 작성한 taskflow는 다음과 같습니다 get_data_ >> check_dir_ >> get_yesterday_data_ >> refine_data_ >> delete_data get_data_ >> check_dir_ >> refine_data_ >> delete_data batch 당일 데이터와 전날 데이터를 이용해서 spark를 이용해 정제하는 작업인데, 전날 데이터가 수집되어있지 않다면 수집하고나서 sparksubmit을 하도록 task를 구성했습니다. 전날 데이터가 없는 상태로 dag를 실행하면 전체task가 잘 실행이되고 전날데이터가 존재한다면 원하는 task 까지 skipped이 되고 해당 log가 나오네요 ㅠㅠ task 플로우를 잘못 작성한 이유일까요 ? 추가) BranchPython task에 찍힌 log 입니다.
Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)
강의를 듣다가 궁금한 점이 생겨서 질문드립니다. 브라우저에서 실행되는 코드에서는 브라우저 클라이언트를 사용하고, 서버에서 실행되는 코드에서는 서버 클라이언트를 사용합니다. - [ Creating a Supabase client for SSR ]( https://supabase.com/docs/guides/auth/server-side/creating-a-client?queryGroups=framework&framework=nextjs&queryGroups=environment&environment=client#create-a-client ) @supabase/ssr 라이브러리를 사용해서 2가지 유형의 클라이언트를 생성합니다. 클라이언트 컴포넌트 클라이언트(createBrowerClient) - 브라우저에서 실행되는 클라이언트 컴포넌트에서 Supabase에 접근 서버 컴포넌트 클라이언트(createServerClient) - 서버에서만 실행되는 서버 컴포넌트, 서버 액션 및 라우트 핸들러에서 Supabase에 접근 서버 컴포넌트로 동작하는 page 컴포넌트에서 각 클라이언트를 사용해 번갈아 API 호출을 해봤는데 동일하게 작동하는 것 같았습니다. 서버 컴포넌트에서 Supabase의 클라이언트/서버 클라이언트가 동작하는 방식의 차이가 있는지, 렌더링 방식에 차이가 있는지 궁금합니다. 서버와 클라이언트 개념과 렌더링 방식(SSR, CSR)이 자꾸 혼동되어 헷갈리네요.. import { getTodos as getTodosClient } from '@/apis/todos'; import { getTodos as getTodosServer } from '@/actions/todos'; export default async function page() { const todos = await getTodos...(); } // todos.ts import { createBrowserSideClient } from "@/lib/client/supabase"; export const getTodos = async() => { const supabase = await createBrowserSideClient(); const result = await supabase.from("todos").select("*"); return result.data; } // todos.action.ts import { createServerSideClient } from "@/lib/server/supabase"; export const getTodos = async() => { const supabase = await createServerSideClient(); const result = await supabase.from("todos").select("*"); return result.data; }
안녕하세요! 이번 강의 4분 10초에 나오는 state 값 content를 사용자에게 값을 입력받는 input의 value로 아래 코드와 같이 작성해주시는 이유는 무엇일까요?? value는 어떤 용도로 사용되며 content를 넣어주면서 어떤 변화가 생기는건지 이해가 잘 안되어서 질문드립니다! <input value={content} placeholder="새로운 Todo..." />
현재 useMemo에 대한 강의를 보고 있습니다. 강의를 볼 땐 어느 부분의 코드가 계속 렌더링이 되기 때문에 불필요한 부분이라 최적화를 해주기 위해 useMemo를 사용한다라고 이해는 하지만 막상 혼자 어떤걸 만들어볼땐 어느 부분의 코드가 계속 렌더링이 되고 불필요한 코드인지 몰라 useMemo를 이용하기가 많이 어렵더라구요. 어떻게 하면 쉽게 이해해서 혼자 코드를 작성할 때 잘 이용할 수 있는지 궁금합니다 ^^
04 : 08 안녕하세요. C언어로 입력받고 출력하기 문제 - 1 에서 교재의 문제 하단 답에 왜 printf("두 숫자를 입력하세요: ") 이후의 출력이 두 숫자를 입력하세요: 5 10 5 + 10 = 15 (이하 생략) 로 출력되는지 궁금합니다. printf("두 숫자를 입력하세요: ") 의 경우 개행 문자가 없기 때문에 두 숫자를 입력하세요: 5 105 + 10 = 15 이런식으로 붙어서 출력되어야 하는게 아닌가요? 기초적인 질문입니다만, 답변 부탁드립니다. 감사합니다.
안녕하세요. FastAPI로 개발을 하는 중, 로그 저장에 대해서 생각하는 시간을 좀 가져봤습니다. 저는 요청, 응답, 쿼리 이렇게 3가지로 나누어서 일자별로 각각의 파일에 저장을 하려고 하는데요. 혹시 FastAPI에서 자체적으로 지원하는 기능중에 이렇게 로그를 나누어 저장하는 기능이 있을까요? 감사합니다.
글 수정기능을 추가하고 useReducer로 바꿔서 했는데 글을 추가해도 새로운 내용이 나타나지 않고, 마지막 요소가 다시 추가되었습니다. [{content:"To1"}, {content:"To1"}] 확인해보니 컴포넌트에서 받은 props를 useState초기화값으로 넣으면 바뀌지 않는 사실을 알게되었습니다. 하지만 이부분을 useEffect형식으로 바꿔 적어주니 새로운 내용으로 바뀌는 것을 확인했습니다. // props content를 useState 초기화값으로 적용 const TodoItem = ({ content, id, isDone, date, onUpdate, onDelete }) => { const [upContent, setUpcontent] = useState(content); ... } //////////////////////////////////////////// // useEffect 적용 const TodoItem = ({ content, id, isDone, date, onUpdate, onDelete }) => { const [upContent, setUpcontent] = useState(""); useEffect(() => { if (content) { setUpcontent(content); } }, [content]); ... } useReducer를 적용하지 않을때 props를 useState초기화값을 넣어도 잘 구동되었습니다. // props content를 useState 초기화값으로 적용 const TodoItem = ({ content, id, isDone, date, onUpdate, onDelete }) => { const [upContent, setUpcontent] = useState(content); ... } 이것이 리액트 라이프 사이클 때문에 이러한 현상이 발생한것인가요?
학습 중에 fastapi는 get과 post만 지원하기 때문에 별도로 미들웨어를 이용해 put, patch, delete를 구현해야 한다고 이해를 하게 되었습니다. 헌데 다른 학습 웹 문서나, gpt에게 여러 요청을 통해 확인을 하는 과정에서 app. 혹은 @router. 을 사용해 이미 지원되는 put, patch, delete를 사용할 수 있다고 설명을 하는 것을 확인할 수 있었습니다. 제가 학습 영상에 대해 이해를 잘못하고 있는 것인지 혹 놓친게 있는지 알고 싶어 질문을 드립니다.