자바스크립트 이벤트 루프 정리 자바스크립트 내부는 아래와 같이 구성되어 있다. Memory Heap: 변수나 함수 등이 저장(할당)되는 공간. 구조화 되지 않은 넓은 메모리 영역. Call Stack: 실행될 코드가 한 줄 단위로 저장되고 실행되는 공간. (LIFO) Web API: 비동기 처리를 담당. Callback Queue: 비동기 처리가 끝난 후 실행되어야 할 콜백 함수가 차례로 할당되는 곳. Microtask Queue(Job Queue): Promise 처리. 실행 순위 1순위. Animation Frames: 애니메이션 함수. 실행 순위 2순위. Task Queue(Event Queue): setTimeout, setInterval 처리. 실행 순위 3순위. Event Loop: 콜 스택이..
eslint 특정 라인 혹은 특정 파일에만 ignore하기 참고: https://worker-k.tistory.com/entry/%EC%97%84%EA%B2%A9%ED%95%9C-eslint-ignore-%ED%95%98%EB%8A%94-%EC%97%AC%EB%9F%AC%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95-eslintignore eslint를 쓰다보면 전역적으로 무시하고 싶은 에러들도 있지만, 특정 라인 혹은 파일에서만 ignore를 사용하고 싶을 때가 있다. 나 같은 경우는 회사에서 작업할 때 kakao SDK 등을 사용할 때다. SDK에서 제공하는 변수나 함수를 사용하면 eslint는 해당 변수나 함수가 정의되지 않았다면서 경고를 띄우는데, 이 빨간 줄이 너무나 거슬린다..
자바스크립트 디바운스와 쓰로틀링 참고: https://www.zerocho.com/category/JavaScript/post/59a8e9cb15ac0000182794fa 내용 디바운스, 쓰로틀링 둘 모두 웹에서 연속적으로 발생되는 이벤트를 제어하여 성능을 향상시키는 기법이다. 차이점으로는 디바운스는 마지막으로 실행된 이벤트에 딱 한 번만 반응하고 쓰로틀링은 정해놓은 주기마다 실행이 된다는 점이다. 디바운스는 주로 API 호출 등에 사용되고, 쓰로틀링은 resize나 scroll 이벤트 등에 많이 사용된다. 디바운스 타이머가 있는지 없는지 판별할 변수를 하나 생성한다. (timer) 코드를 실행할 대기 시간을 정한다. (예시에서는 200ms) input 이벤트가 발생하면 타이머가 설정된다. 타이머가 이미..
자바스크립트 현재 날짜와 시간 항상 한국 기준으로 구하기 참고: https://hianna.tistory.com/451 업무 중 현재 시간을 기준으로 이런저런 값을 계산할 일이 있었다. 근데 동료가 만약 우리나라가 아니라 다른 국가에서 접속하는 유저는 어떻게 처리하겠냐는 질문을 했다. 그래서 어디서 접속하든 언제나 한국 시간을 기준으로 잡아야 할 필요를 느꼈다. 필요한 것들 Date.prototype.getTime() https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime 1970 년 1 월 1 일 00:00:00 UTC와 주어진 날짜까지의 시간을 밀리세컨드로 반환한다. Date.prototype...