안녕하세요 반갑습니다. 강의 22분 09초 경의 설명을 보고 부호 없는 정수의 언더 플로우가 헷갈려서 좀 생각을 해봤습니다. unsigned int k = 0; k = k-1; printf("k = %u\n", k); 을 하면 k의 비트가 00000000000000000000000000000000였는데 리터럴 1을 빼면 ALU내부에선 -1을 더하게 되는 것과 같고 -1은 11111111111111111111111111111111비트여서 둘의 합연산 결과가 11111111111111111111111111111111이 되고 이걸 %u로 출력해주면 unsigned int의 최대값인 4294967295가 나오는 건가요? 질문 1) 10000비트에서 1을 뺀다는 설명 때문에 약간 헷갈리긴 하는데 직관적으로 이해를 돕기 위해 그렇게 설명해주신 거라고 보면 될까요? 질문 2) 그리고 추가적으로 C언어가 리터럴 상수를 해석하는 과정이 참 흥미로운데 이건 강의 후반부에 다뤄주시나요? 꽤나 궁금하네요. 질문 3) 질문 1) 2) 3)에 각각 대답해주시면 감사 하겠습니다.
void print_binary(unsigned long n) { int remainder = n % 2; if (n >= 2) printf_binary(n / 2); printf("%d", remainder); return; } 맨 마지막에 리턴을 해주는데 제가 볼 때는 할 필요가 없어 보이는데 해주는 이유가 뭔가요?
@NotEmpty 어노테이션 사용하면 기본메세지가 한국어로 되어있던데 이게 어떤 걸 영향받아서 한국어로 기본메세지를 출력하는 것인지 궁금합니다. 영어로 설정하면 영어가 나올까 싶어서 구글 브라우저 언어순위에 영어를 상단으로 올려보고, 크롬 언어자체를 영어로 바꿔봐도 한국어로 비어 있을 수 없습니다 라고 출력이되는데 이 어노테이션이 어디에 영향을 받아서 한국어로 출력하는 것인지 궁금합니다. 따로 errors.properties 에 설정되어있지도 않아서 더 궁금합니다. ++ @NotEmpty 어노테이션 타고들어가니까 기본메세지가 여러가지 언어로 국제화되어있었어요 이상해서 다시 크롬 언어설정에서 영어 최상단하고 해보니까 영어로바뀌네요 아까는 안되었는데 왜 지금은 되는건지 의문;;
질문 1) void print_binary(unsigned long n) { if (n > 0) { print_binary((n / 2)); printf("%d", n % 2); } } 이게 제가 작성한 코드입니다. 다름이 아니라 n이 0이 아니면 통과해서 recursion으로 함수 args에 5가 들어가고 그 다음엔 2.5가 들어가고 그 다음엔 1.0이 들어가고 그 다음엔 0.5값이니까 0이 들어가기에 튕깁니다. 그리고 다시 recursion 된 함수에서 돌아오는 과정을 거쳐야하는데 처음엔 5%2 이기에 1 이 출력 그 다음엔 2.5 %2 이기에 0이 출력 그 다음엔 1 % 2 이기에 1이 출력 그 다음엔 0% 2 이기에 0이 출력 그리고 끝난다. 라고 생각이 드는데요. 혹시 잘못 이해하고 있는게 있을까요? ****** 질문 2 ) 반면 강습자로부터 작성된 코드는 아래와 같습니다. void print_binary(unsigned long n) { int remainder = n % 2; if (n >= 2) print_binary(n / 2); printf("%d", remainder); return; } 이는 처음 remainder에 10 %2 = 0을 넣고 if 문에 의해 n이 2보다 크거나 같기에 통과 함수에 5를 args로 던지고 5 % 2 = 1 을 넣고 if문 통과 후 2.5를 던짐 2 % 2 = 0 을 넣고 1을 args로 던짐 1 % 2 = 1 이다. if문을 통과하지 못함 그 다음부터의 과정은 recursion을 하느라 작동되지 못한 라인부터 작동되는 것인가요? 그리고 그럴떄 거꾸로 작동되는 이유가 마지막 함수 실행의 값부터 실행되기의 그런건가요?
태현님, 안녕하세요, 강의 잘듣고 있습니다! 9강 11분 35초 부분에서 질문이 있는데요. by Lazy안에 타고 들어가면 SynchronizedLazyImpl 함수가 스레드 세이프해서 위험할 수 있다고 말씀하셨는데 .. 어떤 의미인지 궁금해서 질문 글 올립니다. 시간되실 때 답변 부탁드려요 감사합니다!
이 매핑 컨트롤러 테스트 할때 url에 localhost:8080/ ..?param1=data1¶m2=data2 이렇게 나올 줄 알았는데 쿼리스트링엔 생략되서 나오더라고요?.. 그래서 아래와 같이 테스트하니 url에 파라미터 가 추가 되는걸 확인할 수 있었습니다. 원래 Model 객체는 url에 쿼리스트링 추가해주는것이 아니였나요? 지금까지 그렇게 알고 있었는데 막상 테스트해보니 RedirectAttributes객체만 되는것 같네요
안녕하세요 제로초님 틱택토 2강 중에 클릭 이벤트 부분 진행 중 질문 드립니다 저는 https://playcode.io/ 라는 온라인 에디터에서 공부 중인데요 여기 환경에서 ESLint Warning 이 떠서 문의드립니다. const elemTable = document.createElement('table'); let turn = 'O'; for (let i = 0; i < 3; i++) { const elemTr = document.createElement('tr'); for (let i = 0; i < 3; i++) { const elemTd = document.createElement('td'); elemTd.addEventListener('click', (e) => { // ESLint Warning if (e.currentTarget.textContent) return; // ESLint Warning e.currentTarget.textContent = turn; // ESLint Warning turn === 'O' ? turn = 'X' : turn = 'O'; // ESLint Warning }) // ESLint Warning elemTr.insertAdjacentElement('beforeend', elemTd); } elemTable.insertAdjacentElement('beforeend', elemTr); } document.body.insertAdjacentElement('afterbegin', elemTable); 'Function declared in a loop contains unsafe references to variable' -> 루프에서 선언된 함수에 변수에 대한 안전하지 않은 참조가 포함된다. 라는 내용이라고 하는데 위 내용을 구글링 해보면 반복분 for에서 var 대신 let은 쓰면 해결된다는 내용뿐이라(이미 let 사용중) 어떤 부분이 원인인지 잘 모르겠어서요. 코드는 잘 실행됩니다 저는 삼항연산자를 썼지만 강의 내용대로 if문을 써도 동일한 ESLint Warning이 나오고 있습니다. 배포된 페이지도 공유드립니다. https://1710512.playcode.io/
강사님 강의 잘 듣고 있습니다. 강사님 강의중 궁금한점이 생겨 질문 드립니다. 우선 강의중 sessionAffinity 필드를 ClientIp 로 고쳐도 로드밸런싱 되는 현상을 kubectl edit configmap -n kube-system cilium-config kube-proxy-replacement: strict 해당 방법으로 해결하였습니다, 여기서 궁금증이 생겼는데 쿠버네티스 문서를 확인해보면 clusterip 의 작동원리가 그림으로 설명 되어 있습니다. 해당 그림에선 api서버가 kube-proxy 를 통해 clusterip 로 들어와 로드밸런싱이 작동되는데 kube-proxy-replacement 해당 필드는 실리움이 kube-proxy 를 대체하거나 혹은 kube-proxy 가 정상 작동하는 것으로 알고있습니다. 그렇다면 해당 필드가 false 라면 kube-proxy 는 sessionAffinity 필드가 ClientIP 더라도 외부에서 들어오는 트래픽을 로드밸런싱 하는것인가요? 근본적인 동작 원리가 궁금하여 질문드립니다.
안녕하세요, 테디노트님. 항상 좋은 강의 감사합니다. 이번 강의 거의 완강한 학생인데요. 검색 엔진 부분 2번 정도 돌려보며 안 따라한 게 있는지 체크까지 다 했는데, 일단 전부 제대로 하긴 했습니다. 근데 제 블로그가 그냥 구글에 검색하면 뜨지 않아서, 이게 제대로 되고 있는지 확신이 안 섭니다. 혹시 구글에 등록되었는지 확인하는 방법이 있을까요? 제가 해당 부분 따라한지 한 3주 정도 지났습니다.
안녕하세요, 클라이언트에서 서버로 한 번 더 정보를 요청하는 경우 캐시 서버에서 데이터를 조회하여 데이터를 보여준다고 하셨는데 그렇다면 클라이언트에서 처음으로 요청하는 데이터의 경우에도 캐시 서버에서 조회하는 과정을 항상 거치나요? 아니면 캐시 서버에 조회하려는 데이터가 있다는 사실을 알 수 있는 방법이 있나요?
프로그램의 흐름이 쭉 가는데 분기가 생겼을 때if 문에서 return을 해준다면 조건을 만족시키지 않는 else에서도 return을 해줘야 한다고 하셨는데 왜 그래야 하는 건가요?반환 자료형이 존재할 경우, 그러니까 보이드가 아닐 경우 함수를 호출했을 때 리턴값을 받아야하니 else에서도 return을 해줘야하는 것 인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용 강의 중간중간에 스펙이라고 말씀하시는데 이게 무슨 의미인지 궁금합니다.