묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
hibernate.default_batch_fetch_size 적용 안되는 경우
안녕하세요 김영한님 !! 강의 정말 재미있게 잘 들었습니다 ㅎㅎ 다름이 아니라 JPA 를 사용하여 프로젝트를 진행하던 와중에 이해가 가지 않는 현상이 있어서 질문드립니다. default_batch_fetch_size가 설정되어 있고 동일한 메소드로 프록시 객체를 get 할 때 하나는 in 쿼리가 정상동작하고 하나는 동작하지 않는 경우가 있습니다. 자세한 상황은 여기 블로그 글에 써 놓았는데 너무 길어서 요약해보겠습니다 !! 프로젝트 실제 코드는 너무 길어서 비슷한 상황을 간단한 테스트 코드로 재현해보았습니다. - 엔티티 구조 Member 엔티티의 연관엔티티로 Team이 있습니다. 다대일 관계입니다. cascade 옵션은 주지 않았습니다. (Team 은 이미 존재하는 엔티티 이기 때문입니다) fetch 타입은 LAZY 입니다 1. in 쿼리가 정상 동작하는 테스트코드 @DisplayName("Member 리스트 조회 시 Team을 lazy loading 할 때 in 쿼리 Team이 한꺼번에 조회된다.") @Test void team_inquery_working() { // given Team teamA = new Team("TeamA"); Team teamB = new Team("TeamB"); teamRepository.save(teamA); teamRepository.save(teamB); testEntityManager.flush(); testEntityManager.clear(); Member member1 = new Member("member1"); Member member2 = new Member("member2"); member1.setTeam(teamA); member2.setTeam(teamB); memberRepository.save(member1); memberRepository.save(member2); testEntityManager.flush(); testEntityManager.clear(); // when List<Member> members = new ArrayList<>(); members.add(memberRepository.findById(1L).get()); // Member 를 조회하는 쿼리가 생성된다. members.add(memberRepository.findById(2L).get()); List<String> teamNames = members.stream() .map(member -> member.getTeam().getName()) .collect(toList()); // Team 을 조회하는 쿼리가 in 쿼리로 수행된다. // then assertThat(teamNames).hasSize(2); } 2. in 쿼리가 동작하지 않는 코드 @DisplayName("Team을 initialize 할 때 in 쿼리가 수행되지 않는다.") @Test void team_inquery_notWorking() { EntityManager em = testEntityManager.getEntityManager(); // given Team savedTeamA = teamRepository.save(new Team("TeamA")); Team savedTeamB = teamRepository.save(new Team("TeamB")); testEntityManager.flush(); testEntityManager.clear(); // when Member member1 = new Member("member1"); Member member2 = new Member("member2"); Team teamA = em.getReference(Team.class, savedTeamA.getId()); // Team은 프록시 객체다. Team teamB = em.getReference(Team.class, savedTeamB.getId()); member1.setTeam(teamA); member2.setTeam(teamB); memberRepository.save(member1); memberRepository.save(member2); testEntityManager.flush(); List<Member> members = new ArrayList<>(); members.add(memberRepository.findById(1L).get()); // 영속성 컨텍스트에 있는 Member를 로딩한다. members.add(memberRepository.findById(2L).get()); List<String> teamNames = members.stream() .map(member -> member.getTeam().getName()) // 각 멤버의 개수만큼 team을 select하는 쿼리를 실행한다. .collect(toList()); // then assertThat(teamNames).hasSize(2); } - 위 코드와 아래 코드의 차이는 다음입니다. - 위 코드는 Member를 조회할 때 영속성 컨텍스트에 Team의 프록시 객체가 로딩됩니다. - 아래 코드는 Member가 저장이 될 때 getReference()를 통해 영속성 컨텍스트로 불러온 Team의 프록시 객체와 연관관계를 맺습니다. - 위 코드와 아래코드는 - Member와 Team의 연관관계가 잘 매핑되어 있다는 것 (디버깅 해도 두 경우 모두 Team과 연관관계가 잘 맺어져 있는 것을 확인했습니다) - Team 이 프록시 객체인 상태로 영속성 컨텍스트에 있다는 것 (하나는 lazy loading, 하나는 getReference 로 가져온 프록시 객체입니다. 이 역시 디버깅하여 확인했습니다) 라는 부분에서 동일한 상황이라고 생각을 하였는데 왜 in 쿼리 적용은 다르게 나갈까요 ? (해결하기 위해서 영속성 컨텍스트를 한번 초기화 clear 해주면 되지만 이유가 궁금합니다 !! ) 제가 잘못 이해하고 있는 부분이 있는걸까요 ?? 감사합니다 😊 !!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
디비 등록이 되지 않아서 문의 드립니다.
말씀해주신 대로 작업하는데 빌드 오류는 없는데 h2디비에 테이블 생성이 되지 않고 있어 문의 드립니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
파일인식
선생님 react 다른강의배울때 파일생성할때 카멜케이스 문법으로 proFile 이런식으로 생성하고 export default ProFile 이런식으로 바꿔줫는데 파일이름을 proFile 이런식으로하면 next가 인식못해서 404에러 뜨더라구요 페이지찾을수없다고 그래서 profile.jsx 이렇게 바꿔주니 잘되요 결론: 파일이름 무조건 소문자로 해야하나요 ?
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
이메일로 유저 생성 부분 질문이 있습니다.
안녕하세요. 이메일로 유저 생성하던 부분을 진행하던 중(V7)에 에러 코드를 보고 V9로 바꿔줘야 하는걸 깨닫고.. 나중에 올려주신 V9코드로 수정하기 강의보고 따라하고 있어요. 그런데 똑같이 다 바꾼 것 같은데도 Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app). 이 에러 메세지가 계속 나와 질문을 드리게 되었습니다. 제가 수정한 곳은 firebase.js, RegisterPage.js 두개인데..혹시 더 바꿔줘야 하는 부분이 있을까요? 아무래도 RegisterPager.js getAuth() 함수가 실행되며, 에러가 발생 하는 것 같습니다
-
미해결자바스크립트 제대로 배워볼래?
선생님 코드중에 ("#tb>tobody")의 뜻을 알려주실 수 있으실까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비선생님 코드중에 ("#tb>tobody")의 뜻을 알려주실 수 있으실까요?스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 코드중에 ("#tb>tobody")의 뜻을 알려주실 수 있으실까요? #을 적고 안적고에 따라서 검색이 되고 안되어서 #의 기능이 어떤 역활을 하는 것인지 알려 주실 수 있으실까요?
-
미해결UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>
질문 있습니다
강의 초반에 navigation bar 색상을 변경하는데 처음 view controller를 emded in 해서 nagation controller를 생성하고 강사님과 똑같이 코드를 작성했는데 색상이 이렇게 스크롤해서 네비게이션에 닿을때만 색상이 변경됩니다 강사님 처럼 색깔이 고정적으로 변경되려면 어떤 속성을 바까야 하는지 잘 모르겠습니다..
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
JPA에서 엔티티를 삭제 혹은 업데이트 할 때 리턴에 대해 질문드립니다.
안녕하세요! 엔티티를 JPA로 삭제 혹은 업데이트 처리 후에 반환형이 void 아니면 해당 엔티티의 id 값을 반환 받는데요. 혹시 삭제나 업데이트를 하는 와중에 DB커넥션 오류가 발생한다면, 개발자 입장에서 Repository에서 오류가 난 뒤 에러처리를 어떻게 할 수 있을까요? 답변 기다리겠습니다. 감사합니다!
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
finally관련해서 질문드립니다!
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. "풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]"의 "모던 웹을 위한 Javascript+ES6 비동기 처리를 위한 Promise 이해2" 강의 9분 50초 쯤부터 나오는 내용에 대해 질문 드립니다. Error를 새로 throw하면 정상적인 동작은 멈췄다고 판단해서 finally가 먼저 호출되고, 그 뒤에 있는 catch가 호출된다고 하셨습니다. 그런데 catch를 먼저 선언하고 그 후에 finally를 선언하니 catch 먼저 호출되었습니다. finally가 먼저 출력되는 것이 아니라 작성 되어있는 순서대로 출력이 되는 게 맞는 건가요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요!! 쓰레드와 프로세스의 차이
안녕하세요. 좋은 강의 감사합니다!!제가 프로세스와 쓰레드, 멀티프로세스, 멀티쓰레드를 정확히 구분짓지 못하는거 같아 이렇게 질문으로 남깁니다. 1. 제가 이해한 대로는 프로세스가 하나의 프로그램이고, 그 프로그램을 여러개 실행하면 멀티프로세스, 그리고 하나의 프로그램 안에 실행 역할을 해주는 쓰레드가 여러개가 있다면 멀티쓰레드라고 이해했습니다. 혹시 이게 맞을까요??2. 임계영역이라는게 서로 다른 쓰레드 또는 프로세스가 자원 공유하는걸 접근하는건데 분명 프로세스는 아예 다른 프로그램으로 각자 다른 메모리를 가지고 있는데 공유되는 자원이 있다는게 잘 이해가 안갑니다.. 그리고 컨테스 스위층은 서로 다른 프로세스에서 다른 프로세스를 실행할때 일어나는건가요?? 아니면 쓰레드에서 다른 쓰레드로 넘어갈때 일어나는건가요??.. 분명 컨테스트 스위층가 프로세스에서 프로세스로 이동하는것보다 공유하는 메모리가 있기 때문에 쓰레드에서 쓰레드로 이동하는게 더 빠르다고 들었습니다. 이 말도 머리에서 잘 그려지지 않네요... 이렇게 독립적으로만 개념을 이해하고 있고 이를 큰 그림으로 이어서 이해를 할려고하면 앞뒤가 안맞아서 이렇게 질문남깁니다.!!
-
미해결AWS(Amazon Web Service) 입문자를 위한 강의
aws 명령어 2번째
1번을 실행해서 mywebapp 을 만들고 2번째 명령어를 실행 하려고 하는데 /home/ec2-user/appspec.yml was not found 이런 err 문장이 나와서 진행을 못하고 있습니다. 그리고 강의에서 ec2 인스턴스 내에서 실행을 하는게 아니라 로컬 머신에서 실행을 해야 한다고 하셨습니다, window putty에서 하는 방법을 모르겠습니다.
-
해결됨운영체제 공룡책 강의
thread에 대한 질문입니다. (40:45지점)
질문1 thread가 kernel thread와 user thread가 나누어져 있다는 부분이 이해가 가지 않습니다. 제가 이해한 바로는 하나의 thread가 있는데 이 thread가 시작할 때는 user 모드였다가 system 자원이 필요할 때 kernel 모드로 바뀌는 것으로 알고있습니다. 그러니까 하나의 thread가 user 모드와 kernel 모드로 바뀌어가며 실행되는 것이 아닌가요? 질문2 운영체제 입장에서는 kernel thread만 스케줄링 하면 된다는 부분이 이해가 가지 않습니다. 두 가지 측면에서 이해가 가지 않는데요. 첫 번째는 질문1에서처럼 제가 thread가 user thread와 kernel thread로 마치 두 몸인 것처럼 쪼갤 수 없기 때문에 user thread는 놔두고 kernel thread만 스케줄링 한다는 개념을 이해할 수 없습니다. 두 번째는 user thread를 thread library가 관리한다는 부분입니다. 예를 들면 java로 프로그래밍 하게 되면 java thread 라이브러리에 해당 thread가 어떠한 우선 순위로 어떠한 알고리즘으로 스케줄링 될 것인지 모두 프로그래밍 되어 있다는 것인지요. 또 라이브러리 명령대로 한다고 가정하더라도 CPU는 어쨌든 운영체제가 관리하고 있는 것인데, 라이브러리의 명령을 받고 CPU를 user thread가 점령하게 되면, 운영체제는 그 user thread를 무시하고 kernel thread를 스케줄링 할 수 없을 텐데요. user thread가 CPU에서 나와야 kernel thread를 넣을 수 있을 테니까요. 이 논리라면 결국 user thread도 운영체제에 의해 스케줄링 되어야 한다는 결론에 이릅니다. 제가 어디를 잘못 이해하고 있는지 궁금합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
DTO로 조회 시 빌더패턴 사용이 가능한가요?
제목 그대로입니다. 빌더패턴을 사용하여 조회할 수 있는 방법이 있을까요?
-
미해결웹 게임을 만들며 배우는 React
바닐라 자바스크립트로 리액트와 같이 동작하는 웹
안녕하세요 선생님, 좋은 강의 감사드립니다. 다름이 아니라 리액트를 사용하지 않고도 리액트와 같이 화면 전환이 부드러운 웹 사이트들을 보고 궁금증이 생겨 질문드립니다. 순수 자바스크립트만을 사용하는 경우, 현대적인 웹을 구현하기 위해서는 어떤 방식으로 구현하는 지 알려주실 수 있을까요? 리액트와 같이 상태를 기준으로 DOM을 렌더링 하는 형태로 구성하는지... 구현하는 방법이 각양각색이겠지만, 일반적으로 어떻게 구현하는지 궁금합니다.
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
한글 인코딩 질문 드립니다.
안녕하세요. 맨처음 FrontController에 모든 로직을 다 집어넣는 부분에서 인코딩 설정을 euc-kr로 하셨는데 그 전에꺼는 보니까 UTF-8로 되어 있더라고요. 회원가입 하는 과정에서 강사님께서 memberRegister,html form 태그의 경로를 MVC03으로 그대로 두셔서 UTF-8로 인코딩이 계속 되신거 같은데 저는 경로를 MVC04로 바꿔서 가입을 진행해보니 한글이 깨져서 나옵니다. 혹시 euc-kr로 인코딩 했을 때 왜 한글이 깨져서 나오는지 알 수 있을까요?
-
미해결[React 1부] 만들고 비교하며 학습하는 React
searchResultView를 바로 hide 했을 때 생길 수 있는 문제점이 있을까요?
안녕하세요, 저는 store의 저장값을 비우고 다시 렌더링 하는 것 대신해서 this.searchResultView.hide(); 바로 불러서 결과값을 reset 했습니다. 테스트를 해봤을 때는 발견되는 문제점은 없었습니다. reset() { console.log(tag, "reset"); this.searchResultView.hide(); } 혹시 바로 hide()를 부르면 생길 수 있는 문제점이 있을까요? 감사합니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
git 권한 신청합니다!
인프런 아이디 : prnoh@clmns.co.kr 인프런 이메일 : prnoh@clmns.co.kr 깃헙아이디 : pureun95@gmail.com 깃헙 Username : pureun95
-
미해결[React 1부] 만들고 비교하며 학습하는 React
delegate에 관하여 질문있습니다.
bindEvents() { // delegate(this.element, "click", "li", (event) => // this.handleClick(event) // ); on(this.element, "click", (event) => this.handleClick(event)); } handleClick(event) { console.log(tag, event.target); const value = event.target.dataset.tab; this.emit("@change", { value }); } 위 코드에서 delegate 부분을 helper.js의 on 메서드를 이용하여 구현해보았는데요 지금처럼 tab-view안에 li만 있을경우는 delegate를 쓸때와 동일한 것이 맞나요? 아니면 delegate를 사용하여야만 하는 이유가 있을까요? 읽어주셔서 감사합니다.
-
미해결Flutter + Firebase로 넷플릭스 UI 클론 코딩하기 [무작정 플러터]
M1에서는 안되는가 봅니다..?
하아... 자꾸 에러 나면서 ios에서만 안되네요... 저같은 분들 있으실까봐 말해둡니다 chrome이나 android에서는 잘 작동 하는데 ios에서만 오류가 나네요 ;; ld: in /Users/kimhakdong/Flutter/netflix/ios/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(FIRAnalyticsConnector_a8eeba373b74508311b8b22b8d3202a6.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/kimhakdong/Flutter/netflix/ios/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector' for architecture arm64
-
미해결따라하며 배우는 리액트 테스트 [2023.11 업데이트]
여해 상품 판매 앱 만들기 - MSW 를 이용한 테스트 2 에러
여해 상품 판매 앱 만들기 - MSW 를 이용한 테스트 2 과정 마지막까지 한 결과 에러가 발생하여 확인부탁드립니다. 해당 과정 마지막 즈음에 테스트 코드를 작성하고 테스트를 확인하는데 해당 테스트 부분에서 에러가 발생합니다. 에러 내용은 사진과 같습니다 render 로 Type 컴포넌트를 렌더링했는데 해당 오류가 발생했습니다. api mock 테스트하기 위해 msw 설정을 하였으며 테스트 코드와 컴포넌트도 잘 작성한 거 같은데 해당 오류가 발생했습니다. 의심가는 부분은 msw 부분입니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
깃 권한 신청합니다
인프런 아이디 : prnoh@clmns.co.kr 인프런 이메일 : prnoh@clmns.co.kr 깃헙아이디 : pureun95@gmail.com 깃헙 Username : pureun95