묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
bind에서의 this, thisArg, ...args 타입분석 3개인 이유 ..
안녕하세요. 얼마 전 bind 타입 분석을 하다가 궁금점이 풀리지 않아 질문 내역을 보았습니다. 22년 9월 13일 제목: 13:50 파라미터 질문 (해결)이란 글의 질문과 같이 bind 인자로 받는 this 가 이해를 할 수 없었습니다. 현영님께서 답변을 달아주신 것을 봤지만 이해가 되지 않더라고요 이게 가능한건가?.. 싶었습니다.현재 타입스크립트버전 "typescript": "^5.1.6"lib.es5.d.ts 에 보면 bind는 아래와 같이 정의 되어있는데요interface CallableFunction extends Function { bind<T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>; bind<T, A extends any[], B extends any[], R>(this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; }mdn에서 bind 메서드를 확인해보니 func.bind(thisArg[, arg1[, arg2[, ...]]])이러한 구문을 갖고 있는 것을 확인했습니다. 인자의 수가 안맞고 this라는 것은 찾아볼 수 없었는데요. 그래서 ECMAScript bind를 찾아보니 함수가 다음과 같이 정의 되었다는 것을 알게되었습니다.20.2.3.2 Function.prototype.bind ( thisArg, ...args ) This method performs the following steps when called: 1. Let Target be the this value. 2. If IsCallable(Target) is false, throw a TypeError exception. 3. Let F be ? BoundFunctionCreate(Target, thisArg, args). 4. Let L be 0. 5. Let targetHasLength be ? HasOwnProperty(Target, "length"). 6. If targetHasLength is true, then a. Let targetLen be ? Get(Target, "length"). b. If targetLen is a Number, then i. If targetLen is +∞𝔽, then 1. Set L to +∞. ii. Else if targetLen is -∞𝔽, then 1. Set L to 0. iii. Else, 1. Let targetLenAsInt be ! ToIntegerOrInfinity(targetLen). 2. Assert: targetLenAsInt is finite. 3. Let argCount be the number of elements in args. 4. Set L to max(targetLenAsInt - argCount, 0). 7. Perform SetFunctionLength(F, L). 8. Let targetName be ? Get(Target, "name"). 9. If targetName is not a String, set targetName to the empty String. 10. Perform SetFunctionName(F, targetName, "bound"). 11. Return F.bind가 수행되면 bound 된 함수를 반환해주는데 그 과정에서 1번에서 target은 this 값으로 설정이 되고3번에 BoundFunctionCreate (target, thisArg, ...args) 로 설정되어 this가 들어가는 것으로 확인했습니다. 이 과정을 거쳐 bound된 함수를 반환해주는데 타입스크립트에서 정의된 this, thisArg, ...args 가 위 내용에 대한 타입 정의가 아닐까 싶습니다. 이전 답변에 궁금증이 해소되지않아 찾아봤는데 시간나실때 확인부탁드립니다![ECMAScript bind 링크] ECMA bind 위에 링크 걸어두었습니다. 항상 좋은 강의와 정보제공 감사드립니다.:)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
foreach문 에러에 대해 궁금합니다
foreach문은 T형식을 사용할 수 없다는데요..T에 GetEnumerator의 공개 인스턴스 또는 확장 정의가 없기 때문이라는데 어떡하면 좋죠?;;
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
백준에 1090 모이기 문제가 없습니다.
1090 문제를 풀기위해서 백준에서 검색해보았는데 대신에 체커라는 문제가 나오고 모이기라는 문제는 보이지 않네요.. 혹시 문제를 풀 수 있는데가 있을까요??
-
해결됨애플 웹사이트 인터랙션 클론!
섹션2 번째, opacity=0 되지 않고 잔상이 남습니다.
섹션2 번째 내용입니다.해당과정을 리액트에서 적용하면서 따라가고 있습니다. 돔접근에 대해서는 useRef를 사용해서 잘 따라가고 있는데, scrollSection1 의 부분에서 scrollSection1Msg1~scrollSection1Msg4 의 opacity 부분에서 아래와 같이 작업했습니다. 그런데 화면에 잔상이 남습니다. 완전히 opacity=0 가 되지 않는 것처럼 희미하게 글자들이 중첩되며 남아 있습니다. (맥북 M1) values : { selectionMsgA_opacity : [0 ,1, {start: 0.1, end:0.2}], selectionMsgA_opacity_out : [1 ,0, {start: 0.25, end:0.3}], else if (scrollRatio <= 0.3) { obj.Section1Msg1.current.style.opacity = calcValues(values.selectionMsgA_opacity_out, currentYoffset) obj.Section1Msg1.current.style.transform = `translateY(${ calcValues(values.selectionMsgA_translateY_out, currentYoffset)}%)`
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
질문은 아니고 응원글이용
문제와 문제정의 파트를 수강하고 있는 학생입니다.회사 일에 도움이 되고자 듣게 되었는데, 제 개인적인 삶에 대해서도 대입해볼 수 있네요.. ㅎㅎ 머릿속에 쌓인 고민들에 정말 문제인가? 라는 질문을 해보니 사실 문제보단, 걱정에 가까웠던 것 같네요.좋은 강의 감사합니다 :)
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
QueryFailedError: Table 'user' already exists
안녕하세요 선생님 다름이 아니라 synchronize: true, // 동기화 시켜준다 같게 한다.true을 하게되면 동기화를 시켜주는건데 매번 yarn start:dev을할때마다 QueryFailedError: Table '***' already exists이러한 오류가 나옵니다. 그럼 실행 할때마다 데이터베이스 테이블을 매번 지워야 하는건가요??
-
미해결즐거운 자바
65. 네트워크프로그래밍1
브라우저에 주소를 입력해도 콘솔창에 출력 결과가 나오지 않는데 제가 뭘 확인해보면 좋을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
커밋이 안됩니다...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 위처럼 비밀번호랑 경로 전부 같게 하고 연결해서 커밋해보면 커밋이 되지 않는데 어찌해야하나요...
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
3강 누적합 문제 4. 2차원 누적합
안녕하세요! 해당 문제 질문이 있습니다. (2,2) 와 (2,4) 범위의 합을 구하는 문제인데왜 (4,3)과 (3,2) 값을 구해서 빼주는 건가요? 그 전까지 설명해주시는 건 이해를 했는데 제대로 이해를 못한건지 마지막 출력 부분이 이해가 안되네요 ㅜㅠ
-
해결됨(UPDATED) Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
정확도 (0.99, 1.02) 관련 질문있습니다.
동일한 best-seller 모델로train, test 데이터셋으로 split 하기 전에는 정확도가 0.99xxx 였는데, split 하면 1.02xx로 1을 넘어서는 이유는 무엇인가요? 0.99는 99%정확도라는 의미로 알고 있는데, 1.02는 102%라는 의미인지 아니면 1.02%라는 의미인지 헷갈립니다. 그리고 dataset 을 split해서 score 매기면 정확도는 당연히 떨어지는게 맞는거죠?
-
해결됨입문자를 위한 Docker 및 Dockerizing 마스터하기
하나 더 질문이 있습니다 ㅠㅠ
안녕하세요 지금 두번째 핸즈온옵션 python_app 만드는 중에있는데 회사노트북이 제한이 걸려서 바탕화면에 python_app 파일을 만들었고 이렇게 진행하다보니이런식으로 멈춰버렸습니다... 여기서 어떻게 진행을 해야할까요 ㅠㅠ
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
코드 자동 생성 오류 발생
// GENERATED CODE - DO NOT MODIFY BY HAND part of 'naver_book_info_results.dart'; // ************************************************************************** // JsonSerializableGenerator // ************************************************************************** NaverBookInfoResults _$NaverBookInfoResultsFromJson( Map<String, dynamic> json) => NaverBookInfoResults( total: json['total'] as int?, start: json['start'] as int?, display: json['display'] as int?, items: (json['items'] as List<dynamic>?) ?.map((e) => NaverBookInfo.fromJson(e as Map<String, dynamic>)) .toList(), ); Map<String, dynamic> _$NaverBookInfoResultsToJson( NaverBookInfoResults instance) => <String, dynamic>{ 'total': instance.total, 'start': instance.start, 'display': instance.display, 'items': instance.items, };naver_book_info_results.g.dart 파일에서 영상이랑 똑같이 생성했는데 이렇게 오류가 발생하는데 이유를 모르겠습니다.
-
미해결Redux vs MobX (둘 다 배우자!)
thunk 미들웨어 잡업 중 논리로직 단계? 질문이 있습니다.
미들웨어가 들어간 이후 궁금한 부분이 있어서 질문 합니다.리덕스에 dispatch를 하면 리듀서가 이를 받고, 기존에 액션함수를 만들었다면, 만든 액션함수를 매칭 시켜서 상태관리를 하잖아요? 그래서 이번 강좌(2-4.redux-thunk)에서도 비동기 로그인을 디스패치 하잖아요?store.dispatch( logIn({ id: 1, name: "goodsosbva", admin: true, })이 이후에 액션에 정의한// async action creator const logIn = (data) => { return (dispatch, getState) => { // async action dispatch(logInRequest()); try { setTimeout(() => { dispatch( logInSuccess({ userId: 1, nickname: "khszzang!", }) ); }, 2000); } catch (e) { dispatch(logInFailure(e)); } }; };여기로 가서 로직을 하잖아요? 이때, 만들어둔 미들웨어가const thunkMiddleware = (store) => (next) => (action) => { if (typeof action === "function") { // 비동기 return action(store.dispatch, store.getState); } return next(action); }; const enhancer = applyMiddleware(firstMiddleware, thunkMiddleware); const store = createStore(reducer, initialState, enhancer); 어떤 순간에 작동하는지가 감이 안와서 질문드립니다.이전 강의에서는 dispatch -> 미들웨어 -> reducer라고 하신거 같은데요.이걸 보고 나름 이해하려고 노력했는데...걸리는 점은지금은 비동기로 만든 액션함수가 하나니까 미들웨어에서 하나로 매칭될 수 있겠는데..?여러개면 어떻게 되는거지라는? 의문입니다.제질문이 좀 난해한거같기도 한데요. 요약하면, 미들웨어가 어디서 동작하는지 모르겠다.비동기 미들웨어 요청을 할때 액션함수를 알맞게 어떻게 요청하는지 몰라서 질문드립니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
다운캐스팅 에러?
안녕하세요 궁금한게 있습니다. 강의에서 Quest ScriptableObject를 Instantiate()로 복제를 하는데 상속받은 Scriptableobejct에 다운캐스팅을 하면 null이 되는데 왜그러는지 모르겠습니다. 예를들어 A 라는 scriptableobject가 있고 B : A 라는 상속받은 scriptableobject가 있을떄A a = new A(); 를 생성하고a.num = 10;을 한 상태에서 B b = Instantiate(a) as B; b.Id = 2;이렇게하면 b는 null이 됩니다. 제가 원하는건 b.num = 10; 이고 b.id = 2;인 데이터가 생성되는것인데 a는 null이 아닌데 다운캐스팅만 하면 null이 됩니다 ㅜㅜ
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
완강 후 질문이 있습니다~!
안녕하세요 재밌고 알찬 강의 제공해 주셔서 감사합니다.jpa 와 같이 findById 같은 기본적으로 제공해주는 메서드는 따로 테스트를 안해봐도 될거 같은데..queryDsl 식으로 커스텀한 쿼리를 호출할때 테스트 방법은 어떻게 해야할지 궁금합니다.. h2 와 같은 임베디드디비로 쿼리 조건과 데이터가 잘 나오는지 테스트도 짜고, 다른 인터페이스를 상속받은 구현체의 메서드에서 메모리를 사용해 stream 과 filter 식으로 데이터를 반환하는 구현체를 테스트로 다시 넣어야하는지.. h2로 테스트코드를 짜고, 확인 후, 해당 테스트 코드는 지워버려야 하는지.. 강사님은 어떻게 하고 있는지 궁금합니다.. 감사합니다.
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
beauty 익스텐션이 설치가 안됩니다.
■ 질문 남기실 때 꼭! 참고해주세요.- 먼저 유사한 질문이 있었는지 검색해주세요.- 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다.- HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요.- 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다.질문 하실 때 어떤 유형인지 말씀해주세요. 첨부와같이 나오는데 설치가 안되어도 하나씩 입력하면 되기는 하지만 설치가 안되어도 상관없겠죠?아니면 대체하는 익스텐션이 있는걸까요?
-
해결됨Java/Spring 주니어 개발자를 위한 오답노트
DB 엔티티와 도메인 분리
어디까지 추상화 해야 하는가? 강의에서 2분 17초에toDomain()으로 바꿔서 반환을 했는데이렇게하면 JPA 엔티티가 아니라서 변경감지를 사용하지 못하는거 아닌가요? 이러한 방식으로 작성한다면 업데이트가 필요할 때는 어떤식으로 처리하나요?
-
미해결지금 당장 NestJS 백엔드 개발 [사주 만세력]
회원가입 음력 날짜
회원가입시 음력으로 가입시도를 자꾸 실패해서 살펴보니 데이터베이스에 음력 날짜(lunarDate)가 9999-12-31 로 동일하던데 음력 데이터가 입력 날짜와 같은 값이 없어서 가입이 안되는 거죠? 음력 데이터는 없는건가요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
훈훈한 자바스크립트 강의 문제점
appendchild강의에서 addEventListener 로 넘어갈 때,const KeyCodeCheck = function () { if (window.event.keyCode === 13 && todoInput.value !== "") { createTodo(); } };위 코드에서const KeyCodeCheck = function () {if (window.event.keyCode === 13 && todoInput.value) {createTodo();}};로 아무런 설명없이 바뀌어 있네요. 이유를 설명해주세요.이거 외에도 아무 부연설명없이, 코드가 바뀌어 있는 경우가 매우 많습니다. 수정해서 다시 올려주세요
-
해결됨입문자를 위한 Docker 및 Dockerizing 마스터하기
혹시 수강기한 늘리실생각있으실까요...?
여러번 보고싶은데 3개월이면 짧지도않지만 길지도않은 기간인거같아서요 ㅠㅠ기억안날때마다 보고싶습니다