안녕하세요. 강의 정말 재밌게 보고 있습니다. 딱 두 가지 몇번을 돌려봐도 궁금증이 풀리지 않아 문의드립니다. (* Page Router 를 사용하는 Next 14버전 기준) 1) ISR 질문 ISR은 기본적으로 SSR의 형태라고 생각 되는데(빌드 타임에 페이지를 생성해놓는것이..) 일정 시간을 두고 페이지를 재 생성 한다는 게 이해가 안 갑니다.. 이미 빌드를 마치고 서버에 배포를 했다고 가정하고(제가 원래 백엔드 개발자라..) 그 후에 페이지가 서버에서 재 생성되면 빌드가 다시 한번 이뤄지는건가요..? (빌드가 계속해서 이뤄질수는 없을텐데..) 아니면 처음에는 미리 생성 된 페이지를 전달해주고 이후로는 SSR 형태로 페이지가 생성되는걸까요? 데이터가 계속 최신으로 변경 되니 전체 페이지가 SSG일수는 없을거고(처음 요청에 응답한 페이지만 미리 생성된 페이지일텐데) 초기 SSG에 변경된 데이터만 SSR형식으로 만들어지는 건지.. 상식적으로 리빌드가 계속 될일은 없는데 페이지가 새로 생성이 된다고하니 빌드를 안 했는데 페이지가 생성될수 있나 싶고..제가 너무 틀에 갖혀서.. 2) 동적 페이지 + SSG 방식으로 렌더링하기 이것도 비슷한 결의 질문인 것 같은데요 fallback 옵션을 true로 했을 때 서버에서 필요한 작업을 마치면, 그 이후로는 캐싱이 되어서 없던 요청에 대한 페이지가 반쪽짜리 SSG에서 완전한 SSG로 작동하는건지 궁금합니다. 그리고 만약 캐싱이 되는게 맞다면 서버에서 캐싱이 되는걸까요? 추운 날씨에 감기조심하세요 감사합니다.
안녕하세요. 궁금한 게 있으면 언제든지 질문하라고 하셔서... 용감(?)하게 질문해 봅니다. 매번 강의 너무 잘 듣고 있습니다^^ 강의를 따라 듣다 보니까, Pyside6에서 필요한 모듈은 모두 import한 다음, 클래스를 만들며넛 ui 제작이 시작되더라고요. 그런데, 처음 클래스를 만들고 초기화 할 때, init()메서드 부분이 잘 이해가 되지 않습니다. 어느 경우에는 parent를 매개변수로 설정하고, 어느 경우에는 super()를 안 쓰고 그러는데, 그냥 따라서 코드만 작성하기에는 뭔까 찝찝한 느낌이라 확실히 알고 코드를 작성하고 싶습니다. 검색을 해도...? "클래스를 만들 때는 그냥 쓰는 거다"라는 의미로 훅 넘어가는데... 이 구문들의 의미와 필요성?이 잘 와닿지가 않아 여쭙니다. 아래 첨부한 코드는 section13에 3번째 강의 내용 중 발췌한 내용입니다. class PriceApp(QWidget): def __init__(self): super(PriceApp, self).__init__() self.ui = Ui_Widget() self.ui.setupUi(self) self.setWindowTitle("QDataSteam Example")
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
num1 = int(input()) num2 = int(input()) num3 = int(input()) if num1 > num2 : if num2 > num3 : print (num3) elif num2 < num3 : print(num2) else : print (num1) 저는 이렇게 코드를 작성했는데 영상에서 제시해주신 코드와 제 코드 중 어떤 게 더 효율적이라고 볼 수 있을까요?
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 3-4 2. 어려움을 겪는 부분 병합 정렬 구현해볼 때 두 배열의 비교하는 값이 같은 경우에서의 처리가 안되어 있는 것 같습니다. 3. 시도해보신 내용 while first_array_index < len(array1) and second_array_index < len(array2): if array1[first_array_index] < array2[second_array_index]: result_array.append(array1[first_array_index]) first_array_index += 1 elif array1[first_array_index] > array2[second_array_index]: result_array.append(array2[second_array_index]) second_array_index += 1 else: result_array.append(array1[first_array_index]) result_array.append(array2[second_array_index]) first_array_index += 1 second_array_index += 1 동일한 값을 비교할 경우 두 값을 모두 result 배열에 넣어줘야 하니까 else의 코드도 있어야 하지 않을까 생각이 들어 글 남깁니다! 좋은 강의 감사드립니다!
안녕하세요, 아래와 같은 방식으로 dynamic import 적용하려는데 SEO에 부정적인 영향이 가는지 궁금해서 질문드립니다. 조금 찾아보니 Dynamic Import로 모두 제외해 버렸기 때문에 Google Bot 등의 크롤러가 웹 페이지에 방문했을 때 접속한 document 페이지에 크롤링할만한 정보가 없게 될 것이라는 이야기가 있어서 사실인지 궁금합니다. 사실이라면 dynamic import의 해당 단점을 보완할 수 있는 방법으로 ssr:true 설정 이외에 무엇이 있는지 궁금합니다 import dynamic from "next/dynamic"; const Zerocho = dynamic(() => import("features/Zero/components/templates/Zerocho"), { ssr: false }); export default function Hi() { const seo = getPageSeo("hihi"); return ( <> <NextSeo {...seo} /> <SchemaScript schema={schema} /> <Head> <meta name="hello" content={seo.hh} /> </Head> <Title>{seo.title}</Title> <Body> <Zerocho /> </Body> </> ); } export const getServerSideProps = async (context) => { return { props: { mode: true, modeCont: false, ...(await serverSideTranslations(context.gggg, ["hihi", "dodo"])), }, }; };
if(타이머 === "아직실행안함") 상태에서 스크롤퍼센트가 >= 0.7 이면 타이머 값을 다른 값으로 변경해주어야 타이머 = setTimeout(()=>{타이머="아직실행안함"},1000) 이 코드로 스로틀링 되는게 아닌가요? 영상에서는 타이머 값을 다른 값으로 변경해주지 않는데 이러면 타이머 = setTimeout(()=>{타이머="아직실행안함"},1000) 이 코드를 추가하기 전과 같지 않나요?
딕셔너리 키 값에 한글이나 영어로 값을 입력할때 띄어쓰기를 언더바로 표시 안해도 공백으로 해도 정상적으로 값이 입력이 되는데 꼭 언더바로 하는 이유가 있을까요? 그리고 변수 값을 지정할때 강의에서 my_dict인 부분에서는 Eh 파이썬이 띄어쓰기 공백을 인식을 못하더라구요 그래서꼭 _를 표시해줘야 에러를 안띄우던데 둘 차이가 뭔가요?
제가 자바로 공부중이라 파이썬이 알고리즘 풀이에 좋은 건 알지만 코드 공부하는 겸 자바로 풀고 있습니다. 그런데 자바는 배열은 선언하고 -1일 때는 따로 초기화를 해줘야되는 번거로움이 있습니다. 그래서 혹시 이차원 배열 (boolean형)으로 방문했는지 체크해서 문제를 풀 수 있는 방법이 있을까해서 질문드립니다.
안녕하세요, 비슷한 유형의 질문이 이미 있어 저도 글을 남겨봅니다. 미리 구매해둔 후 이제 듣기 시작하려 하니, 새로운 교육과정으로 리뉴얼 되었다고 하는데, 시기를 놓쳐 쿠폰 혜택을 받지 못했습니다. 해당 강의에 기대를 많이 하고 있었는데, 리뉴얼된 버전으로 듣지 못한다는 사실이 안타까워 혹시 쿠폰을 받을 다른 방법이 없을지 문의드립니다. 감사합니다.
강사님 안녕하세요, 백엔드 서버 연결하고 게시물(PostForm.tsx) 올리는 부분에서 오류가 발생하여 질문드립니다. (섹션5 - 게시글 업로드 완성) hydration 이슈를 찾아봤는데 ( https://velog.io/@jhplus13/NextJS-React-Hydration-Error-%ED%95%B4%EA%B2%B0%EA%B8%B0 ) typeof window 과 관련있는거 같은데 혼자 해결하기 어려워 링크 첨부드립니다..! 오류해결을 위해 (hydration / PostRecommends.tsx) 해당 부분을 수정하였습니다..! 변수입력확인( Date.now(), Math.random(), new Date() ) + faker 해당부분은 주석처리 했습니다. 태그 중첩 확인, layout.tsx font 연결 확인 [콘솔 에러] intercept-console-error.js:56 A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used: - A server/client branch `if (typeof window !== 'undefined')`. - Variable input such as `Date.now()` or `Math.random()` which changes each time it's called. - Date formatting in a user's locale which doesn't match the server. - External changing data without sending a snapshot of it along with the HTML. - Invalid HTML tag nesting. It can also happen if the client has a browser extension installed which messes with the HTML before React loaded. https://react.dev/link/hydration-mismatch ... <HotReload assetPrefix=""> <ReactDevOverlay state={{nextId:1, ...}} dispatcher={{...}}> <DevRootNotFoundBoundary> <NotFoundBoundary notFound={<NotAllowedRootNotFoundError>}> <NotFoundErrorBoundary pathname="/home" notFound={<NotAllowedRootNotFoundError>} notFoundStyles={undefined} ...> <RedirectBoundary> <RedirectErrorBoundary router={{...}}> <Head> <link> <RootLayout> <html lang="ko" className="__variable..."> <body className="__className_fde3a9" - cz-shortcut-listen="true" > ... ... [Fragment key값 오류내용] // package.json { "name": "zcom", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint" }, "dependencies": { "@auth/core": "^0.27.0", "@fortawesome/fontawesome-svg-core": "^6.7.1", "@fortawesome/free-solid-svg-icons": "^6.7.1", "@fortawesome/react-fontawesome": "^0.2.2", "@tanstack/react-query": "^5.62.11", "@vanilla-extract/css": "^1.16.1", "@vanilla-extract/recipes": "^0.5.5", "@vanilla-extract/sprinkles": "^1.6.3", "classnames": "^2.5.1", "clsx": "^2.1.1", "dayjs": "^1.11.13", "next": "^15.0.4", "next-auth": "^5.0.0-beta.25", "react": "^19.0.0", "react-dom": "^19.0.0", "react-intersection-observer": "^9.14.1", "react-textarea-autosize": "^8.5.6", "zustand": "^5.0.2" }, "devDependencies": { "@faker-js/faker": "^9.3.0", "@tanstack/react-query-devtools": "^5.62.11", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "@vanilla-extract/next-plugin": "^2.4.7", "@vanilla-extract/webpack-plugin": "^2.3.15", "msw": "^2.6.8", "typescript": "^5" }, "msw": { "workerDirectory": [ "public" ] } }
강의 다시 듣고 해도 여전히 관리자로 실행이 안됩니다. 구글에서 vscode 검색 후 클릭하면 아래 화면이 뜨고 2, 다운로드forwindows 누르면 자동으로 다운이 됩니다. 해당 아이콘 우클릭하여 관리자모드로 실행이라고 누르면 팝업창이 뜹니다. 무슨 문제인지 강의대로 했는데도 안되는데, 앞으로 수업듣고 프로그램 사용할 때 관리자로 해야 한다고 말씀하셔서 다시 문의합니다. 세번째 삭제하고 다시 설치하고 있는데도 동일한 문제가 발생하는데, 재질문 없이 문제 해결하고 싶어서 모든 단계마다 캡쳐해서 보내드리오니 다시 답변해주시면 감사하겠습니다. 이 문제가 해결이 안되어 강의 진도가 못나가고 있습니다....