25강 "프로필 웹사이트" 앱을 구현하는 중에 "Limit reached" 코멘트와 함께 더이상 강의를 진행하지 못했네요. claude 실행후 plan 모드에서 "프로필 웹사이트" 앱 만들기를 처음 시도시, '배포' 단계(무려 7단계) 까지 언급되길래, 단계를 줄였습니다. 이후, 개발 환경 (npm 인스톨, 로컬 서버 실행...) 단계가 언급되고, SNS 코드 포함하여, 앱을 만드는 과정 등에서 html 코드를 무려 800줄 가까이 만들고, 파일을 분리하고 html 을 python 과 연계하는 코드까지 만들더니 limit 에 도달해서, "프로필 웹사이트" 앱을 완성하지 못했습니다. ㅠㅜ claude pro 구독해서 사용중입니다. 강의 과정의 앱 만들기는 사실 개념 이해 및 실습이 중요할거 같은데, "프로필 웹사이트 만들어줘:" 보다는 좀 더 구체적으로 프롬프트 입력을 통해 간단한 앱을 만들수 있도록 유도되면 좋겠습니다 ㅠㅜ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] FileInputStream의 transferTo를 사용할 경우 buffer는 어떻게 설정되는 건가요? 웹 검색을 해보니 개발자가 직접 버퍼를 설정할 필요가 없다고 하는데 기본적인 버퍼의 크기가 정해져 있는건지? 만약 정해져 있다면 어떤 기준을 따라가는지 궁금합니다. 파일처리 시 자바의 메모리를 사용해야하고 이 부분을 잘 처리하지 못할 경우 OOM으로 이어지는 경우가 많아서 정확히 이해하고 싶어서 문의드립니다.
todoPagingCP.tsx에서 Link로 페이지 동적으로 만들었는데 페이지 클릭때마다 const res = await fetch( `http://localhost:8080/api/todos/list?page=${page}` ); todo/list/page에 있는 이코드가 실행이 되는건가요?
문제에서 populations larger than 100000 <- 여기서 larger than 이 10만 보다 큰 그러니까 10만을 초과하는게 아니라 10만을 포함한 10만 이상되는 도시 출력하는게 맞는건가요?? 10만보다 큰 으로 해석해서 where절에서 where population > 100000 으로 썼었거든요
강의 막바지에 쿼리 로그를 한눈에 볼 수 있게하기 위한 라이브러리를 추가하고 실행하시는데요. 저는 pdf 내용대로 implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' 위 라이브러리를 추가하고 실행해보아도 쿼리 실행 로그가 보이지 않아요ㅠ
영상에서는 이제 junit5를 의존관계로 가져간다고 나와있고 build.gradle에 있는 exclude가 junit4버전에 대한걸 exclude한다고 하시는데요.. 그럼 강의가 junit5버전 쓰시는거 아닌가요? pdf는 강의 영상이 junit4 버전을 기준으로 하신다는데 이것 때문에 헷갈려요
pro 요금제, sonnet4.5를 사용해서 강의를 따라가다 보니 금방 session의 토큰 사용량이 가득 차는 부분이 불편해서 모델 비교 설명을 확인해봤습니다. 일상적인 개발에서는 sonnet4.5가 토큰 사용량이나 성능 측면에서 뛰어난 것 같더라구요. 아마 실무 개발에서 claude를 활용하게 된다면 sonnet을 사용할 것 같은데, haiku4.5가 sonnet보다 3배 저렴하고 속도도 빠르다고 하는 내용을 보니 pro 요금제로 강의를 들을 때는 haiku 모델이 더 적합하겠다는 생각이 들었습니다. 이것 저것 모두 써보려고 하는데, 강사님의 의견이 궁금합니다! (실무에서 모델별 성능이 체감될 만큼 차이가 큰지도 궁금합니다.)
위는 강의 pdf 파일에서 캡쳐한 build.gradle 설정 내용입니다. 아래는 제가 프로젝트 생성후 캡쳐한 build.gradle의 의존성 사진입니다. pdf 설명대로 JUnit4를 추가했습니다. 그런데 pdf 파일에 testImplementation(‘org.springframework.boot:spring-boot-starter-test’) { exclude group: ‘org.junit.vintage’, module: ‘junit-vintage-engine’ } 가 있던데 이것도 추가해줘야하는 부분인가요? 없으면 추후 강의를 진행하는데 문제가 될까요? 현재 pdf 파일에 있는 build.gradle 내용과 제가 방금 프로젝트 생성 후의 build.gradle 내용과 조금 다른 것 같아 질문드립니다
안녕하세요. 수업을 듣다가 알려주신 거랑 다르게 동작하는 것 같아 질문드립니다. 5.2 풀라우트 캐시2 스크립트 기준 10:09 "자, 이런 Fetch 메서드는 자동으로 No Store 옵션을 갖는다고 말씀을 드렸죠?" -> 그래서 예상한 결과값은 dynamic page를 예상했는데 static page로 나오는 것 같습니다 npm run build를 했을 때 cache 옵션을 안 준 경우 const response = await fetch(`${process.env.NEXT_PUBLIC_API_SERVER_URL}/book`) Route (app) Size First Load JS ┌ ○ / 288 B 106 kB 이렇게 static page로 나오고 cache 옵션 no-store로 준 경우 Route (app) Size First Load JS ┌ ƒ / 288 B 106 kB 이렇게 dynamic page로 나와서 next 공식 문서를 찾아보니 https://nextjs.org/docs/15/app/api-reference/functions/fetch auto no cache (default): Next.js fetches the resource from the remote server on every request in development, but will fetch once during next build because the route will be statically prerendered. If Dynamic APIs are detected on the route, Next.js will fetch the resource on every request. 이렇게 build 때는 static 이라고 해서 질문이 생겼습니다. 어떤 블로그에서는 또 브라우저마다 다르게 동작한다고 해서 헷갈립니다..! 답변 주시면 감사드리겠습니다.
http://localhost:8080/s_uuid_filename.webp으로 브라우저에서는 이미지가 잘 출력되는데, 개발환경에서 next.js 서버 실행하고 http://localhost:3000/product/catalog/1 로 접속하면 이미지가 안 보입니다. F12로 Network탭에서 이미지가 상태코드 400이 뜹니다. next.config.mjs 파일에 remotePatterns 설정 되었어요. next.jsx 터미널창에 로그는 아래와 같습니다. GET /product/catalog/1 200 in 1251ms (compile: 1206ms, render: 45ms) ⨯ upstream image http://localhost:8080/s_ uuid_filename9 .webp resolved to private ip ["::1","127.0.0.1"] ⨯ upstream image http://localhost:8080/s_ uuid_filename8 .webp resolved to private ip ["::1","127.0.0.1"] ⨯ upstream image http://localhost:8080/s_ uuid_filename 7.webp resolved to private ip ["::1","127.0.0.1"] ⨯ upstream image http://localhost:8080/s_ uuid_filename 6.webp resolved to private ip ["::1","127.0.0.1"] GPT에게 물어보니 /** @type {import('next').NextConfig} */ const nextConfig = { images: { unoptimized: true, // ← Next.js 이미지 최적화 끔 }, }; export default nextConfig; 최적화를 끄라고하는데, 이미지 최적화를 끄면 이미지는 나오지만 이미지 최적화 하면서 이미지가 나오게 할 수 있는 방법 있을까요? 현재 설치된 next.js 버전은 16.0.8입니다. 수업은 next.js 15버전인가요?
입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
안녕하세요, 윈도우 환경에서 작업중입니다. 다름이 아니라 Gradle을 IDEA로 변경하면 Build 시에 Error가 떠서 AI에게 물어보니 Gradle로 변경하라 하여 변경하니 되는데 이렇게 작업해도 상관 없는 부분일까요? 오류메세지: Kotlin: [Internal Error] java.lang.NoClassDefFoundError: org/jetbrains/kotlin/com/intellij/psi/PsiElement at org.jetbrains.kotlin.noarg.fir.KtErrorsNoArg.<clinit>(KtErrorsNoArg.kt:32) at org.jetbrains.kotlin.noarg.fir.FirNoArgExtensionRegistrar.configurePlugin(FirNoArgExtensionRegistrar.kt:15) at org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar.configuredExtensionFactories_delegate$lambda$0(FirExtensionRegistrar.kt:294) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86) at org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar.getConfiguredExtensionFactories(FirExtensionRegistrar.kt:291) at org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar.configure(FirExtensionRegistrar.kt:270) at org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory.createSharedLibrarySession(FirAbstractSessionFactory.kt:107) at org.jetbrains.kotlin.fir.session.FirJvmSessionFactory.createSharedLibrarySession(FirJvmSessionFactory.kt:53) at org.jetbrains.kotlin.cli.pipeline.jvm.JvmFrontendPipelinePhase.prepareJvmSessions$lambda$0(JvmFrontendPipelinePhase.kt:326) at org.jetbrains.kotlin.cli.common.SessionConstructionUtils.prepareSessions(FirSessionConstructionUtils.kt:324) at org.jetbrains.kotlin.cli.pipeline.jvm.JvmFrontendPipelinePhase.prepareJvmSessions(JvmFrontendPipelinePhase.kt:322) at org.jetbrains.kotlin.cli.pipeline.jvm.JvmFrontendPipelinePhase.executePhase(JvmFrontendPipelinePhase.kt:137) at org.jetbrains.kotlin.cli.pipeline.jvm.JvmFrontendPipelinePhase.executePhase(JvmFrontendPipelinePhase.kt:47) at org.jetbrains.kotlin.cli.pipeline.PipelinePhase.phaseBody(PipelinePhase.kt:68) at org.jetbrains.kotlin.cli.pipeline.PipelinePhase.phaseBody(PipelinePhase.kt:58) at org.jetbrains.kotlin.config.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:102) at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:22) at org.jetbrains.kotlin.config.phaser.CompilerPhaseKt.invokeToplevel(CompilerPhase.kt:53) at org.jetbrains.kotlin.cli.pipeline.AbstractCliPipeline.runPhasedPipeline(AbstractCliPipeline.kt:109) at org.jetbrains.kotlin.cli.pipeline.AbstractCliPipeline.execute(AbstractCliPipeline.kt:68) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecutePhased(K2JVMCompiler.kt:79) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecutePhased(K2JVMCompiler.kt:45) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:90) at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:352) at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1617) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360) at java.rmi/sun.rmi.transport.Transport$ 1.run (Transport.java:200) at java.rmi/sun.rmi.transport.Transport$ 1.run (Transport.java:197) at java.base/ java.security .AccessController.doPrivileged(AccessController.java:712) at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705) at java.base/ java.security .AccessController.doPrivileged(AccessController.java:399) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ ConnectionHandler.run (TCPTransport.java:704) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$ Worker.run (ThreadPoolExecutor.java:635) at java.base/ java.lang.Thread.run (Thread.java:840) Caused by: java.lang.ClassNotFoundException: org.jetbrains.kotlin.com .intellij.psi.PsiElement at java.base/ java.net .URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ... 42 more
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오) [질문 내용] 안녕하세요. 컬렉션 조회 최적화 부분에서 페이징 + 검색 조건 관련해서 궁금한 점이 있어서 질문드립니다. 질문) Order 리스트 페이징을 하고 싶은데@BatchSize는 안쓰고 5번처럼 QueryDto직접 쿼리 2번 + map O(0) 방식으로 처리하려고 합니다. 이 때 만약 검색 조건이 toMany 로 맺어진 테이블 (orderItem.quantity, orderItem.item.name 등) 에 있다면 toOne 방향 루트 join fetch 쿼리 할 때 이 조건을 함께 포함시켜면 되는걸까요 (join orderItem .. where .. 같이) 예를들어 item.name이 "tesla"인 item을 포함하고 있는 모든 order를 페이징 적용해서 보여주고 싶은 경우에 어떻게 하면 좋을지 궁금합니다.