'자바스크립트 성능 이야기' 라는 책을 읽으면서 자바스크립트 성능 최적화에 대해 새롭게 배운 점들을 정리해봤다.
코딩 하면서 자주 사용하는 배열, 반복문, 조건문 등 다양한 요소들의 성능 차이와 최적화 방법이 상세히 설명되어 있어서, 이해하기도 쉽고 흥미로웠다.
책을 읽으며 알게 된 내용과 내 생각을 간단히 메모하듯 남겨본다.
1. 객체의 생성 및 초기화 성능
- 배열 생성:
- 리터럴 방식([])이 생성자(new Array())보다 성능이 우수.
- 배열 데이터 할당:
- 접근자 형식(array[index])이 push() 메서드보다 성능이 더 나음.
결론: 배열 생성은 [] 방식과 접근자([])로 데이터를 할당하는 방법이 가장 효율적.
오브젝트 생성은 생성자와 리터럴({}) 간 성능 차이가 크지 않으며, 가독성과 유지 보수를 기준으로 선택.
2. 스코프 체인과 성능
- 스코프 체인 탐색:
- 지역변수를 활용해 탐색 경로를 최소화.
- 프로토타입 체인:
- 프로토타입 체인 활용 시 탐색 경로를 줄이는 것이 중요.
- 성능 이슈 요소:
- with 구문이나 catch 구문은 스코프 체인 탐색 성능에 영향을 미침.
결론: 스코프 및 프로토타입 체인을 활용한 코드에서 탐색 경로를 줄이는 것이 핵심.
3. 반복문과 성능
- 성능 비교:
- for, while, do-while 성능은 비슷.
- for-in 구문은 일부 브라우저에서 성능이 저하될 수 있음.
결론: 속성 탐색 경로를 최소화하고 반복 횟수를 줄이는 것이 중요. for-in은 IE 환경을 제외하면 자제하는 것이 좋음.
4. 조건문과 성능
- 성능 비교:
- 조건이 많을 경우 switch-case가 더 좋은 성능을 발휘.
- 최적화 방법:
- 조건 분기 처리를 배열이나 해시 객체로 대체.
결론: 조건문 최적화는 상황에 따라 다르게 적용. 성능뿐만 아니라 코드 가독성과 유지 보수를 고려해야 함.
5. 문자열 연산과 성능
- 문자열 생성:
- 리터럴("text")이 String 생성자보다 성능이 좋음.
- 문자열 병합:
- Array.join() 방식이 여러 브라우저에서 안정적.
결론: 문자열 생성은 리터럴 방식을, 병합은 Array.join()을 권장. 다만 최신 브라우저에서의 성능 테스트도 추천.
6. 정규 표현식과 성능
- 탐색 대상 축소:
- 불필요한 탐색 과정을 제거.
- 컴파일 최적화:
- 정규 표현식 컴파일 횟수를 최소화.
결론: 탐색 범위를 좁히고, 컴파일과 실행의 반복을 줄이는 방식으로 성능을 개선.
해당 챕터를 읽으면서 느낀 점은 성능 최적화에는 절대적인 답이 없다는 것이다.
상황과 목적에 따라 최적의 방법을 선택하는 것이 얼마나 중요한지 다시 한번 느꼈다.
성능 개선도 중요하지만, 코드의 가독성, 유지 보수성, 그리고 팀원들과의 협업까지 고려해야 비로소 좋은 코드라고 할 수 있음을 깨달았다.
'언어 > JS' 카테고리의 다른 글
| 자바스크립트 성능 이야기, 렌더링과 UI 스레드 최적화 (2) | 2024.12.01 |
|---|---|
| 자바스크립트 성능 이야기, 웹 사이트 최적화 (4) | 2024.11.10 |
| 모달창에서 활용하는 이벤트 버블링의 원리 (3) | 2024.09.23 |
| 객체(object) - method, this (1) | 2023.05.09 |
| 객체(Object) (2) | 2023.05.09 |