컴퓨터의 구성
(1) 입력 장치 : 키보드, 마우스, 스캐너, 마이크, 카메라 등
(2) 출력 장치 : 모니터, 스피커, 프린터 등
CPU 구성
(1) 산술논리 연산장치(ALU) : 비교, 판단, 연산 담당
(2) 제어부(CU)와 내부 버스 : 명령어 해석, 올바른 실행을 위한 CPU 내부적 제어
(3) 메모리 유닛레지스터 : 처리할 명령어 저장 / 연산 도구
(4) 메모리 유닛케시 메모리(L1) : 처리속도 향상
처음으로 검색 기능을 구현하던 중이였는데
영어로 된 문자열 입력 시 기존에는 대문자면 소문자로, 소문자면 대문자로 변경하는 로직을 작성하였다.
return (
freelancer.name.toLowerCase().includes(searchKeyword). ||
freelancer.name.toUpperCase().includes(searchKeyword) ||
freelancer.workField?.workField.toLowerCase().includes(searchKeyword) ||
freelancer.workField?.workField.toUpperCase().includes(searchKeyword) ||
freelancer.workField?.workSmallField.toLowerCase().includes(searchKeyword) ||
freelancer.workField?.workSmallField.toUpperCase().includes(searchKeyword) ||
workExp === searchedKeyword
);
현재는 이 코드를 가지고 있지 않아서 기억나는대로 작성해보았다.
그런데 코드 리팩토링을 하는데 이 코드가 뭔가 비효율적으로 중복되고 있다는 생각이 들었고 좀 더 고민해본 결과 코드를 수정하였다.
const filteredfreelancerLists = freelancersData?.filter((freelancer) => {
const lowerCaseSearch = String(searchedKeyword).toLowerCase();
return (
freelancer.name.toLowerCase().includes(lowerCaseSearch) ||
freelancer.workField?.workField.toLowerCase().includes(lowerCaseSearch) ||
freelancer.workField?.workSmallField.toLowerCase().includes(lowerCaseSearch) ||
workExp === searchedKeyword
);
}
이렇게 미리 searchedKeyword를 toLowerCase해서 소문자로 변경한 후 변수에 담아주면 keyword가 이미 소문자이기 때문에 각 비교할 freelancer 속성을 다 소문자로만 비교해주면 된다!
비교적 간단한 리팩토링이지만 아직 이렇게 수정하는 것도 어렵다..하지만 열심히 생각하고 배우고 익혀야지..✍🏻