1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 5분 지점에 member와 team을 분리해서 호출하기 위해 프록시를 사용한다라고 이해했는데 9분 53초대에서 보면 getUsername()을 호출했을 때 쿼리가 team까지 조인해서 가져옵니다. getTeam() 을 호출하지 않아도 조인으로 가져오는 거라면 굳이 프록시를 사용해야되는 것인지 의문점이 들었습니다. 제가 이해한 것이 맞는지 궁금합니다.
FileReader(FILE_NAME) 이렇게 생성하면 시스템의 기본 디폴드 캐릭터셋을 사용한다고했습니다. 그런데 실제로 실무에서 애플리케이션을 만들고 배포하면 어떤 환경에서 실행될지모르기때문에 코드안에 캐릭터셋을 지정해주는 편인가요? FileReader(FILE_NAME, UTF-8) 이렇게요 개발하는입장에선 당장은 캐릭터셋을 지정안해도되지만 추후에 이 애플리케이션이 실행될 환경을 고려해서 적어주는게 바람직할까요.?
안녕하세요! 저는 HashSet을 사용해서 풀었는데요! public int solution(int n, int k, int[] arr) { int answer = -1; // HashSet으로 변경 Set<Integer> set = new HashSet<>(); // 모든 3개 조합의 합을 HashSet에 추가 for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { for (int l = j + 1; l < n; l++) { set.add(arr[i] + arr[j] + arr[l]); } } } // HashSet을 List로 변환 List<Integer> list = new ArrayList<>(set); // 내림차순 정렬 Collections.sort(list, Collections.reverseOrder()); // K번째 값 반환 if (list.size() >= k) { return list.get(k - 1); } return answer; } 커뮤니티 보니 treeSet을 사용하는 이유가 " 같은 숫자의 카드가 여러장 있을 수 있습니다."라고 하셨는데, 강의 내에 코드는 3개의 카드를 더한 값에 대한 중복 제거지, 각 카드 숫자에 대한 중복을 제거하는건 아니지 않나요..?? hashSet을 사용하는게 O(n3)로 시간복잡도가 더 나은 것 같은데 treeSet을 사용해야 하는 이유를 아직 이해 못했습니다 ㅠㅠ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 회원목록이 안뜹니다. org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232] 라는 에러가 뜨네요.
안녕하세요 네스트 서버에서 아래와 같은 에러가 발생해서 보니 커넥션 관리가 안되고 있더라고요 prisma disconnect 추가하시면 좋을 거 같습니다. 강의 잘 보았습니다 감사합니다. PrismaClientInitializationError: Invalid prisma.review.findMany() invocation: Can't reach database server at aws-0-ap-northeast-2.pooler.supabase.com:5432 Please make sure your database server is running at aws-0-ap-northeast-2.pooler.supabase.com:5432. at In.handleRequestError (/var/task/node_modules/@prisma/client/runtime/library.js:122:7154) at In.handleAndLogRequestError (/var/task/node_modules/@prisma/client/runtime/library.js:122:6188) at In.request (/var/task/node_modules/@prisma/client/runtime/library.js:122:5896) at async l (/var/task/node_modules/@prisma/client/runtime/library.js:127:11167) at async ReviewService.findBookReviews (/var/task/dist/src/review/review.service.js:32:16) at async /var/task/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at async /var/task/node_modules/@nestjs/core/router/router-proxy.js:9:17
두 개의 테이블을 OneToOne으로 연관관계를 설정하여 JPA 로 account와 authority테이블을 한 번에 save하는 로직을 강의 내용을 응용하여 개발하고 있습니다. save를 통해 저장하려고 하면 insert 구문에 LOGIN_ID가 두 번 지정되어 쿼리가 날아가는 현상이 있는데 어느 부분이 잘못된 것인지 도움 부탁드립니다.. (쿼리문 예시 insert into LOGIN_ACCOUNT (LOGIN_ID, ~~~, login_id) select SCOPE_IDENTITY() AS GENERATED_KEYS', ~~~, form에서 입력받은 실제 id값) 아래는 소스 내용의 일부입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 테스트는 초록불이 켜지는데 콘솔창에는 이런 내용이 뜹니다.. 이건 왜이런건가요? 어떻게 해결하죠? 현재 build.gradle는 이 상태 입니다
포트폴리오 강의를 보다가 질문이 생겼습니다. defaultValue 와 value 의 차이가 defaultValue 는 기존값이 수정되고, value 는 수정이 안된다는 것 뿐인가요? 그렇다면 value 는 값을 수정할 수 없으므로 readOnly 라는 코드를 빼도 되는것 아닌가요? 그리고 아래의 코드는 삼항연산자로 되어 있는데 (props.address !=="" ) 이 거짓일때는 게시물 수정할 때를 의미하는것이 맞나요? 제가 정확히 이해하고 있는지 의심이 들어서 질문 올립니다! 그리고 BoardCommentWrite.presenter컴포넌트에서 value={props.writer} 라고 되어 있는데 defaultValue={props.writer} 라고 되어도 문제 없는게 맞나요? <S.Input placeholder="작성자" onChange={props.onChangeWriter} value={props.writer} /> <S.Address readOnly value={ props.address !== "" ? props.address : props.data?.fetchBoard.boardAddress?.address ?? "" } />
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 윈도우 파워셀로 실행하려는데 chmod 755 명령어가 안 됩니다. 'chomod' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 라고 뜨는데 어떡하나요?
널널한 개발자님. 항상 잘 듣고 있습니다! 좋은 강의 감사합니다. 복습을 하던 도중 잘 이해가 안되는 부분이 있어 질문드립니다. 인스턴스의 메타데이터라 함은 강의 내용 중 해시코드, 오브젝트 나이, 락플래그를 말하는 것 같습니다. 강의 4분경에서 이런 메타데이터가 Klass word에서 참조하는 Metaspace에 저장되어 있다고 하셨습니다. 그리고 강의 6분경 핫스팟 VM 객체 Lock flag슬라이드 보거나, 실제 예제를 실행시켜 나온 결과(23:35)를 보면 Markword에도 해쉬파일과 락플래그가 있는 것으로 보입니다. Metaspace, Markword 둘 다 같은 인스턴스의 해시코드값(+락플래그)을 가지는 건가요? 그러면 Metaspace는 생성된 인스턴스 모두의 메타데이터를 가지는건가요? 새벽에 보느라 머리가 잘 안돌아가네요.. 긴 글 읽어주셔서 감사합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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)); } } } }