Infinity scroll
기능에서 상수로 관리 할 수 있는게 무엇인지 더 생각해보아야 했다.API_URL
은 상수로 관리해야 한다고 생각했는데, 다른 limit, page
와 같은 변수는 생각지 못했다. 최대한 유지보수가 쉽고 코드를 간결하게 할 수 있는 노력을 끊임없이 해야겠다.export const BASE_URL = `https://jsonplaceholder.typicode.com`;
export const ERROR_MESSAGE = 'Failed to fetch data';
export const LIMIT = 10;
export const DEFAULT_PAGE = 1;
이벤트 핸들러가 많은 연산을 수행(이벤트 핸들러의 과도한 횟수가 발생하는 것)하는 경우에 대해 제약을 걸어 제어할 수 있는 수준으로 이벤트를 발생시키는 것을 목표 로 하는 기술
Debounce
➡ 연이어 호출되는 함수들 중 마지막 함수(또는 제일 처음)만 호출하도록 하는 기술
Throttle
➡ 이벤트를 일정한 주기마다 발생하도록 하는 기술
➡ 마지막 함수가 호출된 후 일정 시간이 지나기 전에 다시 호출되지 않도록 하는 것
Debounce
와 Throttle
를 적용해야한다는 것을 알고 있었다.lodash
를 라이브러리를 설치해서 적용하는게 익숙해졌는지 직접 코드로 구현하려니 몇줄 안되는 코드에서 손이 멈춰버렸다..! 익숙함에 당연한 걸 잊어버린 느낌이었다..! 🙄//* decounce 함수
export const debounce = (func, delay) => {
let timeoutId = null;
// do something
return (...arg) => {
clearTimeout(timeoutId);
timeoutId = setTimeout(func.bind(null, ...arg), delay);
};
};
//* throttle 함수
export const throttle = (func, delay) => {
let timeout = null;
return function (...args) {
if (!timeout) {
timeout = setTimeout(() => {
func.call(this, ...args);
timeout = null;
}, delay);
}
};
};
Throttle
과 Debounce
사용 사례polyfill
을 사용해 해결했어야 했다. 생각보다 IE 사용자는 아직도 많다.'Co-authored-by: Daeun <daeun-react@users.noreply.github.com>'
Git Issue
➡ 새로운 추가될 가능, 개선 해야할 가능, 버그 등등 모든 것이 곧 이슈라고 볼 수 있다!
➡ 모든 활동 내역에 대해서 이슈를 등록하고 그 이슈기반으로 작업을 진행하게 됩니다.
Commit Convention
➡ 이게 feat
인가...역시 애매할때는 다 chore
인가..? 하는 생각을 많이 했다.😨
➡ 찾아봤던 토스/배민/카카오 git 컨벤션을 자주 들여다 보고 배워야겠다.