// 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가 없는 호출문? 에서는 정상적으로 값이 잘 나오는데 저 부분은 왜 안나오는지 궁금합니다.
안녕하세요! 다름이 아니라 자소서에 해당 프로젝트 내용을 작성할 때, "노이즈가 문제가 발생해서,~~ 방법을 거쳐 해결했다"라는 예시가 있었는데, kicad로 schematic을 할 때 또는 artwork 할 때는 노이즈가 실제로 발생하는 걸 예상할 수 있지만, 발생했다는 걸 알 수는 없지 않나...? 라는 생각이 들었습니다. 그렇다면 자소서에는 저렇게 적어도 나중에 면접을 가게 되면 어떻게 대비해야 하는지 모르겠어서 질문드려봐요..!!
// 함수선언 함수를 생성하는 것 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 와 같다고 생각하면 되는거죠? 그리고 그걸 화면에 출력하기 위해서는 꼭 변수에 담아야 하는거죠? 그건 알겠는데 왜 변수에 담아야 나오는 건지 궁금합니다!! }
안녕하세요. 삼코치님 질문사항이 있습니다. Analog 인풋 시그널을 넣어주실때 아날로그 시그널에서 발생하는 노이즈 제거 목적으로 디커플링 캡을 추가한 것으로 이해를 했는데요. 추가로, 아날로그 채널간 사이에 아래와 같이 커플링 캡을 추가하셨는데,,, 어떤 이론?으로 어떻게 제거가 되는지 설명 가능할까욥.... 고민을 조금 해봤는데,,,, 이런 느낌일까요? 직관적으로 이해를 하고 싶은데,,, EMI에 의해 다른 채널 신호가 흔들려서 노이즈가 발생하는데,,, 저주파에 해당하는 아날로그 신호는 직렬로 빼주고 고주파에 해당하는 노이즈는서로 만나서 상쇄되는 느낌인가요? 아니면,,,각각의 디캡을 달아줬으니,,, 디캡위치로 노이즈가 제거 되는게 맞는건가요?
안녕하세요. 삼코치님 질문이 있습니다. UART 통신에 대한 질문입니다. UART 통신의 경우, 직렬 방식으로 데이터를 교환하는 방식으로 알고 있습니다. USB도 핀 숫자를 보면 직렬방식의 통신 방식인것을 알 수 있었는데요. CH340C라는 컨버팅 소자를 사용하는 이유가 데이터 계층이 달라서 사용하는게 맞을까요? USB의 경우 PHY 계층의 0V ,3V와 같은 시그널로 존재 MCU에서 통신하는 RX,TX line의 경우 디지털 0과 1인 MAC 계층으로 존재 위 두가지 데이터의 계층이 다르기 때문에 사용하는 것이 맞나요??? 추가 질문입니다. 만약 병렬 시그널로 입력이 되어서 직렬 시그널로 변환되는 경우도 UART 통신으로 생각할 수 있을까요?
안녕하세요, 학습하던중 궁금증이 생겨 질문을 드립니다. 데코레이터의 개념이 잘 와닿지가 않는데 수업에서 사용했던 @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 를 단독으로 사용하는 것에 문제가 있는 것 같은데, 예제와는 다르게 동작하는 것 같아 문의드립니다.