안녕하세요. 현재 대학생이고 김영한님 강의를 본 후 프로젝트를 진행중입니다. 다름이 아니라, 현재 Tale과 Keyword의 다대다 연관관계를 피하기 위해 중간에 TaleKeyword라는 중간 테이블을 두었고, Tale은 Member 테이블과 일대일 연관관계를 설정해두었습니다. 동화(Tale)를 키워드, 회원정보에 끼워넣고 생성하는 API는 완성하였고 DB에 쌓이는 것까지 확인했습니다. 하지만, memberId를 이용해서 조회하려고 하니, 맨 처음 memberId가 1인 회원의 처음 저장한 taleId 1번의 데이터와 memberId가 2인 회원의 처음 저장한 동화인 taleId가 4인 동화가 조회가 안됩니다.(나머지 taleId 2, 3, 5번 데이터는 조회가 잘됩니다.) 쿼리문은 다음과 같이 짰고 영속성 문제인 것 같은데, 왜 첫번째 데이터만 조회가 안되는 걸까요? // 동화 목록조회(페이징) public List<Tale> findTalesByMemberId(Long memberId, int offset, int limit) { return em.createQuery( "select t from Tale t" + " join fetch t.member m" + " join fetch t.image.taleImage ti" + " where m.id = :memberId" + " order by t.createdTime desc", Tale.class ) .setParameter("memberId", memberId) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); }
const onCreate = useCallback((author, content, emotion) => { const created_date = new Date().getTime(); const newItem = { author, content, emotion, created_date, id: dataId.current, }; dataId.current += 1; setData([newItem, ...data]); // initial state인 data = [] 로 인한 문제 }, []); 강의 중에서 useCallback 에서 data 값 갱신 문제에 질문이 있습니다. 우선, data 가 일반적인 값 참조처럼 일어나지 않는다는 점을 이해했습니다. 가장 마지막에 onCreate 가 업데이트되는 시점의 data 값을 기억해 두고 사용한다는 점도 이해했습니다. 그런데 왜 이렇게 동작하는지 궁금합니다. 구체적으로 말하면 Memoization이 어떻게 구현됐기에 이런 문제가 발생하는 건가요? 이전 값을 그대로 가지고 있으려면 단순히 참조 주소를 복사하는 식으로는 안 되고 Deep Copy가 일어나야 하지 않나요? 그리고 Deep Copy를 통해 Memo를 구현했다기에는 석연치 않은 부분들도 있습니다. 우선 매번 Deep Copy를 수행하는 식으로 Memo를 구현했다면 성능 문제가 발생하지 않을까요? 게다가 depth에서는 Shallow Compare 가 일어나니까 Deep Copy를 통해 구현하지는 않았을 것 같습니다. 이전 상태를 기억해 둔다는 방식은 이전 상태에 state 변수들을 내부에 따로 복사해서 저장해 둔다는 개념으로 이해되는데, 제가 예상하는 대로 Deep Copy를 통해 이전 값을 저장해 두는 건지 아니면 제가 놓친 부분이 있는지 궁금합니다.
'컴퓨터가 기억공간을 관리하는 방법' 강의를 듣고 있습니다. 최 선생님께서는 캐시 메모리와 RAM이 존재하는 이유가 CPU의 레지스터와 HDD, ..... 등의 외부 저장장치 사이의 속도 차 때문이라고 말씀하셨습니다. 메모리들이 서로 정보를 정확하게 주고받고 원활하게 소통하기 위해서 속도 차이를 줄여야 하는데 이를 위하여 캐시 메모리와 RAM이 있는 것으로 저는 이해하였습니다. 옛날에 데스크탑 본체를 십자 드라이버로 나사를 풀고 내부를 보다가 'PCI' 라는 버스(Bus)가 있음을 보게 되었습니다. 그런데 여기에서 궁금한 점이 있습니다. 혹시 이 버스라는 하드웨어를 통하여 속도 차이가 나는 메모리들이 정보 교환을 하는 것인가요? 버스는 속도가 빠른 메모리로부터 정보를 받아들여 주파수를 낮춰서 속도가 느린 메모리로 정보를 전달하거나 그 반대의 일을 하는 하드웨어인가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님, http://boj.kr/a982837cbe674880af718ecd4566f9f5 이렇게 풀었는데, 예제는 다 맞게 나오는데 혹시 제가 놓친 테스트케이스가 있을까요? 아니면 다른 부분이 틀렸을까요? 감사합니다.
강사님께서 강의 도중에 복사하시는 코딩 자료랑 강의노트는 어디서 다운로드 받을 수 있을까요? 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
수업에서는 다양한 예시를 위해 주문과 배송 엔티티를 일대일 관계로 나눠서 만들었지만 db공부를 하던 중 "모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션을 하나로 합친다." 라는 것을 보았습니다. 위 글을 바탕으로 주문엔티티는 배송엔티티를 무조건 가지고 배송엔티티도 주문엔티티를 가지니 하나의 엔티티로 합치고 주문의 기본키와 배송의 기본키 두개를 합쳐 하나의 기본키로 만든다는 생각을 했습니다. 실무에서는 주문과 배송을 각각 나누어 설계하는지 아님 합쳐서 설계하는지 궁금합니다. 다시말해 1대1관계를 나눠서 설계하는지 궁금합니다.
가상 환경 실행 하는 방식 == Activate파일을 실행로 봐도 될까요? 만약 완전히 새로운 가상환경을 만들고 싶을 때는 어떻게 해야하나요..? 마지막으로 터미널에 powershell이 자동으로 사용되는데 선생님처럼 $이 안뜹니다.. 어떻게 해야 제 딕셔너리 주소가 아니라 $가 뜨죠?
안녕하세요, 강의 잘 듣고 있다가 다른 컴퓨터로 들을 일이 있어서 소스를 다운 받고 해당 부분을 지우고 다시 들었습니다. ModelandView에서 new-form을 연결했고, properties에서 prefix, suffix를 설정하고 돌리는데 계속 404가 나옵니다. webapp 폴더 있고, 그 아래 WEB-INF 폴더도 잘 있습니다. 뭐가 문제일까요? 스크린샷으로 한계가 있을 거 같아 zip으로 보내려고 하는데 어디로 보내드리면 될까요??
강의를 따라서 어플을 완성한 뒤에 파이어베이스를 만지다가 실수로 파이어베이스 파일들을 전부 삭제 시켰습니다. 그래서 다시 실행시켜보니 리얼타임 데이터베이스의 파일들은 다시 생성이 되어서 채팅기능이 잘 작동하지만 storage의 message/ 파일이 다시 생성이 되지않아 사진 업로드 기능이 작동되지 않습니다. 이거 혹시 해결 방법이 있을까요? 밑에는 사진 업로드 눌렀을 때 나오는 오류 코드입니다
안녕하세요 3) 인증 처리자 - AjaxAuthenticationProvider 수업에서 ajax 요청 날린 뒤 응답이 <Response Body is Empty>가 안뜨고, HTML 파일(정상적인 home 화면)이 응답되는 현상이 있습니다. https://github.com/kickhen/springsecuritypractice/tree/master 왜 저는 html이 리턴되는건지 무엇을 빼먹었는지 궁금합니다. 알려주시면 감사하겠습니다.