안녕하세요 ! 섹션 6. 페이지 캐싱 강의를 듣고 루트(/) 페이지를 static page 로 만들어 보기 위한 실습 과정에서 app/layout.tsx 파일 내부의 모든 도서를 패칭하는 fetch 함수의 option에는 아무 옵션도 설정하지 않고 (Next15 버전 기본값은 no-store ), 루트 페이지 내부의 동일한 데이터 패칭만 cache 옵션( force-cache )을 추가하여 데이터가 캐싱되도록 설정했습니다. 이러한 과정 후 npm run build 를 통해 빌드 하니 루트 페이지가 정적 페이지(static page)로 빌드 되었습니다. 정적 페이지가 되기 위해서는 동적 함수를 사용하지 않아야 하며, 데이터를 반드시 캐싱해야 되는데 동일한 url 로 데이터 패칭을 보냈을 때 서로 다른 옵션 을 사용하게 되면 request memoization으로 캐싱된 데이터 force-cache 로 설정된 데이터)를 우선적으로 사용해서 정적 페이지로 동작하는 건가요? 1번 과정에서 궁금한 점이 발생하여 이번에는 layout.tsx 페이지의 데이터 패칭 옵션을 강제로 cache : "no-store" 를 추가하여 빌드 를 진행했더니 빌드 가 정상적으로 완료되지 않고 오류가 발생하여 빌드가 완료되지 않는 문제가 발생했습니다. 동일한 url로 데이터 패치를 보낼 때 기본 값을 사용한 패치와 옵션을 추가한 패치가 있다면 옵션을 추가한 패치를 우선적으로 사용하고, 서로 다른 옵션은 추가할 수 없는건가요? (기존 build 파일인 .next 폴더를 제거하고 빌드하니 빌드가 성공적으로 동작했으며, 루트 페이지가 Dynamic page로 빌드되었네요.. 기존 빌드된 .next 폴더가 있을 때 2번 상황 처럼 동일한 fetch url에 옵션만 다르게 설정하여 빌드하니 오류가 발생한 이유를 모르겠네요..ㅎㅎ) dynamic page 에서 dynamic params 에 generateStaticParams 함수를 통해 params 값을 미리 전달하여 페이지를 만드는 경우, return 값으로 전달하지 않은 params 의 페이지를 사전 렌더링 할 때 page router의 getStaticPaths의 fallback 옵션 blocking 처럼 동작하는 건가요? 테스트 과정에서 발생한 문제들을 이해하고 싶은데 이해가 가지 않아서 질문 드립니다 ! app/layout.tsx import "./globals.css"; import Link from "next/link"; import style from "./layout.module.css"; import { BookData } from "@/types"; async function Footer() { const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book`, { cache: "no-store", } ); if (!response.ok) { return <footer>제작 @rekoding</footer>; } const books: BookData[] = await response.json(); return ( <footer> <div>제작 @rekoding</div> <div>총{books.length}권</div> </footer> ); } export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { return ( <html lang="en"> <body> <div className={style.container}> <header> <Link href={"/"}>📚 ONEBITE BOOKS</Link> </header> <main>{children}</main> <Footer /> </div> </body> </html> ); } (with-searchbar)/page.tsx import BookItem from "@/components/book-item"; import style from "./page.module.css"; import { BookData } from "@/types"; const AllBooks = async () => { try { const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book`, { cache: "force-cache", } ); if (!response.ok) { throw new Error(); } const allBooks: BookData[] = await response.json(); return allBooks.map((book) => <BookItem key={book.id} {...book} />); } catch (error) { console.error(error); return <div>예상치 않은 문제가 발생했습니다.</div>; } }; const RandomBooks = async () => { try { const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/random`, { next: { revalidate: 3 }, } ); if (!response.ok) { throw new Error(); } const randomBooks: BookData[] = await response.json(); return randomBooks.map((book) => <BookItem key={book.id} {...book} />); } catch (error) { console.error(error); return <div>예상치 않은 문제가 발생했습니다.</div>; } }; export default async function Home() { return ( <div className={style.container}> <section> <h3>지금 추천하는 도서</h3> <RandomBooks /> </section> <section> <h3>등록된 모든 도서</h3> <AllBooks /> </section> </div> ); }
어차피 지나간 시험이지만.. 여기저기 후기랑 카페를 둘러보니 논란이 많아서 물어볼수밖에 없네요.. 타겟값에 결측치를 0으로 제거했다고 되어있으면 결측치를 제거해야하는건가요.? 그냥 진행해도 무방한가요? 저는 원핫인코딩하고 렌덤포레스트만 해서 600대인가 500대 인가 기억은 잘 안나지만 딱 기본만 하고 제출했거든요... 딴짓님의 의견이 궁금합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 아 뭔생각이었는지 인코딩깜박하고 모델돌렸다가 오브젝트 컬럼 오류 뜨길래 그냥 드랍하고 모델돌렷는데 .. 이러면 아예 40점 다 날라가나요..? ㅠㅠ 2유형 빼고 나머지 4문제맞췄는데 이거때메 떨어져야하나요 ..
pd.DataFrame({"pred":pred}).to_csv("result.csv", index=False) 2유형 제출할때 마지막 csv 만드는 코드를 submit에 담지않고 저렇게만 해도 되나요?? pred=rf.predict(test) pd.DataFrame({"pred":pred}).to_csv("result.csv", index=False) 마지막 2줄을 이렇게만 작성해서 제출했습니다 read_csv로 파일 확인했을땐 test데이터와 size는 동일했습니다
시험문제에 'gas_totl(taeget)의 결측치는 0으로 대체했다' 라고 명시되어있는데 다들 뭐 삭제해야하니 평균 중앙값 처리해야하니 하는데.. 어떻게 생각하시나요.. 솔직히 isnull에도 안잡혀서 그냥 처리됐구나 하고 넘어갔는데 불안감 조성하니까 착잡하네요.. 작업형1-3빼곤다맞았는데.. 이전에도 타겟값에 결측치있거나 그런문제가 있었나요? 추가로 작업형2 질문이 있습니다만.. submit.to_csv('result.csv',index=False) 제출 print(test.shape, submit.shape) result = pd.read_csv('result.csv') print(test.shape, result.shape) 이렇게 했는데 제출 한후에 파일 불러와서 형식이랑 result랑 테스트쉐잎 확인했는데 제출한 후에 확인해도 상관없는걸까요?? 그리고 이렇게 해도 괜찮은지도 질문드립니다.
이슈였던 결측치(0) 전처리 작업없이 그대로 두고 가장 기본적으로 라벨인코딩 / 랜덤포레스트 적용했는데, 평가 점수가689 나오더라구요...!! 가장 기본적으로 해야되는 것들만 적용해서 나온 점수인데, 많은 분들 점수대는 400후반 ~ 500중반 미만으로 나왔다고 해서 조금 걱정이 듭니다ㅠ 간격에 대해서 기준은 없지만, 600후반으로 나와도 어느정도 점수는 받을 수 있을까요~~??! 선생님 덕분에 빅분기 시험에 대해서 포기하지 않고 끝까지 공부하여 시험까지 잘 마무리한 것 같습니다~! 여러 질문들에 대해서 빠르고 친절한 답변도 항상 감사했습니다!!^^
안녕하세요. 저는 현재 고농축 프론트엔드와 백엔드 강의를 모두 수강 중 인데요, 최근에 ‘완벽한 프론트엔드’ 강의가 새로 생긴 걸 알게 됐습니다. 이미 고농축 강의를 수강 중인데도, 완벽한 프론트엔드 강의도 수강하는 게 도움이 될까요? 그리고 ‘고농축 프론트엔드’와 ‘완벽한 프론트엔드’의 가장 큰 차이점 이 궁금합니다. 혹시 고농축 강의를 수강한 사람 입장에서 완벽한 프론트에서 꼭 들어야 하는 파트가 있다면 추천도 부탁드립니다! 그리고 혹시 ‘완벽한 프론트엔드’ 강의에 대해 쿠폰을 받을 수 있는지도 문의드립니다.
1유형 2유형 3유형 시험 복기는 없을까요 ? 1유형 1-1번 / 1-2번 40만 ? 43만 ? / 20만 1유형 2번 1유형 3번 2유형은 RMSE 530정도 나왔습니다. 근데 결측치 이야기가 있던데 isnull().sum() 했을 때 타겟 변수에 결측치가 없었는데, 결측치는 0으로 표시된다? 라는 내용이 있긴 했으나.. 별도 결측치 처리를 안 했는데 여러분은 어떻게 하셨나요? 그리고 3유형에 오즈비 구하는 문제에 값이 2 증가한다는 가정이 있었나요 ?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 타겟에 결측치가 있는 것에 대해 처리를 안하고 제출했는데 그러면 무조건 틀리나요..?ㅠ 점수는 잘 나왔습니다