첫번째 사진은 터미널창에서 yarn dev를 하니 리엑트 버전을 18.2.0 버전으로 해야 한다고 합니다. . 전에 eslint 설치중에 오류가 나서 node_modules, eslintrc.js , yarm.lock 을 지웠다가 재설치를 했습니다. 이때문에 오류가 난것 같은데 구글링해도 해결방법을 모르겠어서 질문남깁니다 ㅜ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 해당 부분에서 컨트롤러에서 어설픈 엔티티를 생성하지 말라고 하셨습니다 그 말인 즉슨 컨트롤러에서 준영속 엔티티를 생성해서 운영을 지양하라는 말씀이신데 이유가 궁금합니다 준영속 상태의 엔티티는 불안정하니 가급적 자제해야한다는 이유일까요? 아니면 단순 서비스 계층에 수정할 파라메터만 "명확"하게 던지는 게 좋은 설계이므로 그렇게 말씀하신 건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 2. 기본형과 참조형 수업자료 오타있어서 제보합니다. 2. 기본형과 참조형의 pdf 파일 기준 p.5에 두 번째 실행결과에 a=10, b=20이라고 되어있는데 둘의 값이 바뀌어야 해서 제보드립니다. 감사합니다.
반복문+조건문 문제풀이 예제2번에서 2의 배수이거나 3의 배수에서 5의배수와 6의 배수를 빼라는 걸로 이해했습니다. 그래서 풀이는 2의 배수 : 1012 3의 배수 : 674 더하면 1686 이 되고 이중 6의 배수는 두 번 들어갔으니 6의 배수 : 337을 빼면 1349가 됩니다. 그 후 && 뒷항 조건을 적용하면 1349 에서 6의배수(337) 을 한 번 더 빼고 5의 배수중에서 숫자 5는 2와 3의 배수에 포함되지 않기 때문에 10의 배수 : 202 15의 배수 : 134 를 또 빼고 30의 배수는 한번만 뺏어야 되었는데 총 3번이 빠졌으니 30의 배수를 두 번 더하여 나온 값이 810 입니다. 혹시 풀이가 이게 맞을까요 ? 1012+674-337-337-202-134+67+67 = 810 다른 간단한 풀이도 있는지 궁금합니다.
yarn add --dev husky과 npx husky install 하니 .husky 폴더가 생겼는데 강의와는 다른 폴더들이 많이 있구요 이후에 npx husky add .husky/pre-commit "yarn lint" 실행하니 add 명령어를 권장하지 않는다고 뜹니다 이 경우에 어떻게 해야할까요??
Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)
5-2강의 내용은 문제 없이 잘 됐고, 그 다음부터 5-5까지도 문제가 없었습니다. 에러가 다음과 같이 나옵니다. 어떤 게 문제일지 잘 모르겠습니다. 도움을 구합니다. <콘솔로그 상 오류 메시지> Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'from') npm으로 설치를 진행하였으며, npx create-next-app@latest로 최신버전입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 상속 강의를 듣던 중 궁금증이 생겨 남깁니다. 상속 관계에 있는 두 클래스가 있을 때, 자식 클래스의 인스턴스를 생성하면 부모 클래스의 인스턴스가 같이 메모리 상에 생성된다고 하셨습니다. 그런데 이전에 자바 메모리 구조 강의에서는 메서드는 Heap 영역이 아닌 클래스 영역에 존재하는 것이고 메서드 호출 시 클래스 영역으로 찾아가 메서드를 호출한다고 이해했습니다. 상속 관계에 있는 두 클래스의 메서드가 메모리 상에서 어떤 방식으로 호출되는 것인지 궁금합니다.
안녕하세요 제로초님! 제로초님의 강의를 듣고 난 이후로 여러가지 프로젝트를 진행하다가 middleware.ts 와 NextRequest 에 대해 궁금한게 생겼고 공식문서를 찾아봐도 관련 내용을 제가 못 찾는 것 같아서 이렇게 질문드리게 되었습니다. NextRequest NextRequest는 제가 보내는 요청(페이지에 대한 요청, api에 대한 요청 등)의 정보를 가지고 있는 것으로 알고 있습니다. 만약 클라이언트 컴포넌트 에서 (route handler가 아닌)외부 백엔드 api 로 요청을 보냈을 때, 그 "요청의 헤더에 담긴 쿠키를 제거하고 싶다 " 라는 요구사항이 있을 때 다음과 같이 구현을 했습니다. import { NextRequest, NextResponse } from 'next/server'; export async function middleware(request: NextRequest) { request.cookies.delete('accessToken'); request.cookies.delete('refreshToken'); console.log(request.cookies.getAll()); // 쿠키가 삭제된게 확인됨 } 이렇게 한다면 요청을 보내고 -> middleware에서 받은 뒤, 쿠키를 지우고 -> 이어서 요청을 진행 이렇게 되는 것으로 알고 있는데, 실제로는 401이 발생하지 않고 브라우저 network탭을 보면 헤더에 여전히 쿠키가 담겨 있습니다. 이걸 보고 NextRequest에서 삭제 및 수정한 쿠키는, 그 요청이 처리되는 동안만 (=Next.js 서버 내에서 처리될 때만) 유효하고 외부 백엔드 api로 나가는 요청엔 적용되지 않는건가? 라는 생각이 드는데 이게 맞는건가요? middleware 정확히 middleware가 동작하는 시점이 궁금합니다. 저는 웹에서 진행되는 모든 요청 ( '페이지가 요청될 때' , 'api가 호출될 때' 등) 마다 미들웨어가 작동하는 것으로 알고 있습니다. 근데, 서버 컴포넌트(page.tsx)를 실행했을 경우에 다음과 같은 순서로 진행됩니다. page.tsx에 해당하는 URL 요청 - middleware 실행 이후, page.tsx에 존재하는 데이터 패칭 진행 - middleware 실행 x 클라이언트 컴포넌트에서는 url요청과 데이터 패칭 2가지 경우 모두 middleware가 실행 됐었는데, 왜 서버 컴포넌트에서의 데이터 패칭을 할 때는 middleware가 실행 되지 않는건가요..?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이건 오류인가요,,,? 자바도 17버전인데,,,잘 모르겠어요 ㅠ
안녕하세요. Try-with-resource 질문 있습니다. 강의에서는 disconnect() 메서드에서 예외가 발생하지 않도록 하여서 @Override close()에서 throws Exception 구문을 지웠는데요. 만약에 disconnect()메서드에서 예외가 발생하도록 작성했다면 close() throws Exception으로 예외를 던졌을 때 try-with-resource 쪽(호출한 쪽)에서는 sendMessage() 메서드에서 throws Exception으로 처리를 따로 해야 하나 ? 그리고 직접 예외를 잡으려면 어떻게 해야 하나요 ? 왠지 try 구문 안에서 발생한 거니 자연스레 catch 구문으로 넘어갈거 같기도 해서요. 확인 부탁드립니다. @Override public void close() throws Exception { System.out.println("NetworkClientV5.cloase"); disconnect(); //만약 예외 발생시, try-catch로 여기서 직접 잡아주지 않으면 } public void sendMessage(String data){ String address = "http://example.com"; try (NetworkClientV5 client = new NetworkClientV5(address)){ client.initError(data); client.connect(); client.send(data); //AutoClosable 이니 여기서 나갈 때 예외가 발생 -> 이럴 떈 sendMessage 쪽에서 sendMessage(String data) throws Exception 처리 해야 하나 ? 만약 그 에러를 직접 잡으려고 try catch 구문을 쓰려면 어떻게 해야 하나 } catch(Exception e){ System.out.println("예외 확인 = " + e.getMessage()); throw e; }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] HelloSpringApplication.java 의 main 실행 했을 때 사진과 같은 화면이 뜹니다. locallhot는 연결이안됩니다. JDK는 17.0.11.9 버전으로 다운받았습니다. 어디가 잘못된걸까요..
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 강사님 강의를 들으면서 이번에 처음 JPA를 알아가고 있는 중입니다. 헌데 궁금한점이 JPA 특성인것인지 아니면 H2 DB 문제인지 그것도 아니면 제 Intellij 설정 문제인지 모르겠지만 select가 두번이 되는 이유가 무엇때문이지 궁금해서 질문 드립니다. 실질적인 동작에 문제가 생기지는 않겠지만 N+1 관련 강의를 듣다보니 불필요하게 쿼리가 호출되면 안좋은것 같아 여쭈어 봅니다. @Test @DisplayName("대출 기록이 없는 유저도 응답에 포함") fun getUserLoanHistoriesTest() { //given userRepository.save(User("A",null)) //when val results = userService.getUserLoanHistories() //then assertThat(results).hasSize(1) assertThat(results[0].name).isEqualTo("A") assertThat(results[0].books).isEmpty() } 위의 코드를 동작시켰을때 Hibernate: insert into user (id, age, name) values (default, ?, ?) Hibernate: select user0_.id as id1_1_, user0_.age as age2_1_, user0_.name as name3_1_ from user user0_ Hibernate: select userloanhi0_.user_id as user_id4_2_0_, userloanhi0_.id as id1_2_0_, userloanhi0_.id as id1_2_1_, userloanhi0_.book_name as book_nam2_2_1_, userloanhi0_.status as status3_2_1_, userloanhi0_.user_id as user_id4_2_1_ from user_loan_history userloanhi0_ where userloanhi0_.user_id=? Hibernate: select user0_.id as id1_1_, user0_.age as age2_1_, user0_.name as name3_1_ from user user0_ Hibernate: select userloanhi0_.user_id as user_id4_2_0_, userloanhi0_.id as id1_2_0_, userloanhi0_.id as id1_2_1_, userloanhi0_.book_name as book_nam2_2_1_, userloanhi0_.status as status3_2_1_, userloanhi0_.user_id as user_id4_2_1_ from user_loan_history userloanhi0_ where userloanhi0_.user_id=? Hibernate: delete from user where id=? 출력 부분에 위에 처럼 뜨는데요 제가 이해한 바로는 insert는 save 때문에 한번인 반면에 getUserLoanHistoreies 부분에 findAll로 한번의 쿼리를 불러오는 거라서 user와 와 userloanhistory 테이블을 각각 한번 씩 조회 해야 하지 않는가 싶어서 질문 드립니다. 추가로 확인해 보보니 LEFT join에 fetch를 추가했을때 위의 select user와 user_loan_history는 left join 쿼리문으로 변한는 반면 아래의 select user와 user_loan_history는 남아 있습니다. 따로 user를 find 하는 곳이 없는 것 같은데 이런 현상이 나오는 이유가 뭘까요?.... 추측 하기로는 AfterEach로 clear할때 deleteAll을 사용해서 사용했던 테이블을 모두 select 하는건가 싶긴 한데... 제가 이해를 잘 못해서 그런건지 이부분이 어렵네요....
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] PDF 교안 최신버전(20240411 ver)으로 다시 확인해봤는데 Caw 오타 그대로인거 같아서 문의드립니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 정말 JPA를 제대로 배우며 유익한 시간을 보내고 있는 수강생입니다. 질문 1. 페치조인2 - 한계 강의를 듣던 중 @BatchSize 를 조절하여 N+1 문제를 해결하는 예시를 보여주시는데 보여주신 예시의 로그와 제가 테스트 해봤을 때의 로그가 좀 다르게 나와 질문드립니다. 인강에서 보여주실 때에는 load one-to-many 라고 주석이 달리면서 실제 조건문에서는 ? 가 2개만 찍혀있는데 제가 테스트 해보니 BatchSize에 지정해준 숫자 만큼 로그에 ? 가 찍히는것을 확인 할 수 있었습니다. 혹시 제가 잘 못 테스트 한 것 일까요? 질문 2. 또한 강의에서 일반적으로 BatchSize 를 전역 설정으로 해놓고 100~1000 사이의 크기를 지정하여 사용하신다고 말씀하셨는데 이는 DB 조회 쿼리 횟수는 줄어들어 N+1 문제는 완화할수 있지만 지연 로딩 시 내가 접근한 객체의 수 만큼만 로드하는 것이 아닌 무조건 배치 사이즈 만큼 로드되기 때문에 그 간격이 크면 메모리적인 낭비가 되는거 아닌가요?