// 2. 콜백함수의 활용 function repeat(count, callback){ for(idx=0; idx<count; idx++){ callback(idx); } } repeat(4, function callback(){ console.log(idx * 2)}); repeat(4,(idx)=>{ console.log(idx * 4); }) repeat(5,()=>{ console.log(idx * 5); }) repeat()으로 호출할 때 콜백함수까지 같이 불러오는 부분에 대해 궁금증이 생겼습니다. repeat(인수, 콜백함수)=> 이 부분에서 콜백함수에 매개변수로 idx를 안 넣어도 콘솔창에 결과가 잘 나옵니다. 그런데도 콜백함수 인수를 작성할 때 idx를 꼭 적어줘야 하나요? repeat(4, (idx) // idx를 넣고 메인 함수 콜백 호출 부분인 callback(idx); 에서 idx를 뺏더니 출력결과가 Nan이 나옵니다. repeat(4, () => 이렇게 idx가 없는 호출문? 에서는 정상적으로 값이 잘 나오는데 저 부분은 왜 안나오는지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 영한님의 인덱스 강의를 듣고, 간단한 CRUD 토이 프로젝트를 하면서 인덱스를 적용해보려고 하고 있습니다. 강의에서 설명해주신 것처럼, 칼럼의 값을 기준으로 인덱스를 타는 경우 데이터가 수백 ~ 수천만건이더라도 굉장히 빠르게 조회 되는 것을 확인했는데요! 문제는 페이징 쿼리 같이, limit, offset을 활용해야 하는 경우에 인덱스가 기존과 같이 동작하는지, 아니면 특별한 무언가가 있는지 궁금합니다. 만약 배운 그대로 적용된다면 (ex. 생성일이 페이징 기준) 생성일 칼럼을 인덱스를 걸면 Filesort 를 피할 수 있겠다는 생각은 하였고, limit 절의 경우 where와는 다르게 select 절까지 모두 평가된 뒤에 적용되기 때문에 Random I/O를 피하기 위해 커버링 인덱스도 잘 사용해야 할 것 같다고 생각했습니다. 다만, offset에 해당하는 n 번째 칼럼을 빠르게 B+ 트리에서 알아낼 수 있는 방법 이 있는지가 궁금하더라고요. DBMS에서 limit과 offset을 특별히 따로 처리하는지 아니면 강의에서 배운대로 인덱스를 그대로 활용하는지 궁금합니다.
// 함수선언 함수를 생성하는 것 function greeting(){ console.log("안녕하세요"); } greeting(); let area1 = getArea(20, 30); console.log(area1); getArea(40, 200000); // 함수 호이스팅 // -> 끌어올리다 라는 뜻. //함수가 선언되는 순서는 중요하지 않다! function getArea(width, height){ function another(){ //증첩함수 console.log('another'); } another(); let area = width*height; // console.log(area); return area; <------------------------- 여기 return이 반환값이라고 하셨잖아요. getArea(40, 200000) = area 와 같다고 생각하면 되는거죠? 그리고 그걸 화면에 출력하기 위해서는 꼭 변수에 담아야 하는거죠? 그건 알겠는데 왜 변수에 담아야 나오는 건지 궁금합니다!! }
안녕하세요, 학습하던중 궁금증이 생겨 질문을 드립니다. 데코레이터의 개념이 잘 와닿지가 않는데 수업에서 사용했던 @login_required , @method_decorator들은 라이브러리나 모듈처럼 내부로직이 따로 있는건가요? 인증구현을 위해 작성한 긴 코드가 저거 한줄로 끝난다니 조금 의야해서요..만일 그렇다면, 저희가 처음에 인증구현을 위해 코드를 썼던더 처럼 데코레이터를 적용하기위해 데코레이터내부 코드를 작성해주지 않아도 되는건가요?
ch-7-2에서 포스트 상세 조회 router 안에서 ipify.org api를 호출하는데 포스트 상세 조회 API를 클라이언트에서 호출할 경우 서버에서 ipify.org api를 호출하기 때문에 의도한바와 다르게 서버 ip 주소가 나오고 클라이언트 IP는 req.ip를 통해서만 얻을 수 있지않나요?? const response = await axios.get("https://api.ipify.org?format=json"); ip = response.data.ip;
[VOD] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
안녕하세요. 수강생입니다. 혹시 수업에 사용중이신 Cursor가 버전이 어떻게 되나요. 저는 1.5.9 버전인데 커서 핵심 기능과 Rules 설정하면이 좀 달라서요. 프로젝트 Rules 화면도 다르고 Add Rule시 제가 사용하는 버전은 아래와 같이 나옵니다. 어떤 Rules를 설정을 해야할지 답변 부탁드립니다. 감사합니다.
2.13) 비동기 작업 처리하기 2. Promise 강의에서, if 문을 활용한 타입 검증 시 오류인 상황(else) 에서의 reject 가 정상 동작하지 않습니다. /* Promise */ const promise = new Promise((resolve, reject) => { // 비동기 작업 실행 함수 : executor setTimeout(() => { let num = 10; num = '10'; console.log(num); if (typeof num === 'number') { // 성공일 때 호출 resolve(`${num}은 숫자입니다.`); } else { // 실패일 때 호출 reject(`${num}은 숫자가 아닙니다.`); } }, 1000 * 1); }); 위 코드에서, num 타입을 string 으로 변경했을 때 else 문이 진행되는 것으로 기대했습니다. 이때, 브라우저의 디버거에서 오류를 발생시키면서 정상 동작되지 않습니다. 터미널에서는 UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 라는 오류가 발생됩니다. catch 문 없이 reject 를 단독으로 사용하는 것에 문제가 있는 것 같은데, 예제와는 다르게 동작하는 것 같아 문의드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 문제1: 주문별 상품 정보 조회 에서 orders와 products연결하고 주문ID, 상품명, 주문 수량이 포함된 목록을 출력하는건데 강의 영상에서 영한님께서 정답으로 select o.product_id, p.name, o.quantity from orders o join products p on o.product_id = p.product_id order by o.order_id; 라고 알려주셨는데 주문ID는 product_id가 아니라 order_id가 맞는거같고 그래서 order by o.order_id를 넣어도 결과값이 product_id만 잇기때문에 정렬이 안된상태로 나옵니다 그래서 아래와같이 정답 수정 요청드립니다.(pdf 파일과 강의에서보이는 Pdf에서도 o.order_id 로되어있는데 타이핑때 product_id로 잘못치신듯합니다) select o.order_id, p.name, o.quantity from orders o join products p on o.product_id = p.product_id order by o.order_id;