안녕하세요 강사님! 현재 JPA (Spring Data JPA + Querydsl)로 시스템을 구성하고 있는 중에 비식별자 연관관계 조인 및 fetch 조인 관련 되어 질문이 있어서 글을 쓰게 되었습니다. 거두절미하고 질문 드려볼게요. - 비식별자 연관관계 PK가 아닌 UK로 연관관계를 맺어야 할 경우 @JoinColumn의 referencedColumnName 를 통해서 조인은 가능한 것이 확인 되었습니다. 다만 이럴 경우 fetchType을 LAZY로 해도 EAGER 처럼 한번에 조회가 되더라고요! 확인해 보니 하이버네이트 내부에서 Lazy 로딩 시에 외부 엔티티의 프록시 객체를 생성함에 있어 PK를 기준으로 관리를 진행하는데 PK에 대한 정보가 없기 때문에 프록시 객체 구성을 하기 위해 fetch를 무시하고 바로 EAGER로 조회 하는 것으로 알고 있습니다. 위에 제가 이해한 내용이 맞는지... 그리고 혹시 실무에서 이런 경우가 발생 할 경우 어떻게 처리 하는지 궁금합니다! 제 생각에는 해당 엔티티만 따로 SQL(JdbcTemplate)로 처리 해야할 것으로 생각 되는데, 혹시 다른 방안이 있나 궁금하네요! (참고로 현재 저희는 연관관계상에 UK를 모두 배제하고 PK를 하기로 결정하였습니다. ) - fetch 조인 관련 실무 관련 질문입니다. JPA 경우 LAZY 로딩을 통해서 원하는 시점에서 쿼리를 해 오는 것으로 이해를 했습니다. (프록시 및 영속성 컨텍스트) 다만 SQL 기반으로 개발을 할 경우 어떤 기능 구현을 위해 쿼리를 할 경우 대부분 조인이 되어 있는 완성형 쿼리만을 사용하여 한번만 쿼리를 날리는데, JPA 경우 LAZY를 적극적으로 활용한다면 쿼리 횟수가 늘어날 것이고 이를 방지하기 위해 fetch 조인문이 많아질 거라고 생각이 듭니다. 실제 JPA를 실무에서 진행할 경우 기능 구현 시 단일 테이블 조회 기능 외 대부분 fetch 조인 쿼리를 사용하는지 그 빈도가 궁금합니다. 혹시 질문 내용이 너무 추상적이면 말씀해주세요! 다시 정리 하여 질문 드리겠습니다. 감사합니다!
안녕하세요. 파일을 올려버리니 인덱스 파일에 적혀있는 비번까지 같이 올라가는듯합니다. 파일올릴때 비공개로 설정하고 해야 하지 않을까요? 자신이 주로 사용하는 비번이 깃허브에 퍼블릭으로 올라가면 해킹의 위험이 있어보입니다. @추가내용 : 초기 작성 당시 6강만 보고 9강을 보지 않고 작성하여 말씀드립니다. 9강에서 인덱스 파일에 있는 개인정보를 빼고 올리는 것 확인 하였습니다. 초기에 올릴때 하기의 이유들로 인해 개인정보가 들어가 있는 파일은 빼고 올리는것이 맞지 않나 싶습니다. 해당 강의들을 천천히 학습하는 학습자가 있음. 개인정보를 공공장소에 번듯이 올리는 것은 추후 수정하여시간차가 있긴 하나 보안상의 문제가 있음. 저 같은 경우에는 개인용으로 바꾸었다가 마음이 안내켜서 생성된 레파지토리를 강제 삭제 진행하였습니다만, 무료 강의이긴하나 보는 사람이 많아 파장력이 있는 만큼 해당 내용은 변경하시는게 좋을듯 하네요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 큰돌님, 올려주신 코드를 보고 모든 조건을 다 맞춰봐도 왜 틀리는 건지 모르겠습니다..ㅠㅠㅠ https://www.acmicpc.net/submit/4659/50741996
안녕하세요. 33강 pagination 2 듣는 중에 궁금한 점이 생겼는데요. 6:50초 쯤에 class="page-item" 을 class="page-item active" 로 변경하니 전체 페이지 버튼이 파랗게 되는 것을 보여주셨었는데요. 이걸 현재 페이지만 파랗게 보이게 하려고 class="page-item" :class="currentPage === page? : 'active' : '' " 와 같이 지정해주신 걸 봤습니다. 조건은 이해했는데, 조건이 충족되서 :class='active' 가 되면 class 가 "page-item active" 로 바뀐다는게 이해가 잘 안되서요. 구글링을 해도 뭐라 검색해야할지 잘 모르겠어서 답이 안나오네요. 동일한 이름으로 바인딩을 해주면 접미사로 자동으로 붙는 건가요??
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요? 현재 샘플을 따라 하고 있는데요.. POSTMAN API 테스트를 하면 상당수 에러가 납니다. (ACCESS_DENY) 아주 가끔(?) 성공하고요.. POSMAN에서도 한두번 성공 대부분 실패, 샘플 소스도 마찬가지입니다. API를 제공하는 서버의 문제일까요? 아래는 안드로이드스튜디오상의 로그입니다. print(response.data); Performing hot restart... Syncing files to device iPhone 14... Restarted application in 245ms. flutter: <OpenAPI_ServiceResponse> <cmmMsgHeader> <errMsg>SERVICE ERROR</errMsg> <returnAuthMsg>SERVICE_ACCESS_DENIED_ERROR</returnAuthMsg> <returnReasonCode>20</returnReasonCode> </cmmMsgHeader> </OpenAPI_ServiceResponse> print(response.data['response']['body']); 아래와 같은 현상이 계속 나옵니다. Syncing files to device iPhone 14... Restarted application in 269ms. [VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: type 'String' is not a subtype of type 'int' of 'index' #0 HomeScreenState.fetchData (package:dusty dust_2/screen/home_screen.dart:42:24) <asynchronous suspension> 횟수로 인한 문제는 아니고, 첫 시도부터 자주 에러가 발생하는데, 이유를 알 수 있을까요?
서버에 memberA의 세션이 있고 그 세션안에 security session영역이 있고 그 안에 키는 security ContextHolder이고 값은 Authentication인데 Authentication안에 UserDetails가 있는 것이 맞나요? Oauth를 사용하면 security session영역의 Authentication안에 userdetail이 들어가는게 아니라 토큰형식으로 관리되는건가요??
비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 맥북에서 node.js 설치하는 명령어가 무엇인가요? vs code로요! (오류가 있어서 삭제했습니다 ㅜ) 해당 부분 /* 1. 지도 생성 & 확대 축소 컨트롤러 https://apis.map.kakao.com/web/sample/addMapControl/ */ var container = document.getElementById("map"); //지도를 담을 영역의 DOM 레퍼런스 var options = { //지도를 생성할 때 필요한 기본 옵션 center: new kakao.maps.LatLng(37.54, 126.96), //지도의 중심좌표. 서울 한가운데 level: 8, //지도의 레벨(확대, 축소 정도) 3에서 8레벨로 확대 }; var map = new kakao.maps.Map(container, options); //지도 생성 및 객체 리턴 // 지도 확대 축소를 제어할 수 있는 줌 컨트롤을 생성합니다 var zoomControl = new kakao.maps.ZoomControl(); map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT); /* ********************************************************** 2. 더미데이터 준비하기 (제목, 주소, url, 카테고리) */ async function getDataSet(category) { let qs = category; if (!qs) { qs=""; } const dataSet = await axios({ method: "get", url: 'http://localhost:3000/mapInfo?category=${qs}', headers: {}, //pocket header data: {}, //pocket body }); console.log(dataSet); } getDataSet(); /*
안녕하세요 강사님, 하나의 ML application program을 다양한 limitRange 모델을 적용해서 resource 설정에 따라 처리속도 등 어떻게 달라지는지를 비교하는 테스트를 아래 두가지 방법으로 하고자 합니다. 파이썬 코드를 이미지 빌드 및 푸쉬하여 파이프라인 작업후 experiment 을 하고자 할 경우, limitRange가 설정된 pod에 올리는 방법 limitRange 적용되어 파이프라인을 거쳐 experiment running 중인 pod에 새로운 pod(단일, 복수의 pod)를 생성해서 그 pod들의 limitRange로 experiment 실행을 위한 방법을 알려 주시면 감사하겠습니다.
예제에서 ItemUpdateForm을 Item 객체로 변환하는 과정에선 변환해야 할 필드 수가 적지만 변환할 필드들이 많아진다면 setter메서드 혹은 생성자를 사용하는 경우에 코드가 지저분해질것 같다는 생각이 들었습니다. 이러한 경우 그래도 setter메서드나 생성자를 사용 or BeanValidation 대신 Validator를 만들어서 사용 or 그 밖의 다른 방법 이용하는지 궁금합니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 터미널창에 User@DESKTOP-RE18OV4 MINGW64 ~/Desktop/saju/saju-frontend-vuejs $ npm run serve > saju-frontend-vuejs@0.1.0 serve > vue-cli-service serve INFO Starting development server... 98% after emitting CopyPlugin ERROR Failed to compile with 1 error 오전 12:13:47 Syntax Error: TypeError: Cannot read properties of undefined (reading 'parseComponent') You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file. 계속 이렇게 떠서 그냥 넘어가서 다음 과정인 크롬에 http://localhost:8080/ 을 입력하면 Failed to compile. ./src/App.vue Module Error (from ./node_modules/vue-loader/lib/index.js): Vue packages version mismatch: - vue@2.7.10 (C:\Users\User\Desktop\saju\saju-frontend-vuejs\node_modules\vue\dist\vue.runtime.common.js) - vue-template-compiler@2.6.11 (C:\Users\User\Desktop\saju\saju-frontend-vuejs\node_modules\vue-template-compiler\package.json) This may cause things to work incorrectly. Make sure to use the same version for both. If you are using vue-loader@>=10.0, simply update vue-template-compiler. If you are using vue-loader@<10.0 or vueify, re-installing vue-loader/vueify should bump vue-template-compiler to the latest. 이렇게 떠요ㅠㅠ 뭐가 문제인가요??
안녕하세요! Custim Filter 강의 중 아래 코드 부분에서 GatewayFilter의 생성자가 exchange와 chain이기 때문에 return (exchange, chain) -> { .. 이 되는 것 까지는 이해를 하였습니다. 그런데 이 때 exchange와 chain 변수가 어디에서 정의되어서 여기서 사용되는 건지 잘 모르겠습니다 ㅠㅠ return (exchange, chain) -> { // GatewayFilter의 생성자 Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain);
안녕하세요. 강의 내용 중에 Port와 Host가 헷갈려서 질문을 드립니다. Port를 설명해서 같은 IP내에서 프로세스 구분이 가능하다라고 하셨는데 Host도 보면header Host에 도메인을 실음으로써 하나의 IP내에 존재하는 여러 개의 도메인들 중 해당하는 도메인에 찾아갈 수 있었습니다. 둘의 기능이 비슷해 port, host는 어떤 면에서 다른 건지 그 차이점이 궁금해서 질문 남깁니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. join부분입니다.. 주석으로 질문 적었어요! isEqualTo가 안뜹니다. //then org.junit.jupiter.api.Assertions //빨간줄 뜨고, 이렇게해서 Jupiter assertion을 넣어도 import가 추가되지 않아요.. Member findMember = memberService.findOne(saveId).get(); Assertions.assertThat(member.getName().is) //is 쳤을때 isempty, isblank만 나오고 isEqualTo가 없습니다ㅠㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. workbench만 삭제하고 8.0.2로 다운받으면 될까요? 지금 다른 프로젝트도 진행중이라 삭제하고 다시 깔면 mysql이 오류날까봐 걱정돼요