자식 노드가 모두 존재하는 경우에 제거하는 경우의 수 중에서 제일 마지막 fakeParentRootNode 를 처리하는 부분에서 질문이 있습니다. 제거를 할 때 값을 변경하는 방식으로 진행하다보니 루트노드가 제거가 된다고 하더라도 fakeParentRootNode의 오른쪽 자식노드는 계속해서 root 노드의 주소값을 바라보고 있을 것이고, 변경사항이 없을텐데 해당 코드를 넣는 이유가 있을까요? if (fakeParentRootNode.getRightSubTree() !== this.root) { this.root = fakeParentRootNode.getRightSubTree(); }
[3분43초 - router.svelte ] 첫 번째 Route에서 리다이렉트 경로를 "/ariticles" 가 아닌 "/articles/all" 이 맞는 것 같습니다. 6분 41초 영상에서 테스트 장면을 보면 리다이렉트 경로가 /articles/all인 것을 볼 수 있습니다. [3분50초 - router.svelte ] 강의 영상처럼 타이핑을 하고난 후에 에디터(vscode)에 다음과 같은 에러가 나타날 수 있습니다. 임시로 해결할 수 있는 방법은 node_modules 폴더 내부에 있는 tinro 라이브러리의 타입 정의(index.d.ts)를 수정해주시면 됩니다. 참고: https://github.com/AlexxNB/tinro/pull/121/commits/d2251ffed630aac6e76e71856204ead5dd2f6661
만약에 닉네임을 name[react](23) 라고 지었고, id가 20이라면 data.content는 @[name[react](23)](20) 이런식으로 되잖아요. 그런데 거기서 코드에 있는 정규표현식을 쓰면 match는 ](1) 부분을 빼먹게 되고 그 상태에서 arr을 구하면 닉네임이 name[react 으로, id는 1이 아닌23으로 출력되더라고요. 실제로 예시와 똑같이 회원가입 하고 name[react](23)에게 멘션 해보니 클릭했을 때 초깃값으로 파란줄이 name[react 까지만 생성되고 추가로 ](20) 이란 텍스트가 더해지더라고요. (참고로 name[react](23)의 ID가 20입니다.)물론 Link로 넘어가는 것도 안되고요. 그래서 +? 말고 그냥 +로 해보니깐 위처럼 잘 매칭 되는 것 같아서 코드에 적용시켰더니 이제 Link부분은 잘 나오는데 멘션 클릭시 초깃값이 여전히 이상하게 나옵니다. 저 부분은 어딜 고쳐야 되는 건가요?
테스트 도중 No tests found for given includes: [ooo.ooo.oooTests](--tests filter) intellij ide 사용중인데 해당 에러가 뜹니다. 해결방안으로 settin -> Run test using -> Gradle에서 intelliJ IDEA로 변경하면 테스트 케이스가 잘 작동하는데요. 이유가 무엇인가요?? 인텔리제이는 왜 실행이 되고 그레들로는 실행이 안되는지도 궁금합니다. 스프링 부트 2.7.10 gradle 2.6.1 java 11버전입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의에서는 사용자가 입력하는 아이디와 서버에서 직접 생성하는 아이디가 있는데 실무에서도 서버에서 생성하는 아이디를 같이 두나요? 데이터베이스에 저장도 같이 하는지 궁금합니다.
W->R 락 순서는 허용 R->W락 순서는 허용하지 않음인데요. 두 상황 모두 허용하지 않아야되지 않을까해서 문의드립니다. W->R일 경우에도 쓰고있는 있다는 것이 값이 바뀌고 있다는 것인데 Read하는 스레드들이 쓰는 찰나에 전후 다른 값을 읽어가는 것은 문제가 없을까요?? R->W를 허용하지 않은 경우처럼 읽을 때 누가 값을 바꾸면 안되니 허용하지 않는것처럼 R->W, W->R 그게 그말 처럼 느껴져서 질문드립니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 번외편: AWS로 시작하는 서버 운영
안녕하세요. 현재 게임 서버 개발자로 일하고 있습니다. Windows 실습에서 IIS로 서버를 띄웠었는데, 보안상 문제로 그냥 프로그램 시켜서 실행시키는 것은 안 좋다고 했어서요 전 회사와 현 회사에서는 웹 서버 같은 경우는 IIS로 띄웠었고 게임서버 같은경우는 그냥 프로그램을 실행시켜서 띄웠었는데, 보안상 더 괜찮게 하는 방법이 존재할까요? 혹시 보안상 더 좋은 방법이 존재하는지 궁금합니다 ㅠ
JOIN FETCH를 이용하여 쿼리를 작성하고 테스트 해보던 중에 이해가지 않는 동작이 발견되어 질문드려요! JOIN FETCH로 채우려는 필드가, 1차 캐시에 엔티티가 이미 존재할 때에, 해당 필드가 null 이 되는 현상입니다. 오히려 영속성 컨텍스트를 비워주면 프록시를 가져오는 것 같습니다... 어떻게 동작하는 건지 질문 드립니다! 테스트 메서드를 간단하게 작성하며 생성 및 조회를 하나의 트랜잭션에서 진행했습니다. 엔티티는 간략하게 다음과 같습니다. @Entity public class Collection { @Id @GeneratedValue private Long id; @OneToMany(fetch = FetchType.LAZY, mappedBy = "collection", cascade = CascadeType.ALL, orphanRemoval = true) private List<ReviewInCollection> reviews = new ArrayList<>(); // ... } @Entity public class ReviewInCollection { @Id @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "COLL_ID") private Collection collection; @Id @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "REV_ID") private Review review; // ... } @Entity public class Review { @Id @GeneratedValue @Column(name = "REV_ID") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "PLACE_ID", nullable = false) private Place place; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "MEMBER_ID", nullable = false) private Member member; // ... } 문제가 발생한 코드입니다. @Test void updateReviewsTest() { final SessionImplementor session = em.unwrap(SessionImplementor.class); final PersistenceContext pc = session.getPersistenceContext(); // mock up //!=========================================================================================!// em.flush(); // em.clear(); Collection coll = em.createQuery( "select c from Collection c " + "join fetch c.reviews cr " + "join fetch cr.review r where c.id = :collId ", Collection.class) .setParameter("collId", 1L) .getSingleResult(); coll.getReviews() // ReviewInCollection .stream() .map(cr -> cr.getReview() // Review → NPE .getId() ) .toList(); } Cannot invoke "com._2cha.demo.review.domain.Review.getId()" because the return value of "com._2cha.demo.collection.domain.ReviewInCollection.getReview()" is null java.lang.NullPointerException: Cannot invoke "com._2cha.demo.review.domain.Review.getId()" because the return value of "com._2cha.demo.collection.domain.ReviewInCollection.getReview()" is null JOIN FETCH 를 통해 Collection .reviews ReviewInCollection .review 를 채워 오고자 했는데, Collection → for each ReveiwInCollection → review 가 null 로 채워지게 됩니다. > 쿼리 이전의 영속성 컨텍스트입니다. > 쿼리 이후 영속성 컨텍스트입니다. 주석 처리한 em.clear() 를 실행하면, null 이 아닌 프록시로 가져와서 LAZY 방식으로 Review를 채웁니다. LAZY 또한 예상한 동작이 아니긴 하나, 일단 왜 null 이 들어가는지가 가장 궁금합니다... 영속성 컨텍스트와 JOIN FETCH의 충돌이 있는 걸까요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요. 좋은 강의 감사합니다. restaurant_provider.dart의 RestaurantStateNotifier getDetail() 메소드에서 state = pState.copyWith( data: pState.data .map<RestaurantModel>((e) => e.id == id ? resp : e) .toList(), ) 이 구문은 array 전체를 돌아야되는 반면에 pState.data[pState.data.indexWhere((element) => element.id == id)] = resp; state = pState.copyWith( data: pState.data, ); 이 구문은 array를 index를 찾을때까지만 돌면되서 더욱 효율적인것이 아닌가 싶어서 혹시 위와같이 map으로 로직을 구성하신 이유가 있는지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. cpp파일을 다른 프로젝트폴더로 옮기고 싶어서 솔루션폴더안에 직접적으로 넣어줬는데 비주얼스튜디오에선 보이질않네요. vs코드에선 폴더안에 파이썬코드를 넣어주면 vs코드 프로그램에서도 자동으로 파일이 업데이트됐는데 비주얼 스튜디오는 안되는건가요?
안녕하세요 강사님~ Gun Grab관련 문의드립니다. 실행하면 컨트롤러 동작에는 문제가 없는데 Grab만 안되어서 문의드립니다. 밑에 동일증상 게시글이 있어 확인해봤는데 다 설정이 잘 되어있는데 안되서 질문드립니다. 혹시 제가 XR Interaction Toolkit을 2.3.1버전을 쓰고 있는데 그게 원인일까요?
지연 로딩을 사용하면 그 객체를 사용할 때 프록시 객체에서 영속성 컨텍스트에 연결을 요청해서 진짜 객체를 가져오는 거로 알고 있는데요 이번에는 단순히 Order만 Return 했기 때문에 Order객체 안에 있는 프록시 객체(Member, Delivery, OrderItems)는 사용할 일이 없는 것 아닌가요 ? 왜 프록시 객체를 사용하려다 문제가 발생했는지 알 수 있을까요?
앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
강의에서는 DetailViewController 에서 새 멤버를 추가하는 로직과 업데이트하는 디테일뷰 로직을 같이 사용했는데, DetailView와 똑같은 AddMemberView를 하나 더 만들어서 로직을 분리하는 것에 대해서는 어떻게 생각하시나요? 강의 코드는 효율적이긴하지만 협업을하거나 유지보수를 가정하고 구현했을 때는 조금 복잡할 수도 있다는 생각이 듭니다! 어떤것이 더 좋은 코드인것인지에 대한 의견을 듣고싶습니다!물론 정답이라는 것은 없겠지만요!
이벤트 Repository강의 중 Event 클래스에 private Integer Id; 이 한줄의 위치가 맨 위가 아니면 에러가 납니다. 왜 그런건가요? (저는 강의 순서대로 입력하느라 아래쪽에 입력했었습니다.) 에러내용은 : org.springframework.orm.jpa.JpaSystemException: Unknown integral data type for ids : java.lang.String