log(filter( n => n%2, function *() { yield 1; yield 2; yield 3; yield 4; yield 5; }() )); 위 코드에서 function *() {...} generator로 인자로 넘어가는데, 혹시 function *() {...}() 에서 마지막에 ()가 붙는 이유가 무엇일까요? 제가 빼고 테스트를 해보니 에러가 발생하는데, 이유를 모르겠습니다. 설명 부탁 드립니다. 감사합니다.
SSR로 돌아가는 페이지를 연속해서 요청하면 처음에는 데이터가 나오고 두번째 클릭 했을 때 hydrate로 인해 STATE가 초기화되어서 데이터가 없어지더라고요 그래서 reducer에서 case HYDRATE: return {...state,...action.payload}; 이걸 없애니까 SSR로 돌아가는 페이지를 연속해서 요청하면 데이터가 잘 나오더라고요 case HYDRATE: return {...state,...action.payload}; 이거 없애면 무슨 문제가 생기나요?
안녕하세요 앨런님! 데드락에 대해 강의를 듣고 정리하던 중 궁금한 점이 생겨 질문 남깁니다! 1. 데드락을 “ 한정된 자원을 여러 스레드에서 사용 하려고 할 때, 자원을 얻지 못해 다음 처리가 어려운 상태”라고 정의할 때, “ 동기 작업이 현재 스레드가 필요한 경우 (3-2. sync 메소드에 대한 주의 사항)” 에서 발생하는 데드락 상황은 얻으려고 하는 “한정된 자원”을 무엇으로 정의 할 수 있을까요? 저 상황에서 데드락이 발생하는 이유는 sync 로 task 를 보내서 멈춰있는 스레드에 다른 task 가 다시 할당되어서 더 이상 서로 작업을 진행할 수 없는 상황이기 때문이라고 이해하고 있습니다. 즉, 스레드는 task 가 끝나길 기다리고 task 는 끝나려면 스레드에서 실행이 되어야하는데 해당 스레드가 멈춰있는 상태 이기 때문에 서로 다음 상황으로 진행을 위한 조건이 충족이 안되고, 데드락이 발생한다! 까지는 이해가 되는데 여기서 데드락의 정의에 따라 “스레드가 얻고자 하는 한정된 자원”을 각각 무엇으로 표현할 수 있을지 궁금합니다. 이러한 데드락 상황을 “한정된 자원을 여러 스레드에서 사용하려고 할 때, 자원을 얻지 못함” 이라는 정의에 포함할 수 있을까요? 아니면 데드락의 정의를 그냥 다음 조건으로 가지 못하는 막힌 상태..? 정도로 넓게 이해해야할까요? 2. 또한 데드락에 대한 간단한 해결 방법으로 serial queue 사용을 말씀주셨습니다. 한정된 자원을 여러개의 스레드가 동시에 필요로 할때 데드락이 발생할 수 있기 때문에, 한번에 하나의 스레드만 자원(들)에 접근하도록 serial queue 를 사용하면 해결 된다는 의미로 말씀 주신것 같습니다. 하지만 이전 강의에서 본 “동기 작업이 현재 스레드가 필요한 경우”는 serial queue를 사용하더라도 데드락이 발생하게 됩니다. (ex. 메인 스레드에서 DispatchQueue.main.sync 호출) 뭔가 데드락 발생 상황과 해결 방안이 1:1로 대응되는 것 같지 않아 혼란이 오는 것 같습니다. 이런 상황은 다른 해결 방안으로 말씀 주신 “객체 등 설계시에 주의”로 해결을 해야하는 거겠지요? 혹시 잘못 이해하고 있는 부분이 있다면 같이 말씀 부탁드리겠습니다 . 감사합니다 !
테스트 케이스에 여는 괄호가 더 많을 때에 대해서는 고려가 안되어 있는 것 같아요! 물론 강사님께서 짜신 코드대로 하면 문제가 없지만, 제가 미리 풀어봤을 때 닫는 괄호가 더 많아지면 NO를 출력하도록 해놓았는데, 여는 괄호가 더 많았을때는 고려하지 않고 코드를 짰는데, 모든 케이스를 통과했습니다. 예를 들어 (((( 로 테스트 케이스가 들어오는 경우가 추가 되어야 할 것 같네요!!^^
수업과는 조금 관계없는 질문인데 한번에 여러줄 주석처리할 때마다 너무 불편해서요 ㅠㅠ script 태그 내인데도 ctrl + / 누르면 자꾸 <!-- --> 이렇게 주석처리가 됩니다 심지어 그러고도 빨간줄이 떠요 (...) 강사님께서 하시는 것처럼 //로 주석처리되게 하는 방법이 있을까요?
안녕하세요 강사님! 활용편 1,2편에 이어서 이번 실전편도 듣고 있습니다. 활용편 2편에서 DTO로 조회하시는 걸 알려주셨는데요. 언듯 보기에는 DTO로 조회하는 것과 프로젝션으로 조회하는것이 비슷해 보이는데, 제가 지금 이해하기로는 - DTO의 경우 엔티티의 모든 필드를 조회해서 DTO에 넣어준다음에 반환 - 프로젝션의 경우 프로젝션에 선언한 필드만 조회해서 반환 하는 차이만 있는 걸까요? 아니면 제가 잘못알고있거나 이해하지 못한 부분이 있는지 궁금합니다 ! 만약 단순하게 하나의 엔티티를 조회한다 할 경우, DTO와 프로젝션 어느 쪽을 더 선호하시는 지 궁금합니다 ! 감사합니다 !
@InitBinder protected void initBinder(WebDataBinder binder){ binder.setValidator(new ContentValidator()); } 이 부분을 한번만 코딩해 놓고 함수 파라미터에 @Valid 이것을 붙여주면 아래와 동일한 내용이 되는 건가요? ContentValidator validator = new ContentValidator(); validator.validate(contentDto, result);
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "writer", "writer is empty."); 여기서 문자 "writer" 이거가 어떻게 ContentDto 클래스의 writer필드인지 알 수 있는건가요? 스프링이 자동으로 알아서 인식하는 건가요?
▣ 출력설명 첫째 줄에 홀수들의 합을 출력하고, 둘째 줄에 홀수들 중 최소값을 출력한다. 이라 적혀있는데, 저희가 짠 코드는 answer [] 에 sum, min 을 push 한 뒤 answer 를 return 해 [256, 41] 이라 한 줄에 출력되지 않습니까? 이 출력되는 답이 질문에 부합하는 답인가요?? 아니면 256 41 따로 이렇게 나오게 코드를 재작성해야하는건가요?
윈도우에서 pip pip3로 PyMySQL을 설치한 뒤에 설치된 것도 확인하고 파이썬 ide도 재실행 해봤는데 import pymysql에서 오류가 뜹니다. ModuleNotFoundError : no module named 'PyMySQL' 이거는 어떻게 해결해야 하나요?