이번에 면접을 보면서 확실하게 대답을 못해서 고민 끝에 선생님에게 질문 드립니다. 우선 시나리오 말씀드리자면 client 가 해당 게시글에 "좋아요" 등록을 하게 된다면 좋아요 등록 관련 DB 테이블에 insert 동시에 outbox 테이블에도 insert 하도록 설계 되어 있습니다. commit 이 정상적으로 발생되면 kafka 서버에게 이벤트 메시지를 발행 하게 되는데요. 만약 갑자기 이벤트 발행시 kafka 서버가 죽었다고 하면 복구 될때 까지 기다리다가 retry 통해 아직 메시지 발행 하지 못한 메시지 outbox 테이블에 조회해서 메시지 발행 하면 문제가 없을 것 같은데요. 하지만 다시 처음부터 설명하면 client 가 좋아요 등록 후 DB 서버가 죽어서 "좋아요" 관련 테이블 및 "outbox" 테이블에 insert 를 못했다고 가정 했을때 어떻게 대처 해야 하는지 역으로 질문 받았습니다. 일단 DB 서버가 죽었으면 빠르게 고객에게 에러 메시지를 전달과 동시에 담당 개발자에게 빠르게 전달 할 수 있도록 전달 해야 한다고 했습니다. (회사에서 slack 메신저 사용하면 메신저 통해 알림) 혹시 이것보다 더 좋은 방법이 있을까요? 재대로 대답하지 못해 찜찜해서 이렇게 선생님에게 질문 드리네요.
학습을 하다가 이해가 안되시는 부분이 생겼다면 말씀해주세요! form 태그를 듣다가 생긴 의문인데요. 둘 다 사용자의 정보를 담는 건데 form 태그와 input태그는 어떤 차이가 있는 건가요?... form태그가 url 받기 위한 박스(그 밖의 기능 즉, 사용자의 정보는 받지 않음, 송장같이 주소만 적음)이고 input 태그는 사용자의 값을 직접 적는 칸(박스 안의 내용물)이라는 말인가요?
여러 개의 HTML 요소를 v-if로 조건부 렌더링을 하고 싶다면 template 태그로 감싸고 v-if를 사용하여 렌더링 하면 된다고 말씀해주셨는데, template 태그가 아닌 div, ul 등으로 감싸도 동일하게 작동하는 것을 확인했습니다. 기존 React를 사용하는 제 입장에서는 template 태그를 사용하지 않고 후자와 같은 방법으로 조건부 렌더링을 걸곤 했는데, 혹시 여러 개의 요소를 하위 요소로 담고 있는 상위 일반 HTML 태그에 v-if를 사용하는 것과, template으로 묶어 사용하는 것에 차이가 있는지 질문드립니다!
onChange 이벤트에서 입력값 확인을 console.log에서 확인시 아래와 같이 확인이 되어집니다. input(type=date포함), textarea 궁금한 사항은 select 에서 선택된 값은 어떻게 확인해야 할까요? 실제 target부분에 아래와 같이 표시가 되어집니다. select와 option의 값이 출력이 되고 input의 입력값을 볼수있는 형태가 아닌 select tag에서 정의한 값이 보입니다. 실제 선택한 값을 어디서 확인할 수 있을까요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 이 지점에서 sort_values를 했는데 소팅 시 기본값으로 ascending 오름차순(1->5) 나오는 것을 정확히 설명해 주지 않으셨고, 왜냐하면 그 결과 오름차순이 나왔어요. 그런데 원하는 것은 내림차순 descending (5->1)이라고 하셨는데 정작 코드는 ascending(오름차순)으로 적어서 실행했는데 신기하게 내림차순이 정렬되었습니다. 전 이 지점 이해 못했습니다. 설명 바랍니다.
선생님 안녕하세요 질문있습니다 vo . setSearchCondition ( searchCondition ); vo . setSearchchKeyword ( searchKeyword ); GetBoardListController를 수정중에 위 setSearchCondition, setSearchchKeyword 를 찾을 수 없다고 하는데 BoardVO에 선언을 해주어야 하는건가요? 어디서 선언후 사용해야하는지 잘 모르겠습니다 답변주시면 감사하겠습니다
안녕하세요? 강의에서는 메모리 상에서 szBuffer와 nData가 바로 인접해서 서로에게 영향을 주는 상황이 나온 것으로 이해했습니다. 그런데 제가 변수가 메모리에 어떻게 저장되는지 궁금하여 이전에 간단히 #include <stdio.h> int main(void) { int x = 16; int y = 8; int z = 4; return 0; } 로 두고 메모리를 따라가 봤더니 다음과 같은 결과가 나왔습니다. 0x000000886A2FFB04 10 00 00 00 .... 0x000000886A2FFB08 b4 05 63 2e ?.c. 0x000000886A2FFB0C fc 7f 00 00 ?... 0x000000886A2FFB10 c8 d2 29 d8 ??)? 0x000000886A2FFB14 bc d9 00 00 ??.. 0x000000886A2FFB18 02 00 00 00 .... 0x000000886A2FFB1C 00 00 00 00 .... 0x000000886A2FFB20 00 00 00 00 .... 0x000000886A2FFB24 08 00 00 00 .... 0x000000886A2FFB28 16 20 60 2e . `. 0x000000886A2FFB2C fc 7f 00 00 ?... 0x000000886A2FFB30 00 00 00 00 .... 0x000000886A2FFB34 88 00 00 00 ?... 0x000000886A2FFB38 00 00 00 00 .... 0x000000886A2FFB3C 00 00 00 00 .... 0x000000886A2FFB40 00 82 68 b3 .?h? 0x000000886A2FFB44 04 00 00 00 ....( (볼드체 + 기울임이 각각 x, y, z입니다) 여기서 질문이 두 가지 있습니다. 보안 설정에서 아무것도 바꾸지 않았는데 변수들이 모두 메모리 주소를 32씩 띄워서 저장되고 있습니다. int는 4byte이니 원칙적으로는 메모리 주소를 4씩만 띄워서 저장해도 될 것 같은데 (강의상에서도 szBuffer와 nData가 붙어서 저장된 것처럼) 왜 이런 것일까요? 변수 x, y, z는 자동변수이므로 현재 저장된 메모리 공간은stack frame으로 이해했습니다. 강의에서 stack frame의 위쪽 공간일수록 메모리의 0번지에 가까워진다고 하셨는데 왜 x - > y -> z로 갈수록 메모리 주소가 증가하는 걸까요? 가장 먼저 정의된 변수 x가 stack의 가장 밑에 저장되고 그 위에 y, z가 정의되었다고 한다면 z로 갈수록 메모리 주소가 0번지에 가까워져야 하지 않을까... 생각을 하였습니다. 감사합니다.
해당 강의를 학습하던 도중 indexController 의 다음 메서드가 어떻게 익명사용자인것을 알아채고 해당 토큰을 남기는 걸까 의문점이 생겨 질문을 남깁니다. @GetMapping("/anonymousContext") public String anonymousContext(@CurrentSecurityContext SecurityContext context) { return context.getAuthentication().getName(); } 해당의문을 해결하기 위해 localhost:8080/anonymousContext 가 호출될 때 서버는 어떤 과정을 거칠까 생각해보고 다음과 같은 결론을 냈습니다. 1. localhost:8080/anonymousContext 가 호출될 때, Authentication 이 null 값인 것을 확인한다 2. AnonymousAuthenticationToken을 생성하여 SecurityContextHolder에 저장한다. 3. Jsession이 없는 것을 확인하고 AnonymousAuthenticationToken이 저장된 SecurityContext를 파라미터로 넘긴다. 4. 해당 포큰이 getName() 값이 출력된다. 이러한 과정을 거칠거라 생각한 이유는 로그인 상태에서 localhost:8080/anonymousContext 를 호출하게 될 때, "user"라는 값이 출력되는 것을 확인했고 두 같은 요청값에 유일한 차이는 쿠키에 Jsession의 유무였기 때문입니다. SecurityContext가 anonymous 를 판단하는 기준이 제가 생각한 것과 같을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 어찌저찌 하다가 콜라볼를 이용해서 만들기는 하였는데 이렇게 코드로 만들어도 되는지 궁금해서 질문을 드립니다. 콜라볼에 Lsit값을 넣어서 , 심플한 callable 리스트를 만들었는데 이렇게 활용해도 되는지 알고 싶어서 코드를 올립니다. 이렇게 만들어도 되냐요? 답변 부탁드립니다.
이전엔 자동 완성을 시키면 @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; UserV2 user = (UserV2) o; return Objects.equals(id, user.id); } 이 코드였던거같은데 현재는 이렇게 생성이 됩니다. @Override public boolean equals(Object object) { if (object == null || getClass() != object.getClass()) return false; UserV2 userV2 = (UserV2) object; return Objects.equals(id, userV2.id); } IDE 작동 방식에 변화가 생긴걸까요? 아니면 제가 설정을 무엇인가 잘못 건드린걸까요
디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
begin: tpsram_write @(posedge clk); for (int i=0;i<DEPTH;i++) begin we <= 1; wa <= i; wd <= 'h10+i; @(posedge clk);//필요한 이유 end we <= 0; @(posedge clk); end @(posedge clk); for문 마지막과 begin문 마지막에 필요한 이유가 뭔가요? 주석 처리 후 시뮬레이션을 돌려보니 for문에 맞게 wa값과 wd값이 업데이트가 되지 않았습니다. 혹시 system verilog에서 for문과 begin문을 작성하면 @(posedge clk)을 해주는 것이 규칙인가요?