학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이렇게 설정하고 연결을 눌러도 연결이 되지 않는 이유를 모르겠습니다.! 이런 오류가 뜨네요. ㅠ 윈도우 사용자입니다! 그리고 실행 자체를 cmd에서 명령어 입력 말고 설치하니 생긴 이 파일로 실행을 해도되는건가요?
[질문 내용] 스프링 부트와 JPA 활용 1편에서 제가 작성한 코드에서는 POST: http://localhost:8080/api/v1/members 해당 API가 잘 작동하는데 스프링 부트와 JPA 활용 2편에서 제공하신 강의 소스에서는 작동이 안되어서 문의드립니다. 해당 사진처럼 오류가 발생(상태코드 500) 아래 링크에 있는 내용대로 패키지 이름 변경은 다 했습니다. (javax -> jakarta) https://docs.google.com/document/d/1j0jcJ9EoXMGzwAA2H0b9TOvRtpwlxI5Dtn3sRtuXQas/edit?tab=t.0#heading=h.vfy9wirpglmx
eslint 설치할 때 3개 중에 마지막 3번째 선택지가 없어서 수업질문 참고해서 yarn add eslint@8.0.1 설치를 하였습니다. 그다음에 npx eslint --init를 했는데 마지막에 강사님화면에서는 Would you like to install them now? · No / Yes 이렇게 되어있고 여기서 yes하면 Which package manager do you want to use? npm yarn pnpm 이런식으로 뜨는데 저는 Would you like to install them now with npm? · No / Yes 이렇게 바로 떠서 yes를 누르면 바로 설치가 됩니다.(no 눌려도 그냥 설치돼요) 근데 설치하고 나면 이런 사진과 같은 오류가 떠요 안되는 경우 방법으로 1. yarn.lock, node_modules, .eslintrc.js 파일을 지워주시고, 2. 다시 한 번 위의 순서로 eslint를 설치해 주세요! 이것도 다 따라했는데 계속 똑같아요 지피티한테 물어보니까 주요 경고 및 문제: package-lock.json 감지 경고 프로젝트에 yarn.lock 과 package-lock.json 이 동시에 존재합니다. Yarn과 npm을 섞어 사용하면 의존성 문제나 충돌이 발생할 수 있으므로, 하나의 패키지 매니저만 사용하는 것이 좋습니다. 해결책: package-lock.json 파일을 삭제하고 Yarn을 계속 사용하거나, 반대로 Yarn을 포기하고 npm을 사용하세요. 의존성 경고 ( peer dependency 불일치) 예를 들어, @typescript-eslint/eslint-plugin 이 eslint 버전 8.57.0 이상을 요구하지만 현재 설치된 버전은 8.0.1입니다. 해결책: 경고를 무시하지 않고, 요구 사항에 맞는 최신 버전을 설치하세요 yarn add eslint@^8.57.0 eslint@8.0.1 버전 경고 설치된 eslint 버전 8.0.1은 더 이상 지원되지 않는 버전입니다. 최신 버전으로 업그레이드하세요. 해결책 yarn add eslint@latest 의존성 중 사용 중단된 모듈 예를 들어, glob@7.2.3 과 inflight@1.0.6 이 더 이상 지원되지 않습니다. 이는 주로 간접 의존성에서 발생하며, 해당 모듈의 최신 버전으로 업데이트하거나, 의존성을 최신으로 맞춰야 할 수 있습니다. 이런식으로 알려주는데 뭐 아무거나 못건들겠어요 잘못될 것같아서 뭐가 잘못된걸까요 ?
안녕하세요 궁금한 게 있는데 알려주신 react loading skeleton 라이브러리는 리액트 19와 호환되지 않아서 react 18을 써야하는데,next 15는 리액트 19 rc 버전을 사용하고 있는데요. next 15 + react18로 사용을 해도 앱 라우터가 동작은 하던데, next 15 + react18로 사용하면서 라이브러리 들을 쓰는 게 좋을까요? next 15 + react19 rc로 쓰는 게 좋을까요? 관련해서 검색해보면 next 15 + react18은 앱라우터를 못 쓴다고만 되어있더라고요. 강사님의 개인적인 의견이 궁금해서 여쭤봅니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 아래의 메서드는 결국 if(closed) 를 검증하기 위한 코드인데 synchronized가 아닌 volatile 키워드로 가시성만 보장해도 동시성 처리를 막을 수 있을 것 같다는 생각에 질문 드립니다! 아직까지 해당 부분이 미흡해서 다시 공부해보겠습니다! public synchronized void close() { if (closed) { return; } closeAll(socket, input, output); // shutdown closed = true; log("연결 종료: " + socket); }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강사님의 강의를 들으며 코드를 작성하던 도중 해결되지 않는 의문이 생겨 질문게시판에 글을 남깁니다. 강의를 보며 샘플데이터 추가를 위한 코드를 작성하고 나서 QuerydslApplication을 실행하면 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initMember': Invocation of init method failed 이라는 오류코드가 뜨면서 QuerydslApplication실행이 종료 됩니다. 그런데 김영한 강사님이 올려주신 자료의 코드를 넣어서 실행해 보면 QuerydslApplication 실행이 잘 됩니다. 분명 똑같이 만들었는데 왜 이런 차이가 나는걸까요? 코드도 다른점이 없어보이는데 이러한 차이가 생기는 이유가 궁금합니다. 아래는 제가 작성한 코드(수정 전 샘플데이터)와 김영한 강사님의 코드(수정후 샘플데이터)입니다. package study.querydsl; import jakarta.annotation.PostConstruct; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import study.querydsl.entity.Member; import study.querydsl.entity.Team; //샘플데이터 추가 /*수정 전 샘플데이터*/ /*@Profile("local") @Component @RequiredArgsConstructor public class InitMember { private final InitMemberService initMemberService; @PostConstruct public void init() { initMemberService.init(); } @Component static class InitMemberService { @PersistenceContext private EntityManager em; @Transactional private void init() { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); for (int i = 0; i < 100; i++) { Team selectedTeam = i % 2 == 0 ? teamA :teamB; em.persist(new Member("member" + i, i, selectedTeam)); } } } }*/ /*수정후 샘플데이터*/ @Profile("local") @Component @RequiredArgsConstructor public class InitMember { private final InitMemberService initMemberService; @PostConstruct public void init() { initMemberService.init(); } @Component static class InitMemberService { @PersistenceContext EntityManager em; @Transactional public void init() { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); for (int i = 0; i < 100; i++) { Team selectedTeam = i % 2 == 0 ? teamA : teamB; em.persist(new Member("member" + i, i, selectedTeam)); } } } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 강사님. 강의 수강 중에 질문 드려봅니다. 섹션9. 프록시 1편 11분경에, 코드를 그대로 따라 치고 실행해보았는데, 실제로 강의와 다르게 동작하는 거 같습니다. try { Member member = new Member(); member.setUsername("hello"); em.persist(member); em.flush(); em.clear(); Member findMember = em.getReference(Member.class, member.getId()); System.out.println("findMember.id = " + findMember.getId()); System.out.println("findMember.username = " + findMember.getUsername()); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } 위와 같이 코드를 실행했는데요, Hibernate: select next value for Member_SEQ Hibernate: /* insert for hellojpa.Member */insert into Member (USERNAME, MEMBER_ID) values (?, ?) Hibernate: select m1_0.MEMBER_ID, t1_0.TEAM_ID, t1_0.name, m1_0.USERNAME from Member m1_0 left join Team t1_0 on t1_0.TEAM_ID=m1_0.TEAM_ID where m1_0.MEMBER_ID=? findMember.id = 1 findMember.username = hello 콘솔에서는 이렇게 나옵니다. findMember.id는 쿼리 실행 필요 없이 바로 출력 가능해야 할 거 같은데 쿼리가 먼저 실행되는 이유가 뭘까요? (username을 꺼내쓰는 부분을 제거하고 실행해봐도 쿼리가 실행되고 id를 출력합니다.)
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의자님께서는 강의에서 어떤 코드 정렬 기능을 쓰고 계신지 궁금합니다. 단축키를 이용하시는 것 같은데 저는 똑같이 안되는 것 같습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의에서 order 테이블을 조회하면 id값이 4, 11로 나오는데 저는 1, 2로 나옵니다. 아무리 생각해봐도 4, 11로 나올 이유가 없어보이는데 왜 4,11로 나오는지 궁금합니다
yarn add --dev husky 명령어를 사용후, npx husky install 명령어를 사용했는데 husky - install command is DEPRECATED 라는 오류가 계속해서 발생합니다. .git도 생성되어 있는데 어떻게 해결해야할지 모르겠어서 질문합니다
안녕하세요 비슷한 이유로 queryDSL 에서 불편함을 가지고 있어 jOOQ 에 관심이 생겼습니다. 마침 이렇게 좋은 강의 만들어주셔서 정말 감사합니다. 다름이 아니라 kotlin 을 주로 사용해서 kotlin 으로 jOOQ 사용시 컴파일 단계에서 힙메모리 부족 현상이 생기는데 혹시 kotlin 으로 힙메모리 부족 현상을 겪으신 적 있으신가요 만약 있으시면 해결하신 지혜를 얻고 싶어 글 남깁니다 gradle 설정은 아래와 같이 했습니다 해결과정 동안 힙메모리 설정 추가하여 늘려봐도 메모리 부족 현상이 발생하네요 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile val jooqVersion: String by extra("3.19.5") plugins { kotlin("jvm") version "1.9.25" kotlin("plugin.spring") version "1.9.25" id("org.springframework.boot") version "3.4.0" id("io.spring.dependency-management") version "1.1.6" id("nu.studer.jooq") version "9.0" } group = "com.example" version = "0.0.1-SNAPSHOT" java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } repositories { mavenCentral() } dependencies { implementation("org.springframework.boot:spring-boot-starter-jooq"){ exclude(group = "org.jooq", module = "jooq") } implementation("org.jooq:jooq:$jooqVersion") // jOOQ implementation(project(":jOOQ-custom")) jooqGenerator (project(":jOOQ-custom")) jooqGenerator("org.jooq:jooq:$jooqVersion") jooqGenerator("org.jooq:jooq-meta:$jooqVersion") implementation("org.jetbrains.kotlin:kotlin-reflect") runtimeOnly("com.mysql:mysql-connector-j") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } kotlin { compilerOptions { freeCompilerArgs.addAll("-Xjsr305=strict") } } tasks.withType<Test> { useJUnitPlatform() } val dbUser: String = System.getProperty("db-user") ?: "root" val dbPassword: String = System.getProperty("db-password") ?: "passwd" jooq { version.set(jooqVersion) configurations { create("sakilaDB") { generateSchemaSourceOnCompilation.set(true) jooqConfiguration.apply { logging = org.jooq.meta.jaxb.Logging.WARN jdbc.apply { driver = "com.mysql.cj.jdbc.Driver" url = System.getenv("DB_URL") ?: "jdbc:mysql://localhost:3306/sakila" user = dbUser password = dbPassword } generator.apply { name = "org.jooq.codegen.KotlinGenerator" database.apply { name = "org.jooq.meta.mysql.MySQLDatabase" excludes = "sys" } generate.apply { isDaos = true isRecords = true isFluentSetters = true isJavaTimeTypes = true isDeprecated = false } target.apply { directory = "src/generated" } strategy.name = "com.example.jooq.custom.generator.JPrefixGeneratorStrategy" } } } } } sourceSets { main { java { srcDirs("src/main/kotlin", "src/generated") } } }
안녕하세요 존경하는 토비님. 강의 너무 재밌게 보고 있습니다. 이번 강의(오브젝트와 의존관계)를 보다가 제가 지금까지 생각해왔던것과 다른부분이 있어서, 다르게 알고 있었다면 이번 기회에 다시 바르게 잡고 싶어서 질문을 올립니다. 오브젝트 = 클래스의 인스턴스 저는 지금까지 오브젝트를 조금 다르게 해석하고 있었습니다. 객체: 컴파일 시점의 타입 인스턴스: 런타임 시점의 타입 컴파일 시점에서는 객체는 참조하는 클래스 또는 인터페이스로 타입이 정해지지만, 다형성에 의해 런타임 시점에서는 참조하는 인스턴스로 정해진다고 생각했었습니다. 의존관계를 설정할때도, 코드를 작성할땐 (컴파일시점) 의존할 객체를 인터페이스/클래스로 참조하지만, 구현체(인스턴스)는 런타임 시점에 정의되므로, 인스턴스는 곧 런타임의 타입이라고.. 생각해왔습니다. 제가 객체와 인스턴스에 대해 잘못 생각하고 있었던걸까요? 바쁘시겠지만 시간되실때 조언 한마디 주시면 감사하겠습니다~~!
s.nextInt()로 int 값을 입력한 후 s.nextLine()으로 String 값을 입력하는 설명에서 제가 알고 있는 것과 달라서 질문 글을 남깁니다:) 10\nTEST\n 인 상황에서 s.nextInt()로 10과 \n을 읽고 그 다음 s.nextLine()으로 test와 \n을 읽는다고 설명을 해주셨습니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("num: "); int num = sc.nextInt(); System.out.print("str: "); String str = sc.nextLine(); System.out.println(">> " + num + ", " + str); } } 하지만 위의 코드에서 생각한 결과와 조금 다른 결과가 나오는데요. 10을 입력하고 엔터를 누르면 sc.nextInt()에 의해 10은 num에 저장됩니다. 하지만 이때 \n은 버퍼에 그대로 남아있는 상태입니다. 이때 다음 코드로 sc.nextLine()을 호출하게되면 sc.nextLine()은 \n을 읽고 str에 저장을 해버려 저희가 의도한 상황과 조금 다른 결과가 나오게 됩니다. 그래서 항상 sc.nextInt() 등등과 같은 메서드를 호출한 다음에는 버퍼에 남아있는 \n을 날리는 용도의 sc.nextLine()을 호출해야하는 것으로 알고 있습니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("num: "); int num = sc.nextInt(); sc.nextLine(); // 버퍼에 남아있는 \n 날리기(?) System.out.print("str: "); String str = sc.nextLine(); System.out.println(">> " + num + ", " + str); } } 아직 자바 공부에 대한 깊이가 부족하여 제가 이해한 것에 대한 설명이 적절한지 의문이 들지만 혹시 틀린 부분이 있다면 알려주세요:)
안녕하세요 이정환 강사님! 강의 너무 잘 듣고 있습니다. 다름이 아니라 section04로 넘어가면서 서버 데이터 패칭 시 하기와 같은 에러가 발생하는데요 hook.js:608 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="/" notFound={<NotAllowedRootNotFoundError>} notFoundStyles={undefined} ...> <RedirectBoundary> <RedirectErrorBoundary router={{...}}> <Head> <link> <RootLayout> <html lang="en"> <body - cz-shortcut-listen="true" > ... 서버에러인거 같아서 서버 터미널을 보니 [Nest] 89115 - 2024. 12. 01. 오후 10:22:40 ERROR [ExceptionsHandler] Invalid this.prisma.book.findMany() invocation in /Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:35 24 } 25 26 async findAllBooks() { → 27 return await this.prisma.book .findMany( Error querying the database: FATAL: Tenant or user not found PrismaClientInitializationError: Invalid this.prisma.book.findMany() invocation in /Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:35 24 } 25 26 async findAllBooks() { → 27 return await this.prisma.book .findMany( Error querying the database: FATAL: Tenant or user not found at In.handleRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:7154) at In.handleAndLogRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:6188) at In.request (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:5896) at l (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:127:11167) at BookService.findAllBooks (/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:12) at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-proxy.js:9:17 [Nest] 89115 - 2024. 12. 01. 오후 10:22:40 ERROR [ExceptionsHandler] Invalid prisma.$queryRawUnsafe() invocation: Error querying the database: FATAL: Tenant or user not found PrismaClientInitializationError: Invalid prisma.$queryRawUnsafe() invocation: Error querying the database: FATAL: Tenant or user not found at In.handleRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:7154) at In.handleAndLogRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:6188) at In.request (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:5896) at l (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:127:11167) at BookService.findRandomBooks (/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:51:12) at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-proxy.js:9:17 [Nest] 89115 - 2024. 12. 01. 오후 10:24:17 ERROR [ExceptionsHandler] Invalid this.prisma.book.findMany() invocation in /Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:35 24 } 25 26 async findAllBooks() { → 27 return await this.prisma.book .findMany( Error querying the database: FATAL: Tenant or user not found PrismaClientInitializationError: Invalid this.prisma.book.findMany() invocation in /Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:35 24 } 25 26 async findAllBooks() { → 27 return await this.prisma.book .findMany( Error querying the database: FATAL: Tenant or user not found at In.handleRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:7154) at In.handleAndLogRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:6188) at In.request (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:5896) at l (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:127:11167) at BookService.findAllBooks (/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:12) at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-proxy.js:9:17 [Nest] 89115 - 2024. 12. 01. 오후 10:24:17 ERROR [ExceptionsHandler] Invalid prisma.$queryRawUnsafe() invocation: 이와같은 에러가 발생하는데요 supabase에도 문제가 없고 혹시 .env파일에서의 url에 오타가 있는지 봤지만 DATABASE_URL="postgresql://postgres.hnetjcwhrrrlawdduljl:J8duYElvPI3aY69n@aws-0-ap-northeast-2.pooler.supabase.com:5432/postgres" 아레와 같이 문제는 없었는데 어떤 점이 문제인지 4시간째 찾지 못해서 질문드립니다 ㅠ
여기도 하나 질문 드릴게 있는데 conversation.ts파일이 'use server'로인해 서버에서 실행되는 함수가 되는데 그럼에도 revalidatePath함수에 절대경로 ('localhost:3000/')이 아닌 루트경로를 넣어도 왜 상관이 없는건지 궁금합니다 ㅠㅠ
클라이언트 컴포넌트안의 자식컴포넌트들은 자동으로 클라이언트 컴포넌트로 바뀌는데 사용할 자식 컴포넌트를 children으로 처리하면 클라이언트 컴포넌트로 바뀌지 않고 서버컴포넌트로 남기때문에 문제가 발생하지 않는건가요? 그렇다면 그게 가능한 메커니즘은 무엇인지 궁금합니다 ㅠㅠ