airflow dags list를 하면 yfinance_to_snowflake_fullrefresh.py 에서 no module named helpers 에러가 떴습니다. pip3 install helpers 를 통해 설치를 했는데도, 동일한 에러가 발생하고 있습니다. (python은 homebrew 통해 설치했고, homebrew 설치 시에 패키지 전역 설치가 안된다는 문제가 있었는데, 이는 해결해서 helpers Install은 완료 했습니다.)
안녕하세요. 클라이언트 컴포넌트 안에, 서버 컴포넌트를 import 할 수 없다 라는 주의 사항에 대해 궁금한 점이 있습니다. Next.js 공식문서에는 아래와 같이 클라이언트 컴포넌트 안에 서버 컴포넌트를 직접 Import해 사용할 수 없다 고 나와 있는데요. 공식문서 강의에서 실습했을 때는, 클라이언트 컴포넌트 안에서 서버 컴포넌트가 사용되는 경우, 자동으로 클라이언트 컴포넌트로 바뀌는 것을 확인했습니다. 그렇다면, 서버 컴포넌트가 클라이언트로 바뀔 수 있는 경우는 해당 패턴을 사용해도 되는 건가요? 아래와 같이 서버 컴포넌트의 기능을 사용한다면, 에러는 나지 않지만 fetch 요청이 여러 번 되는 등, 정상적인 동작이 되지 않는 것을 확인했습니다. 이런 경우에 한해 지양하면 될까요? 결과적으로, 서버 컴포넌트가 클라이언트 컴포넌트로 바뀔 수 있는 경우, 제대로 동작하지만, 지양하자 는 것으로 이해하면 될까요? // 클라이언트 컴포넌트 "use client"; import ServerComponent from "@/components/server-component"; export default function ClientPage() { console.log("클라이언트"); return ( <div> <h1>클라이언트</h1> <ServerComponent /> </div> ); } // 서버 컴포넌트 export default async function ServerComponent() { const res = await fetch("https://jsonplaceholder.typicode.com/todos/1"); const value = await res.json(); console.log(value); return ( <h1>서버 컴포넌트</h1> ); } 감사합니다.
안녕하세요. 강의를 듣고 추가적으로 공부를 하려고 하는데 예를 들어 Q. 테슬라의 창업자는 누구야 A. 테슬라의 창업자는 OOO입니다. 이러한 대화 바로 다음 OOO에 관련한 추가 질문을 하려고합니다. 예시) Q. 그렇다면 그 사람에 대해서 간단하게 설명해줘. 위 질문을 하려면 LLM이 이전대화내용을 기억해야하는데 그것에 대해서 공부하려합니다. 키워드를 뭐라고 잡아야할까요?
원래 상태로 돌아오기까지 4n번의 횟수가 걸린다는 것은 이해를 했습니다. 그런데 제가 처음에 생각한 종료 조건은 둘 중 하나의 큐라도 비어있게 된다면 합을 같게 만들 수 없는 경우라 생각했습니다. 그런데 시간초과가 발생하네요. 하나의 큐가 원래 상태로 돌아가기 위해서는 그 과정에서 반드시 원소가 하나도 없는 경우가 생길것이라 생각했는데 아닌건가요?
안녕하세요! 다이나믹 페이지에서 데이터 패칭이 오래 걸리는 문제를 해결하기 위해, Next에서 임시로 로딩 UI를 보여주고, 추후 패칭이 완료되면 스트리밍으로 업데이트하는 것으로 이해했습니다. 로딩 UI는 데이터 패칭이 느릴 때 유용하지만, 패칭이 빠른 경우 오히려 깜빡거리는 느낌이 들어 사용자 경험 측면에서 안 좋을 수 있다고 느꼈습니다. 물론 제가 생각했을 때 가장 베스트는 API 속도를 측정하여 특정 시간 이상인 경우에 스트리밍 기술을 적용하고, 그 외에는 안하는 것이 좋다고 생각을 했지만, 측정하기도 힘들 뿐더러, 사용자 네트워크도 신경을 써야 하기 때문에 이러한 방법은 어렵다고 생각을 했습니다. 이러한 문제에서 강사님의 생각을 듣고 싶어 질문드리게 되었습니다.
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
계속해서 인터프리터를 찾지 못해서 루트 경로에 .vscode폴더를 만들고 settings.json파일을 생성후, { "python.defaultInterpreterPath": "${workspaceFolder}/ch02_env/bin/python" } 해당 코드를 넣어 강제로 인식하게 했는데, 인터프리터 인식이 되었습니다..
안녕하세요! 클라이언트 라우터 캐시 기능에 대해 궁금증이 있어서 질문합니다. 클라이언트 라우터 캐시에 공통적으로 쓰이고 변하지 않는? 레이아웃들을 캐싱한다고 이해했습니다. 제가 궁금한 것은 RSC Payload는 수시로 바뀔 수 있을 것 같아 라우터 캐시에 저장하기 어렵겠지만, JS Bundle은 클라이언트 컴포넌트들로 구성되어 있다면 변하지 않으므로 캐싱해도 되지 않을까 생각을 해봤습니다.
안녕하세요! 풀 라우트 캐시 이후 JS Bundle, RSC Payload도 불러오는지 궁금해서 질문해봅니다. Next Link를 통해 페이지를 교체할 때, Next 서버는 JS Bundle과 RSC Payload를 클라이언트로 전송하고, 클라이언트는 이를 적절히 결합하여 페이지를 렌더링하는 것으로 이해했습니다. 만약 초기 접속 시 풀 라우트 캐시되어 있는 static html를 불러온 이후, JS Bundle, RSC Payload도 불러오는지 궁금합니다. 그리고 초기 접속 시 다이나믹 페이지 또한 html을 불러온 이후, JS Bundle, RSC Payload도 불러오는지 궁금합니다. 제 생각은 불러올 것 같지만, 확실히 알면 좋을 것 같아서 질문드려봅니다.
안녕하세요! build할 때 계속해서 type 오류가 발생하여 질문 드립니다. 현재 page.tsx에는 아래와 같이 작성되어 있습니다. import BookItem from "@/components/book-item"; import { BookData } from "@/types"; export default async function Page({ searchParams, }: { searchParams: { q?: string; }; }) { const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/search?q=${searchParams.q}` ); if (!response.ok) { return <div>오류가 발생했습니다...</div>; } const books: BookData[] = await response.json(); return ( <div> {books.map((book) => ( <BookItem key={book.id} {...book} /> ))} </div> ); } 근데 여기서 build를 하면 아래와 같은 에러가 발생합니다. .next/types/app/(with-searchbar)/search/page.ts:34:29 Type error: Type 'Props' does not satisfy the constraint 'PageProps'. Types of property 'searchParams' are incompatible. Type 'Record<string, string | string[]> | undefined' is not assignable to type 'Promise<any> | undefined'. Type 'Record<string, string | string[]>' is missing the following properties from type 'Promise<any>': then, catch, finally, [Symbol.toStringTag] 32 | 33 | // Check the prop type of the entry function > 34 | checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>() | ^ 35 | 36 | // Check the arguments and return type of the generateMetadata function 37 | if ('generateMetadata' in entry) { Next.js build worker exited with code: 1 and signal: null 사실 gpt를 이용하여 받은 코드로 작성해보면 에러를 해결할 수는 있는데 이게 근본적인 해결 방법인지 잘 모르겠고, gpt가 작성한 코드가 잘 이해가 되지 않습니다. 우선 gpt에서 받은 답변은 아래와 같습니다. import BookItem from "@/components/book-item"; import { BookData } from "@/types"; export default async function Page({ searchParams }: any) { const qRaw = searchParams?.q; const q = Array.isArray(qRaw) ? qRaw[0] : qRaw ?? ""; const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/search?q=${encodeURIComponent(q)}` ); if (!response.ok) { return <div>오류가 발생했습니다...</div>; } const books: BookData[] = await response.json(); return ( <div> {books.map((book) => ( <BookItem key={book.id} {...book} /> ))} </div> ); } 이렇게 하면 해결은 되긴합니다. 다만 왜 해결이 되는 건지 이해가 잘 되지 않아서 그런데 왜 자꾸 build할 때 type 오류가 발생하는지 알려주시면 감사드리겠습니다!
안녕하세요 선생님. material까지 강의를 들으면서 두 가지 궁금한 점이 생겼습니다. 로컬 서버에서 ctrl+s 하면 자동으로 핫로딩되어 코드 변경사항이 화면에 반영되는 것으로 알고 있습니다. (리액트의 경우는 root부터 리렌더링) 그런데 핫로딩을 했을 때 바로 반영되는 코드가 있고, 직접 브라우저에서 새로고침해줘야 반영되는 코드가 있었습니다. <핫로딩 시 안변함 (only 새로고침으로만 변경사항 반영됨)> material wireframe 적용 camera fov, far 속성 그 외 등등 <핫로딩 시 변함> Geometry 종류 변경 transform 속성 변경 (position, scale, rotation) mesh color 변경 materal 종류 변경 그 외 등등 위와 같은 차이가 발생하는 이유를 잘 모르겠습니다. 내부 동작면에서 뭔가 다른게 있는 걸까요? (three.js 코드를 까보면 좀 명확해지려나요...) Mesh의 정의를 어떻게 내려야할지 잘 모르겠습니다. 아래 두 가지 중 어느 쪽이 더 맞는 설명일까요? Geometry와 material을 감싼 껍데기 Geometry와 material로 이루어진 하나의 물체 또, 종종 3D 모델링에서 정육면체, 삼각형 등을 오브젝트라고 부르는 걸 들은 적 있는 것 같은데, 해당 오브젝트라는 명칭이 맞는 명칭인가요? 그렇다면, Mesh = 오브젝트 라고 부를 수 있을까요? 감사합니다.
어디를 수정해야 할까요? 지금 계속 다시 해보고 있는데 해결이 되지 않습니다ㅠ 앞서 이렇게 했었는데 해결되지 않아 다시 해보고있습니다..! tailwind.config.js 의 content에 이렇게 입력하는게 맞나요?? index.css에 이렇게 오류가 떠서요 ㅠㅠ -> 우측하단 언어모드를 tailwindCSS로 바꾸면 밑줄은 사라지는데 npm start 실행시 이렇게 뜹니다..!