안녕하세요 존경하는 토비님. 강의 너무 재밌게 보고 있습니다. 이번 강의(오브젝트와 의존관계)를 보다가 제가 지금까지 생각해왔던것과 다른부분이 있어서, 다르게 알고 있었다면 이번 기회에 다시 바르게 잡고 싶어서 질문을 올립니다. 오브젝트 = 클래스의 인스턴스 저는 지금까지 오브젝트를 조금 다르게 해석하고 있었습니다. 객체: 컴파일 시점의 타입 인스턴스: 런타임 시점의 타입 컴파일 시점에서는 객체는 참조하는 클래스 또는 인터페이스로 타입이 정해지지만, 다형성에 의해 런타임 시점에서는 참조하는 인스턴스로 정해진다고 생각했었습니다. 의존관계를 설정할때도, 코드를 작성할땐 (컴파일시점) 의존할 객체를 인터페이스/클래스로 참조하지만, 구현체(인스턴스)는 런타임 시점에 정의되므로, 인스턴스는 곧 런타임의 타입이라고.. 생각해왔습니다. 제가 객체와 인스턴스에 대해 잘못 생각하고 있었던걸까요? 바쁘시겠지만 시간되실때 조언 한마디 주시면 감사하겠습니다~~!
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시간째 찾지 못해서 질문드립니다 ㅠ
안녕하세요. 테스트 코드에 관심이 있는 중에 찰떡인 강의 덕분에 집중해서 강의를 정독하고있습니다. mocking 시에 여러 라이브러리들이 존재할텐데, nock 을 선택하신 이유가 궁금합니다. 추가로 다들 비슷하겠지만 라이브러리를 선택하실때 고민하시는 부분들이 어떤 부분들이 있는지 궁금해요. (저는 주로 github 스타,업데이트 및 지원, 사용성, 지금 코드와 적합한가? 정도 보긴합니다..)
여기도 하나 질문 드릴게 있는데 conversation.ts파일이 'use server'로인해 서버에서 실행되는 함수가 되는데 그럼에도 revalidatePath함수에 절대경로 ('localhost:3000/')이 아닌 루트경로를 넣어도 왜 상관이 없는건지 궁금합니다 ㅠㅠ
클라이언트 컴포넌트안의 자식컴포넌트들은 자동으로 클라이언트 컴포넌트로 바뀌는데 사용할 자식 컴포넌트를 children으로 처리하면 클라이언트 컴포넌트로 바뀌지 않고 서버컴포넌트로 남기때문에 문제가 발생하지 않는건가요? 그렇다면 그게 가능한 메커니즘은 무엇인지 궁금합니다 ㅠㅠ
연관관계가 없는 조인에 대해 설명하신 부분에 대해 문의 드립니다. 보통 연관관계가 없다고 한다면 외래키로 연결되지 않는 두개의 테이블 이라고 생각할텐데 강의에서는 두 테이블 간 연관관계는 존재하고 연관관계의 컬럼으로 조인하는것이 아닌 , 다른 컬럼으로 조인하는것을 연관관계가 없는 조인이라고 설명하시는것 같아 혼동이 옵니다. 연관관계가 없는 조인 의 경우 두 테이블 간에 외래키가 없는경우에도 연관관계 없는 조인이 가능한건지 아니면 외래키는 있지만 외래키 조인이 아닌 다른 컬럼으로 조인할수 있는것을 연관관계가 없는 조인이라고 하시는건지 알려 주시면 감사하겠습니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
o/s:윈도우10 pro 22h2 ASUS 노트북 사용자입니다 5년 되었습니다 cpu:Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz 2.90 GHz ram:16.0GB(15.9GB 사용 가능) 종류:64비트 운영 체제, x64 기반 프로세서 230GB_hdd c: 플러터,안드로이드 스튜디오,git,node 설치 230GB_hdd d:프로젝트 생성 저는 이렇게 쓰고 있는데 문제 소지가 있으면 변경 하려고 합니다 노트북이 오래 되어서 C:드라이브가 80% 되니 버벅거려서요 "꼭 프로잭트생성 드라이브를 C:드라이브로 해야합니까' 프로젝트생성을 D:할경우 문제가 많이 생기나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. @PatchMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMember(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest updateMemberRequest) { 수정 api는 위와 같은 주소를 이용합니다. 근데 사실 UpdateMemberRequest에 id라는 필드를 넣고 주소를 /api/v2/members 로 둬도 상관 없지 않나요? id를 PathVariable로 뺀 이유가 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 엔티티를 api로 넘겨주면 엔티티가 수정됐을때 api가 오염될 수 있는 문제가 있어서 응답에 DTO를 보내준다고 이해했습니다. 근데 이 문제는 탬플릿 엔진을 사용해 화면을 출력할때도 문제가 되지 않나요? 1편에서 타임리프에 값을 넣을때는 DTO를 이용하지 않은 이유가 궁금합니다. 혹시 컴파일 단계에서 오류가 나기 때문인가요?
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이 계층 구조 화면에서 TodoStateContext.Provider 컴포넌트와 TodoDispatchContext.Provider는 동등한 위치에 있는 것인가요? 아니면 화살표대로 TodoStateContext.Provider 컴포넌트의 자식 컴포넌트가 TodoDispatchContext.Provider 컴포넌트 인건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 어느 순간 갑자기 hello-spring 프로젝트를 켰을때 실행버튼이 안눌리고 HelloSpringApplication에서도 메서드에 재생 버튼이 안뜹니다. 왜그러죠? edit configuartion 해야하나요