안녕하세요 선생님, 애니메이션 블루프린트 수강 중에 있는데, 제가 무슨 설정을 잘못 건드린 건지 세팅을 안한 건지는 몰라도 처음에는 캐릭터가 방향키 대로 애니메이션 렌더링이 잘 되며 이동을 하는데, 계속해서 3~5초 정도 이동하면 갑자기 아래처럼 애니메이션이 고정된 상태로 이동만 합니다..ㅠㅠ 이동을 멈추고 다시 이동 하면 다시 또 렌더링 잘 되는 상태에서 이동을 하는데, 이 또한 3~5초 정도 이동하면 위와 똑같이 애니메이션이 멈춘 상태로 이동만 합니다.. 마우스 이동하는 방향대로 화면 전환이 되고, 그 방향대로 캐릭터가 바라보는 방향도 잘 이동하는데.. 왜 이동을 계속하면 애니메이션 렌더링이 멈춰버릴까요? ㅠㅠ 찾아보려고 해도 안나와서 문의 드립니당 (MoveStart 나 MoveStop 에 해당하는 애니메이션들이 잘 반영되는 것으로 보아 애니메이션블루프린트 설정은 잘 한 거 같기는 한데,, 뭐가 문제인지 모르겠네요.. )
sts로 mvc 하다가 다시 강의듣기 시작해서 그런지 헷갈려서요. 제네릭스는 어느 경우에 쓰이는 건가요? 프로젝트 할때 HashMap을 썼던 것 같거든요. Controller - jsp (ajax) @ResponseBody @PostMapping("/admin/bmember") public Map<String, Object> bmemberPost(@RequestBody ManagerVO manager){ Map<String, Object> map = new HashMap<String, Object>(); boolean res = managerService.updateManager(manager); // 승인 -> 업데이트 -> bm_approval( 0 -> 1 ) // 동시에 getMakeStore 를 하면서 st_num을 만들고, bm_id값만 넘겨주고, st_approval default값 0이 주어짐 -> storeVO 데이터 저장! boolean store = storeService.makeStore(manager); // 상점등록 - (st_num) st_bm_id를 이용해서 insert // => 매장등록 (plusinfo) insert -> update 로 변경. // map.put("store", store); // 화면단에 store정보를 보낼 필요는 없음. 그냥 일만하러 왔다. map.put("res", res); return map; }
59강 MariaDB 컨테이너를 새로 추가하려는 과정에서 원활하게 작동하지 않아 기다리던 중 해당 오류들이 발생한 상황입니다. 부여받은 IP 주소로 그냥 접속했을 때도 구현한 페이지가 나오지 않고 로딩만 계속 되다가 응답 시간이 너무 오래걸린다는 페이지가 뜹니다. docker cache도 삭제해보고, 서버도 restart 해봤는데 동일한 증상이 지속되고 있어 강의 진도가 못나가고 있는 상황입니다 ㅠㅠ 코드를 따로 수정한 것은 없어서 서버 운영에 있어 오류가 발생한 것 같은데 도움 주시면 감사하겠습니다!
public List<OrderQueryDto> findAllByDto_optimization() { List<OrderQueryDto> result = findOrders(); List<Long> orderIds = result.stream() .map(o -> o.getOrderId()) .collect(Collectors.toList()); List<OrderItemQueryDto> orderItems = em.createQuery( "select new jpabook.jpashop.repository.order.query.OrderItemQueryDto(oi.order.id, i.name, oi.orderPrice, oi.count)" + " from OrderItem oi" + " join oi.item i" + " where oi.order.id in :orderIds", OrderItemQueryDto.class) .setParameter("orderIds", orderIds) .getResultList(); //최적화(Lambda사용) Map<Long, List<OrderItemQueryDto>> orderItemMap = orderItems.stream() .collect(Collectors.groupingBy(orderItemQueryDto -> orderItemQueryDto.getOrderId())); result.forEach(o -> o.setOrderItems(orderItemMap.get(o.getOrderId()))); return result; } 여기서 map을 사용하는 코드가 있는 경우에는 쿼리를 한 번 날리고 map으로 가져와서 값을 세팅하기 때문에 쿼리가 총 2번 나가는 거고 그 부분이 없으면 어떤 방식으로 쿼리가 나가는 건가요?
안녕하세요! 해당 영상을 보다 질문이 생겨 질문 남깁니다:) 해당 영상에서 인터럽트를 disable 시키는 방법으로 interrupt controller 에서 cpu로 가는 신호를 mask하는 방법과 interrupt controller에 들어가는 신호를 막는 방법이 있다고 하셨는데, 이때 첫번째 방법은 cpsid i 명령어를 사용하여 primask 레지스터를 바꾸는 방법이고, 두번째 방법은 NVIC 내부 레지스터를 바꾸는 방법이 맞는건가요? 그렇다면 cpsid i 명령어를 썼다가 cpsie i 명령어를 쓰면 그사이 발생한 인터럽트들이 한번에 발생하는 것인지 궁금합니다! (두번째 방법으로 disable된 인터럽트들은 다시 enable되어도 그사이에 발생한 인터럽트가 발생되지 않는지도 알려주세요) 또한 여기서 말하는 interrupt controller가 NVIC가 맞는지 그렇다면 NVIC와 EXTI의 차이점은 무엇인지 알려주세요! 질문이 많아 죄송합니다ㅠㅠ
안녕하세요 큰돌님! go 재귀 함수에 대해 이해가 되지 않는 부분이 있습니다. 제가 완탐에 대한 이해가 부족해서 함수 호출에 대한 로직이 이해가 안되는 것 같습니다. 질문 Board d = c; 로 원본과 동일한 보드를 생성하고 d._move()하는 것 까지는 이해를 했습니다. 그런데 그 다음에 왜 d._rotate90();가 아닌 c._rotate90();를 하는지 모르겠습니다. move한 다음 rotate, 또 다시 move한 다음 rotate 과정을 반복하려면 d._rotate90();가 되어야하는 것 아닌가요..? d._move(); go(d, here + 1); c._rotate90(); 이 과정만으로 5번 이동시키는 완탐을 진행할 수 있는지 이해가 안됩니다 ㅜㅜ 혹시 함수 호출이 어떻게 진행되는지 그림으로 설명해주실 수 있나요? 제가 생각한 완탐 방식은 아래와 같습니다. 함수 호출 순서가 go(d, here + 1); c._rotate90(); 인데 그러면 마지막 호출되는 함수가 return 되고 rotate과정이 진행되는게 아닌가요? rotate함수가 언제 실행되는지 잘 모르겠습니다. 제가 생각하는 함수 호출 순서는 아래 그림과 같습니다. 뭔가 그림이 카오스네요.. 큰돌님 코드 void go(Board c, int here){ if(here == 5){ c.get_max(); return; } for(int i = 0; i < 4; i++){ Board d = c; // 동일한 구조체 생성 d._move(); go(d, here + 1); c._rotate90(); } return; }
분배법칙의 작동방법 이해가 어려워 타입스크립트 교과서를 보던 중 모르는 부분이 생겨서 질문드립니다! 해당 내용은 타입스크립트 교과서 p.111에 있는 내용인데요 type R<T> = T extends string ? true : false; type RR = R<never>; 이 코드의 설명 부분이 아래와 같이 되어 있습니다. RR 타입이 true 가 아니라 never 인 이유는 T 가 never 가 되면서 분배법칙이 일어났기 때문이다. never 는 공집합과 같으므로 공집합에서 분배법칙을 실행하는 것은 아무것도 실행하지 않는 것과 같다. 따라서 결과는 never 다. 설명이 잘 이해가 되지 않아 질문 드립니다! 분배법칙이 일어났다는 것은 never 가 never|never 로 유니언으로 분리되서 각각 타입검사를 하게 되는건가요? 그렇다면 never extends string ? true : false 가 되어서 분배 되어 각각 타입검사를 해서 true | true 가 되고 최종적으로 true 가 되어야하지 않나요? 공집합에서 분배법칙을 실행하는 것은 아무것도 실행하지 않는 것이라는 말이 무슨 말인지 잘 모르겠습니다..
안녕하세요, 우선 좋은 내용의 강의 감사드립니다. 이어 Spring Security 계층 권한 설정 방법에 대해 아래와 같이 몇 가지 질문을 드리고자합니다. [질문 항목] DB를 사용해서 계층 권한 테이블 을 선언하고 부모, 자식 관계의 권한 데이터(row)를 등록해 놓은 상황에서 프로그램을 실행시키게 되면 현재 이 계층 권한 테이블에 있는 데이터에 한해서만 Security 권할 설정이 이루어지는 것인가요? 만약, 추후 DB에 직접 새로운 계층 권한 정보 가 등록된다면 해당 프로그램이 재시작 되어야만 변경된 계층 권한 정보가 동기화되는 것인가요? 1번 항목과 비슷한 맥락으로 한 회원이 서비스 이용중 자신의 권한이 사이트 관리자에 의해 변경되었다면 변경된 권한이 적용되는 시점에 대해서도 궁금합니다. Spring Security 기본 정책(?)상 계층 권한을 나타낼 때에는 문자열 형태로 권한 관계를 > 를 사용하여 표기하는 것을 볼 수 있었는데요. 이렇게 문자열 형태가 아닌 다른 형태(예를 들어 Map 등) 로도 표기가 가능한가요? 만약, 이런 설정 방법이 존재한다면 가이드를 제공해주실 수 있을까요? 아직 강의를 완강한 것이 아니기에 질문 내용이 부족한점 양해드리며, 미리 답변 감사드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 기본 객체들 중 request response session servletContent는 더이상 사용이 안된다고 에러 메시지가 나오던데요 확인 가능할까요? The 'request','session','servletContext' and 'response' expression utility objects are no longer available by default for template expressions and their use is not recommended. In cases where they are really needed, they should be manually added as context variables. at org.thymeleaf.standard.expression.StandardExpressionObjectFactory.buildObject( StandardExpressionObjectFactory.java:207 ) ~[thymeleaf-3.1.2.RELEASE.jar:3.1.2.RELEASE] 공식 문서를 보니깐 ctx.session 이런식으로 붙이라고 나와서 붙이니깐 에러는 안뜨는데 request response servletContent는 내용이 안뜨네요 세션은 뜨는데 좀 다르게 뜨고
// Fill out your copyright notice in the Description page of Project Settings. #include "Game/ABGameMode.h" #include "ABGameMode.h" //#include "Player/ABPlayerController.h" AABGameMode::AABGameMode() { UE_LOG(LogTemp, Warning, TEXT("inflearn1")); static ConstructorHelpers::FClassFinder<APawn> ThirdPersonClassRef(TEXT("/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.BP_ThirdPersonCharacter_C")); if (ThirdPersonClassRef.Class) { DefaultPawnClass = ThirdPersonClassRef.Class; } static ConstructorHelpers::FClassFinder<APlayerController> PlayerControllerClassRef(TEXT("/Script/ArenaBattle.ABPlayerController")); if (PlayerControllerClassRef.Class != nullptr) { UE_LOG(LogTemp, Warning, TEXT("PlayerControllerClassRef.Class found: %s"), *PlayerControllerClassRef.Class->GetName()); PlayerControllerClass = PlayerControllerClassRef.Class; } else { UE_LOG(LogTemp, Error, TEXT("PlayerControllerClassRef.Class not found.")); } //PlayerControllerClass = AABPlayerController::StaticClass(); } 위 코드를 입력했을 때 실행 결과는 아래와 같습니다. 제가 경로를 잘못 넣었다기에는 수업자료를 그대로 복붙도 해보았으며 /Script/CoreUObject.Class'/Script/ArenaBattle.ABPlayerController' 위 경로 또한 5초전에 레퍼런스를 복사해 온 경로입니다