묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 연관관계에서 지연로딩 문의드립니다.
최근에 영한님 강의를 다시 한번 보고 있습니다. 지연로딩에서 궁금한 부분이 하나 생겼는데요. Team 과 Member 로 양방향 연관관계를 설명해 주실 때, 위 코드에서 Member 의 select 절이 지연로딩으로 수행되고 안되고의 기준은 1차캐쉬에 값이 있고 없고라고 말씀해 주셨는데요. 그 1차 캐쉬의 기준이 조금 궁금해졌습니다. em.persist 로 Team 을 저장했을 때도 Team 에 대한 1차 캐쉬는 존재할테고, em.clear 이후 em.findTeam 을 했을 때도 1차 캐쉬에는 값이 생성된 시점일텐데요.. 그런데 전자에서는 getMember 의 지연로딩이 발생하지 않고 후자에서만 지연로딩이 발생하는 메커니즘이 좀 궁금해졌습니다. 제가 너무 어렵게 생각하는 걸까요? ㅎㅎ
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
LAZY 로 해놔도 N+1 문제가 계속 발생해서 문의 드립니다.
FetchType.LAZY 로 아래와 같이 entity 를 정의하고 아래 JPA 리파지토리를 이용하여 데이타를 가져와서 client(브라우져)에서 받아보면 LAZY 된 child Entity 리스트(quizzList ) 에도 null 이 아니라 리스트로 데이타가 들어가 있습니다. 로그를 보면 N+1 쿼리로 가져와서 보여줍니다. curl -X GET "http://localhost:8080/internal/v1/quest/list2?type=quiz" -H "accept: */*" kotlin SpringBoot 를 사용중인데요.. Jackson data binding 시에 quizzList 속성을 호출해서 그렇게 되는 것인지 궁금합니다. 저는 모든 Entity 조인 컬럼을 LAZY 로 해놔도 N+1 쿼리가 돌면서 전체 결과가 리틴되네요.. lneQuestReposptory.findAllByType(type: String, pageable: Pageable) @Entity(name = "LneQuests")@Table(name = "korbit.lne_quests")@Cacheable@JsonInclude(JsonInclude.Include.NON_NULL)class LneQuest ( var type: String, var title: String, var description: String?, @OneToMany(fetch = FetchType.LAZY, mappedBy = "quest" /* , cascade = [CascadeType.ALL] */) var quizzList: MutableList<LneQuizz> = mutableListOf())
-
해결됨애플 웹사이트 인터랙션 클론!
reset.css vs default.js
저 스스로 클론하다보니 reset.css를 사용했는데 선생님께서는 default.css를 사용하셨더라구요. 구글링해보니 reset.css나 noramalize같은 건 많이 나오던데 혹시 직접 만들어 놓으신건지 /실무에서는 필요에 따라 아무거나 써도 상관없는지가 궁금합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReaderWriterLock 구현 연습 파트 질문입니다!
ReadLock() 작성 중에 조건이 아무도 WriteLock을 획득하고 있지 않으면 ReadCount를 1 늘린다 라서 if ( (_flag & WRITE_MASK) == 0 ) 이 코드는 이해하겠는데 Interlocked를 사용하면서 이 부분이 사라지고 int expected = (_flag & READ_MASK); if (Interlocked.CompareExchange(ref _flag, expected + 1, expected) == expected) return; 이렇게 작성이 되었는데요. 이러면 WriteLock 체크를 무시하는 것이 아닌가요? 코드로만 보면 WriteLock 영역은 모두 0으로 날려버리는 것이니 WriteLock이 있던 없던 그냥 Read 하겠다라고 이해되어서요.
-
미해결스프링 기반 REST API 개발
badRequets에 index 링크를 넣는 과정에서 궁금증이있습니다.
@Valid나 자체적으로 Vaildator는 Erorrs를 EntityModel로 만들어서 응답하지만 spring.jackson.deserialization.fail-on-unknown-properties=true 에 대한 badrequest에는 어떻게 적용해야 할지 잘 모르겠습니다. 400에러와 null값만 오는데 이것도 EntityModel로 응답할 방법이 있을까요??
-
미해결C# 처음부터 배우기
참조 항목!
왜 제 비쥬얼 스튜디오에는 참조 라는 부분이 안보일까요 ㅜ
-
미해결홍정모의 따라하며 배우는 C언어
2차원배열을 1차원배열처럼..
교수님께서 2차원 배열도 결국 1차원 배열과 같은 구조로 작동한다고 하셔서 아래와 같은 코드를 작성해봤는데 int main() { int arr[2][3] = { {1,2,3}, {4,5,6} }; printf("%d\n", arr[1][1]); printf("%d\n", *(arr + 4)); return 0; } 첫번째 printf 에서는 예상한 값과 동일하게 5가 나왔는데, 두번째 printf 에서 *(arr+4) = arr[4] = arr[1][1] 일줄 알았는데 전혀 다른 값이 나와서 당황스럽습니다. 제가 지금 까지 강의를 잘 못이해한건 아닐까 라는 생각도 듭니다. 왜 이런 결과가 나온 걸까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReaderWriterLock 강의 10분 47초 쯤 나오는 Reward 예시에 대해 질문이 있습니다.
ReaderWriterLock 강의 10분 47초 쯤 나오는 Reward 예시에 대해 질문이 있습니다. Reward 예시에서 GetRewardById(int id) 를 설명하시면서, 운영 툴로 보상을 지급해야 할 때, lock이 필요하다 라고 말씀하셨었는데 애초에 MMORPG를 잘 안해서 와닿지 않는 것 같아요. 장기적으로 본다면 게임내의 캐릭터가 가지고 있는 아이템들은 DB로 관리될 것이라 생각되는데, 왜 Lock이 필요한 것인지 이해가 잘 되지 않아요. 메모리 배리어 파트의 Store, Load 와 관련된 것 이라면 DB와 무관하게 실시간으로 캐릭터에게 지급이 된다라고 이해한다면 맞는것 같은데 이렇게 생각하는게 맞는건가요?
-
미해결React로 NodeBird SNS 만들기
새로고침시 me.post.length
안녕하세요. 제로초님 다름이 아니라 새로고침을하면 me.post.length가 없다고 에러가뜨는데 이거는 로그인 성공시 저희 me에 데이터가 들어가는건데 새로고침을하면 LOG_iNS_SUCCESS는 날라가고 useEffect로 user의 정보만 불러오는 그 user의 정보에 아직 post, 팔로잉, 팔로워 데이터가 없어서 에러나는거 맞나요??
-
미해결비개발자를 위한 RPA 강의 (UiPath 입문편)
네이버 로그인등할때 임의의 팝업이 뜰 경우??
안녕하세요 네이버등 웹브라이저 오픈 후 로그인등을 처리할때 사이트상 임의의 팝업창이 생성되었을 경우 클릭이벤트라든지 처리가 안되는데 이럴경우 팝업창 존재유무 및 제거한 후 로그인 프로세스를 타게 해야 할거 같습니다. 처리방법을 어떻게 하여야 할까요 ?
-
해결됨[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
Excel File에서 파이썬으로 읽어온 데이터를 변경 후 원래 엑셀을 변경하는 방법을 알고 싶습니다.
이번 강의 도전 과제가 주민번호 뒷자리를 * 로 바꿔서 가려보기 였는데 하기와 같이 변경하면 쥬피터 노트북으로 출력은 가능 합니다. import openpyxl work_book = openpyxl.load_workbook('data_kr.xlsx') work_sheet = work_book.active for each_row in work_sheet.rows: print(re.sub('-[0-9]{7}', '-*******', each_row[1].value)) work_book.close() 저는 이왕 바꾼 데이터니깐 그걸 다시 원래 Excel에서 넣어서 수정을 하고 싶은데 잘 안되네요 import openpyxl work_book = openpyxl.load_workbook('data_kr.xlsx') work_sheet = work_book.active for each_row in work_sheet.rows: newdata =[re.sub('-[0-9]{7}', '-*******', each_row[1].value)] work_sheet.append(newdata) work_book.save('new.xlsx') work_book.close() 이렇게 하면 이렇게까지만 되는데 원래 자리에 넣고 싶거든요... 그리고 append를 하면 적어도 A열에 덮어 질줄 알았는데 왜 완전히 다른 행에 써지는지도 모르겠습니다.
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
강좌 기간
안녕하세요. 잔재미코딩 선생님 선생님 강의 잘 듣고 있습니다 제가 기존에 신청한 강좌는 기간이 평생이 아니라 1년이에요 계속 듣고 싶은데 기간만료가 다가옵니다 다음 두 개 강좌가 기간만료가 얼마 남지 않았는데 평생으로 연장해 주실 수 있는지 문의합니다 좋은 강의 감사드립니다 돌배차 드림 1) 파이썬 입문과 크롤링 기초 부트캠프 (파이썬과 데이터 수집 기본) 2) NoSQL DB (몽고DB/mongodb) 기본부터 파이썬/데이터분석 활용까지!제가 선생님 다른 강좌도 수강신청 했습니다. 사이트가 바뀌어서 크롤링 제한이 되길래 크롤링 강좌도 신청을 했구요.이번 신규강좌도 신청을 했어요.IT분야는 계속 바뀌므로 평생수강 기간보다는 1년으로 설정하셨다는 글은강좌 개설하실 때 보았었답니다.계속해서 강의를 보고 싶습니다.좋은 강좌 감사드립니다
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
강좌 기간
안녕하세요. 잔재미코딩 선생님 선생님 강의 잘 듣고 있습니다 제가 기존에 신청한 강좌는 기간이 평생이 아니라 1년이에요 계속 듣고 싶은데 기간만료가 다가옵니다 다음 두 개 강좌가 기간만료가 얼마 남지 않았는데 평생으로 연장해 주실 수 있는지 문의합니다 좋은 강의 감사드립니다 돌배차 드림 1) 파이썬 입문과 크롤링 기초 부트캠프 (파이썬과 데이터 수집 기본) 3) NoSQL DB (몽고DB/mongodb) 기본부터 파이썬/데이터분석 활용까지!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
인터페이스 문의
영한님 안녕하세요. 오랜만에 문의글을 하나 남기고 갑니다. 영한님 강의를 수강한 이후, 조영호님의 오브젝트 라는 책을 요즘 좀 읽어보고 있는데요. (책은 아마 영한님도 잘 아시겠죠..) 책에서 인터페이스와 추상클래스를 활용한 유연한 설계를 강조하는 내용을 보다가 문득 궁금해진 부분이 있습니다. 추상클래스와 상속에 대해서는 JPA 적용에 대한 내용을 영한님께서 설명해 주신 부분이 있는데 인터페이스는 없었던 거 같더라고요.. 아래 캡쳐처럼 Entity 로 설정하고자 하는 클래스 내에 속성으로 인터페이스가 있을 경우, JPA 를 적용하기 위해서는 어떠한 처리가 필요할까요? (노란색 DiscountPolicy 가 인터페이스)
-
해결됨React로 NodeBird SNS 만들기
{children} 적용이 갑자기 왜 안되지?
재밌게 따라하고 있었는데 저기서 회원가입22 텍스트가 출력되야 되잖아요 ?? 근데 왜 <AppLayout>밖에 있는 디브 태그 내용만 출력될까요...?? ㅠㅠ
-
미해결React로 NodeBird SNS 만들기
제로초님
제로초님 안녕 하세요 불변성 관련 해서 궁금한게 있어서 질문 남깁니다. const [ dataInfo, setDataInfo ] = useState( { labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], datasets: [ { label: 'My First dataset', fill: false, lineTension: 0.1, backgroundColor: 'rgba(75,192,192,0.4)', borderColor: 'rgba(75,192,192,1)', borderCapStyle: 'butt', borderDash: [], borderDashOffset: 0.0, borderJoinStyle: 'miter', pointBorderColor: 'rgba(75,192,192,1)', pointBackgroundColor: '#fff', pointBorderWidth: 1, pointHoverRadius: 5, pointHoverBackgroundColor: 'rgba(75,192,192,1)', pointHoverBorderColor: 'rgba(220,220,220,1)', pointHoverBorderWidth: 2, pointRadius: 1, pointHitRadius: 10, data: [65, 59, 80, 81, 56, 55, 40] } ] } ) const Test = useCallback((e) => { e.preventDefault() setDataInfo((prevState) => ({ ...prevState, datasets: [(prev) => { fill:true }] }) ) }, []) Test라는 버튼을 클릭 했을 때 dataInfo state안에 있는 datasets 객체에서 다른 것들은 유지 하고 예를 들어 fill이나 lable 같은 것만 변경 하고 싶을 때는 어떤식으로 처리를 해줘야 하는지 궁금 하여 질문 납김니다.
-
해결됨비개발자를 위한 RPA 강의 (UiPath 입문편)
데이터 스크롤링 컴파일 오류 문의
작성을 하고 시간 테이블 및 강수 확률 테이블이 작성 된걸 보면 22시23시 내일 00시 03시 30%20%60%60%30% 이렇게 테이블이 확인되고 실행하면 아래와 같이 아래와 같이 컴파일러 에러가 발생 합니다.
-
해결됨Vue.js 끝장내기 - 실무에 필요한 모든 것
톰캣 배포시 404에러
먼저, 강의 내용 범위에 벗어난 질문이 아닌가 하여 죄송합니다. npm run build 하여 톰캣에 베포하고 라우터의 이름을 호출하면 HTTP 상태 404 – 찾을 수 없음 타입 상태 보고 메시지 요청된 리소스 [/main]은(는) 가용하지 않습니다. 설명 Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다. Apache Tomcat/8.5.56 오류가 나옵니다. npm run serve 실행시는 화면을 잘 찾습니다. export default new VueRouter({ mode: 'history', routes: [ { path: '/', redirect: '/login', }, { path: '/login', component: () => import('@/views/LoginPage.vue'), }, { path: '/signup', component: () => import('@/views/SignupPage.vue'), beforeEnter: requireAuth(), }, { path: '/main', component: () => import('@/views/MainPage.vue'), beforeEnter: requireAuth(), }, 첫화면(로그인화면 http://121.134.61.139:8080)은 잘 찾지만 라우터관련 설정이 필요한 듯한데. 구글링을 해도 해결이 어렵습니다. http://121.134.61.139:8080/main 부탁드려도 될지요.
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
인텔리제이를 다시 켜면 선생님 처럼 안켜지고 이전 프로젝트가 떠요.
선생님 화면처럼 안뜨고 이전 프로젝트가 뜨네요.. 설정 때문인가요?
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
입력이 안되네요..
자바 버전의 문제인가요? HttpServlet이 입력이 안되네요. 자바 8버전 쓰고 있습니다.