보드를 처음 생성하고 나서 2번째 위치에 있는 doingList를 3번째 위치인 doneList로 이동하고 나서 ADD ANOTHER LIST로 리스트를 추가하면 새로운 리스트가 맨 마지막 리스트가 아닌 Todo 리스트 옆인 2번째 위치에 추가가 되는데 왜 그런건가요?? 새로고침하면 제대로 마지막으로 리스트가 이동되어지는 것으로 나오는데 새로고침 안할 경우에 그렇게 보여지는 이유가 뭔지 궁금합니다.
순수 GA4로 이벤트를 생성하고 싶습니다. GTM 통해서 연결했고 real-time과 GTM debugger 통해서 봤을 때 정상적으로 연결된 것을 확인했습니다. GA에서 Create Event를 생성하였는 데, 리스트에서는 보이지 않는 데 그 이유가 궁금하여 강의를 다시 찾아보니 24시간 이내 해당 이벤트가 발생하면 자동으로 이벤트 목록이 생성된다고 말씀주신 부분있어서 내일 확인하면 있으려나 생각하고 있습니다. 다만 이 부분에서 궁금한 점은 그러면 24시간 이내 사전에 정의한 이벤트가 발생되지 않으면 GA에서는 어떻게 처리 되는 건가요? 또한 Create Event를 다시 눌렀을 때 보이는 정의된 이벤트와 Modify를 눌렀을 때 나오는 이벤트 명이 다르게 노출되는 데 어떠한 차이가 있는지도 궁금합니다. 위와 관련된 캡쳐이미지 또한 첨부 드려봅니다.
안녕하세요. 강의를 잘해주신 덕분에 강의를 잘 따라가고 있습니다. 이번 강의에서 강의결과와 다르게 나오고 또한 그것이 이해가 되질 않아서 질문을 드립니다. 제가 어제 " Kafka Source Connect 사용" 이라는 전 강좌를 듣고 터미널 상에서 exit를 하지 않고 세션만 종료한후 컴을 종료하고.. 오늘 다시 같은 터미널에서 강의를 이어나갔습니다. (저는 mac사용자 입니다) 그런데 결과가 아래와 같이... 어제 작업했던 내용이 한꺼번에 들어가 있었습니다. 혹시나 하는 마음에 싱크를 새로 만들어 mydb2와 연결해봤는데도 마찬가지였습니다. 강의를 따라가며 아래와 같이 topic 목록 리스트를 확인해보았습니다. 제 생각으로는 강의처럼 오늘 등록한것만 나와야 하지 않을까 생각되었습니다. 토픽이 목록에 없는것을 확인했고 나중에 만든거니까요.. 그래서 consumer를 --from-beginning 옵션을 주어 출력해보았고 결과는 어제의 목록까지 모두 출력하였습니다. 그렇다면 이 상황은 토픽 목록에는 없는데.. 사실은 토픽이 존재했다는것인가요? 강의중에 토픽을 삭제하는 방법에 대해 설명하지 않으셨기 때문에 제가 임의적으로 토픽을 삭제하지 않았고 방법 또한 모릅니다. 토픽을 임의적으로 삭제 해야만 완전한 삭제가 되는것인지.. 토픽목록을 확인하는 명령어로 확인했을때 원하는 토픽이 보이지 않으면 정말로 없는것인지 궁금합니다. 그리고 토픽을 삭제하는 방법 또한 알았으면 좋겠습니다. 감사합니다.
vscode로 def __del__ 실습중이었습니다. 소멸자에 print('소멸자 실행!')을 작성하고 del키워드로 객체 하나를 지웠는데 의도한 바로는 소멸자 실행! 이 객체를 하나만 지웠기에 한번만 나오고 car_count가 2가 나오는 것이었습니다. 그러나 해당 print문이 2번 더하여 총 3번이 나오길래 뭘 잘못건드렸는지 싶었습니다. 그래서 디버깅 모드(f5)로 중단점 걸고 살펴보았는데 이번에는 의도한대로 한번만 프린트 되더군요.. 제 생각인데 파이썬 프로그램이 종료되면서 자동적으로 객체가 사라져서 소멸자가 자동으로 나머지 객체 2개도 삭제시켜주어서 그런건가요? 만약 그렇다면 디버깅 모드랑 일반 Run python file in Terminal로 실행시킨 각각의 결과값들이 다를 수도 있나요?
질문이 있습니다. heroku 배포 관련입니다. 꼼꼼히 공부하다보니 이런저런 궁금증이 많이 생기고 추리고 추려 질문해봅니다 ㅠㅠ.. 첫번째로 아래 첫번째 사진과 같이 배포 상태일때 static을 해주는 이유가 궁금합니다. 1. 자바스크립트와 css파일을 꼭 static으로 명시해줘야 heroku가 접근가능한건가요? static은 단순히 URL을 통해 접근할 수 있는 것들을 선언하는 걸로 알고있는데 경우가 다른거같아서요.. 2. 그리고 경로가 현재 서버폴더인데 ../client/bulid 인줄알고있는데 저렇게 해도 되는 이유가 궁금합니다..! 3. 그리고 두번째 사진에서 질문드리면 궁금한게 heroku는 heroku-postbuild 라는 저 script를 보고 저기가 서버폴더라고 인식하는건가요? client와 server 2개의 폴더가 있는데 server 폴더를 인식한게 궁금합니다.. 4. 마지막으로 heroku-postbuild에서 저렇게 선언을 해놓으면 build를 안한 상태로 github에 올려놔도 heroku가 저 스크립트를 실행함으로써 빌드를 하고 그에 맞는 접근을 한다고 이해했는데 맞나요? 그리고 client는 npm install 작업을 해주는데 서버는 왜 선언이 없는지 궁금합니다..
SessionRef Service :: CreateSession () { SessionRef session = _sessionFactory (); session -> SetService ( shared_from_this ()); if ( _iocpCore -> Register ( session ) == false ) return nullptr ; return session ; } ----------------------------- using SessionFactory = function < SessionRef ( void )>; ------------------------------- _sessionFactory() F12로 진입 _Ret operator ()( _Types ... _Args ) const { if ( _Empty ()) { _Xbad_function_call (); } const auto _Impl = _Getimpl (); return _Impl -> _Do_call ( _STD forward < _Types >( _Args )...); } ---------------------------------- 위의 _Getimpl() F12로 진입 _Storage _Mystorage ; enum { _EEN_IMPL = _Small_object_num_ptrs - 1 }; // helper for expression evaluator _Ptrt * _Getimpl () const noexcept { // get pointer to object return _Mystorage . _Ptrs [ _Small_object_num_ptrs - 1 ]; } ---------------------------------- 강의에서 functional 헤더를 끌고와서 sessionFactory를 사용해주셨는데요! _sessionFactory가 결국 void를 받아서 SessionRef를 리턴해주는 함수인 것은 알겠는데, 메모리 할당이 어떻게 되는건지 모르겠습니다. 애초에 이게 궁금했던 이유가, SendBufferChunkRef SendBufferManager::Pop() 에서 return값으로 주는 SendBufferChunkRef(xnew<SendBufferChunk>(), PushGlobal)과 형태가 달라서였기 때문인데요 chunkref의 경우 xnew로 생성하기 때문에 우리가 설정한 PoolAllocator 정책에 따라 메모리풀에서 가져다 쓸텐데, 위의 SessionRef session의 경우에 우리가 xnew로 호출한 것이 아니라 _sessionFactory()의 리턴값을 넣어주게되는데, 이게 세션팩토리가 메모리를 어떻게 할당하겠다고는 전혀 선언한 바가 없기 때문에 new SessionRef를 하는지 xnew<SessionRef>를 하는지를 모르겠습니다. 아마 그냥 new SessionRef를 할 것 같다고 추측만 하고 있습니다. 어찌어찌 이를 좀 더 알아보기 위해서 GetImpl까지 들어왔고 _MyStorage._Ptrs 를 호출하는것까지는 봤는데 여기서 더 이상 진행이 안 되네요ㅠ 짧은생각에 추측하기로 그냥 new로 때릴 것 같깉한데 _MyStorage._Ptr 에서 끝나버려서 잘 모르겠습니다..! 사실 그냥 new여도 크게 상관은 없어보이는데 복습하다가 잘 이해가 안 가서 질문드렸습니다! 인터넷으로 검색도 해보긴했는데, 제가 뭘 모르는지 모르는 초보 수준이라 c++ function default allocator, std::function return value 이런식으로 찾아봤는데 잘 못 찾겠더라구요ㅠ
선생님 안녕하세요 @PreAuthorize 에서 사용한 SpEL 문법 사용 원리에 대해 제가 정확하게 이해하고 있는지 확신이 안서서 질문드립니다. 1. 먼저 해당 SpEL 표현에서 account, principal 두가지 변수를 참조하는데 account 앞에만 # 을 붙이는 이유는 aop/method.html 파일 내에서 th:href="@{/preAuthorize(username='user')}" 를 통해 생성된 AccountDto 객체를 참조하기 위해서 인가요? 그렇다면 principal 에 #이 안붙는 이유는 클라이언트가 인증 정보를 가지고 있는 경우 스프링 컨트롤러에서 매개변수를 통해 principal 객체를 가져오도록 지원하는 건가요?? 2. 현재 principal 객체의 클래스는 UsernamePasswordAuthenticationToken 인데 저희 강의에서 사용하는 Account 객체를 담는 토큰이라고 생각하고 있었습니다. 그렇다면 Account 객체의 username 값을 참조하려면 아래 사진의 Evaluate Expression을 통해 확인한 것 처럼 principal.principal.username 으로 표현해야 한다고 생각했습니다. 그래서 SpEL 표현을 principal.principal.username으로 변경하여 테스트 해보았는데 SpEL 문법 예외가 발생하는것을 확인했습니다. 어째서 오직 principal.username로만 username 값에 참조를 할 수 있는지 궁금합니다.. 제가 SpEL 표현법을 완벽히 숙지하지 못해서 이해가 안가는 것 같은데요.. 스프링 시큐리티와 크게 관련된 내용이 아니라서 질문을 드려도 될지는 모르겠지만 SpEL 관련 자료를 열심히 찾아봐도 마땅한 이유를 찾지 못해서 질문드립니다. 좋은 강의 감사합니다.
안녕하세요. 수업듣고 있는 한 학생입니다. uploadpage를 만드는데 관리자만 들어갈 수 있게 하고 싶어서 데이터베이스에서 admin이라는 걸 추가하고(default는 0 ) db에 가서 저의 정보에만 admin을 1로 수정하였습니다 그리고 auth페이지에서 uploadpage로 갈때 user.userData.admin이 0이면 관리자가 아님, 1이면 관리자임 으로 뜨게 설 정하고 들어갔는데 userData를 인식 못하길래 useEffect의 두번째 인자에 user.userData를 넣어줫더니 되더군요, 근데 console에 보는 것처럼 계속 랜더링이 되어서 무한루프가 돕니다. 그리고 userData를 인식하기전에는 관리자로 들어가도 관리자가 아니라고 잠시 떳다가 관리자로 바뀝니다. (console에 아무것도 아님) 어떻게 해결할 수 있을까요 ㅠ
만약 채팅이 아니라 할당량이 정해져있는 open API 데이터로 실시간 서비스를 만드면 (예를들어 youtube) 브라우저 종료해서 disconnet 되기전까지 요청은 1번만 가는건가요? 아니면 매회 (핑퐁이나 서버에서 데이터 전달)마다 요청이 매번 가나요? open api가 axios로 데이터를 받아서 사용하는 느낌으로 알고있는데요.. 어떤분은 websocket API가 있다고 하시고 rest api 로 받아야만 하는곳도 있다고 하시고.. 정보가 너무 겹쳐서 헷갈리네요 ㅠㅜ
function solution ( need , plan ){ let answer = " YES " ; let queue = need . split ( '' ) ; for ( let x of plan ) { if ( queue . includes ( x ) && queue [ 0 ] === x ) queue . shift () ; } if ( queue . length !== 0 ) answer = " NO " ; return answer ; }