재구성(Refactoring) 할때 생각할 수 있는 질문
- 결과를 확인할 수 있는가?
- 결과를 다른 방식으로 도출할 수 있는가?
- 한눈에 보고 이해할 수 있는가?
- 결과나 방법을 다른 문제해도 적용할 수 있는가?
- 해결책의 성능을 향상시킬 수 있는가?
- 재구성할 수 있는 다른 방법을 생각할 수 있는가?
- 다른 사람들은 이 문제를 어떻게 해결하는지?
결과나 방법을 다른 문제해도 적용할 수 있는가?
문제를 해결함으로써 얻을 수 있는 큰 이점 중 하나는 직감을 발달시켜 다른 문제를 해결할 수 있는 직관력을 길러준다는 것이다.
따라서 해결책을 작성할 때마다 잠시 멈추고 이 해결책이나 이 문제가 이전에 접했던 다른 문제와의 유사점이 있는지 자문해 보는 것이 좋다.
해결책의 성능을 향상시킬 수 있는가?
주로 시간 복잡도와 공간 복잡도로 분석한다.
재구성할 수 있는 다른 방법을 생각할 수 있는가?
예를 들어 회사의 스타일 지침을 따라 코드를 작성하는지? 혹은 언어의 규칙을 따르고 간격이 일정한지를 생각해볼 수 있다.
다른 사람들은 이 문제를 어떻게 해결하는지?
무언가를 작성하면서 코드를 js에서는 찾을 수 없더라도 검색을 하다가 다른 사람이 자바나 파이썬에서 작성한 코드를 찾아서 나의 코드와 비교할 수도 있다. 이런 작업을 통해 새로운 개념과 다른 접근법을 알 수도 있다.
TIP. 정규 표현식을 사용하는 것 보다 charCode 를 사용하는 것이 55% 더 빠르다.
본 내용은 작성자가 (Udemy) JavaScript 알고리즘 & 자료구조 마스터클래스 강의를 듣고 정리 및 메모한 내용입니다. 오역 및 오개념이 있을 수 있으니 바로잡기 위해 문제가 있는 경우 댓글 남겨주시면 매우 감사하겠습니다.
https://www.udemy.com/course/best-javascript-data-structures/
'Algorithm' 카테고리의 다른 글
문제 해결 패턴 - Frequency Counters (0) | 2022.07.17 |
---|---|
문제 해결 패턴 종류 (0) | 2022.07.17 |
문제 해결 2단계 ~ (0) | 2022.07.11 |
문제 해결법 + 문제 해결 1단계 (0) | 2022.07.11 |
배열(Arrays)과 객체(Objects)의 성능 평가 (0) | 2022.07.09 |