✅ JavaScript의 함수는 1급 객체(First Class Object)입니다. 그렇다면 1급 객체란 무엇인지, 왜 중요한지에 대해 살펴보겠습니다. 📌 1급 시민(First Class Citizen) 1급 객체란, 1급 시민의 조건을 충족하는 객체입니다. 따라서 1급 객체를 알아보기 전 1급 시민의 개념부터 알아 볼 필요가 있습니다. 1급 시민이란, 함수를 변수처럼 사용할 수 있다. 라는 의미로 해석할 수 있으며, 조건은 아래와 같습니다. * 단, 함수와 변수를 동일한 개념으로 생각하면 안됩니다. 변수에 담을 수 있습니다. 함수의 인자(Parameter)로 전달할 수 있습니다. 함수의 반환 값으로 전달할 수 있습니다. // 예시 let numValue = 1; // [1] 충족 function ad..
✅ 헷갈릴 수 있는 용어들에 대한 간략한 설명입니다. 블로킹은 느린 동작이 스택에 남아있는 것을 의미합니다. 호출 스케줄링(scheduling a call)은 일정 시간이 지난 후에 원하는 함수를 예약 실행(호출)할 수 있게 하는 것을 의미합니다. 매크로태스크큐와 마이크로태스크큐는 서로 다른 별로의 큐 입니다. 매크로태스크 큐(MacroTask Queue) : 기존의 태스크 큐 마이크로태스크(MicroTask Queue 혹은 Job Queue) : ES6에서 Promise와 함께 소개된 개념으로 매크로태스크 큐보다 처리 우선순위가 높습니다. 📌 자바스크립트 엔진 자바스크립트 엔진은 자바스크립트 코드를 해석하고 실행하는 인터프리터입니다. (크롬과 Node.js에서 사용되는 V8엔진이 대표적) Memory ..
✅ 쓰로틀링과 디바운싱은 모두 웹에서 발생하는 이벤트를 제어하는 방법으로 불필요한 이벤트가 호출되는 것을 방지합니다. 예를 들어 검색어 자동완성 기능, 스크롤 관련 동작과 같은 이벤트에서 매번 입력, 스크롤에 대한 콜백이 발생하고 계속해서 콜백을 수행하는 일은 큰 리소스를 요구하기 때문에 서비스의 성능 저하 및 사용자 경험 저하를 야기합니다. 따라서 상황에 맞게 쓰로틀링이나 디바운싱을 적용하면 최적화하는데 큰 도움이 됩니다. 📌 쓰로틀링(throttling) 쓰로틀링은 마지막 함수가 호출된 후 일정 시간이 지나기 전에 다시 호출되지 않도록 제어하는 것 입니다. 개발자가 몇 초마다 한 번씩 실행되게 제한을 두는 것입니다. 주로 스크롤 이벤트에서 많이 사용합니다. 쓰로틀링 구현 포인트 ! 1. 함수가 실행 ..
✅ 전에 React 무한 스크롤을 구현해 본 경험이 있는데, 최근에 해당 기능을 또 구현해 볼 기회가 생겨서 이참에 공부한 내용을 정리하고자 글을 작성합니다. (잘못된 정보가 있다면 말씀해주시면 감사하겠습니다.) 저는 테스트 데이터를 msw를 사용하여 데이터를 Mocking 하여 사용했습니다. (더보기 란에 간단한 설정법을 적어뒀습니다.) 더보기 msw 설치 npm install msw / yarn add msw src 폴더 하위에 mocks 폴더 생성 후 browser.js, handlers.js 파일 만들기 index.js 에 mock 설정 코드 추가하기 /* browser.js */ import { setupWorker } from 'msw' import { handlers } from './han..
✅ React 가상 스크롤은 렌더링 최적화 방법 중 하나입니다. 라이브러리를 사용하여 구현해본 경험은 있으나, 직접 구현해보고 더 자세히 이해하기 위한 과정을 글로 작성합니다! * ps) 가상스크롤의 대표적인 라이브러리는 react-virtualized와 react-window 가 있습니다. 📌 Virtual Scroll ? API를 호출하여 100, 1000개 이상의 데이터를 불러와 화면에 렌더링한다고 가정했을 때 스크롤이 뻑뻑하거나, 심할 경우 브라우저가 다운되는 현상이 발생합니다. 이는 DOM에 대한 작업이 브라우저에 큰 부하를 걸기 때문입니다. 이러한 현상을 개선하기 위해 Virtual Scroll 개념을 도입하면 많은 데이터라 하더라도 무리 없이 정상적으로 스크롤할 수 있습니다. Virtual ..
- Total
- Today
- Yesterday
- 렌더링 속도 개선
- next.js에 .gitignore가 적용되지 않을 때
- javascript
- typescript
- useRef
- Virtual Scroll
- redirects
- 함수형 컴포넌트
- Next.js
- zustand
- 가상스크롤
- 호이스팅
- 시맨틱 웹
- React로 쓰로틀링 디바운싱 구현
- 자바스크립트 비동기 동작원리
- react
- 목표 일기
- redux
- 1급 객체
- rewrites
- array
- 1급 시민
- vue
- 자바스크립트 동작원리
- 1급 함수
- 타입스크립트
- debouncing
- 매겨변수와 인자
- programmers
- next.js 환경변수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |