NEXTSTEP의 온보딩 미션을 진행하면서, 리뷰받았던 내용들에 대해 간단히 정리해보고자 한다.
isNaN, Number.isNaN
isNaN의 경우, 주어진 인자의 값이NaN인지 판별하여true,false를 반환하는 전역 함수이다. 하지만 인자의 타입을Number으로 강제 형변환 후에 판별하기 때문에, 엄격한 비교룰 위해서는 ES6에 추가된Number.isNaN을 사용햐는 것이 적절하다.Number.isNaN은 기존에 존재하는isNaN의 엄격한 버전으로서, 주어진 값의 유형이Number이면서 주어진 인자의 값이NaN인지 판별하여true,false를 반환하는 함수이다.
Number.isNaN(NaN); // true
isNaN(isNaN) // true
Number.isNaN(Number.NaN); // true
isNaN(Number.NaN) // true
Number.isNaN(0 / 0) // true
isNaN(0 / 0) / // true
// 예를 들면 이들은 global isNaN()으로는 true가 됐을 것임
Number.isNaN("NaN"); // false
Number("NaN") // NaN
isNaN("NaN") // true
Number.isNaN(undefined); // false
Number(undefined) // NaN
isNaN(undefined) // true
Number.isNaN({}); // false
Number({}) // NaN
isNaN({}) // true
Number.isNaN("blabla"); // false
Number("blabla") // NaN
isNaN("blabla") // true
// 모두 false
Number.isNaN(true); // false
Number.isNaN(null); // false
Number.isNaN(37); // false
Number.isNaN("37"); // false
Number.isNaN("37.37"); // false
Number.isNaN(""); // false
Number.isNaN(" "); // false
모듈의 응집도, 결합도
- 모듈화란 소프트웨어를 각 기능별로 나누는 것을 말한다. 그리고 각각의 기능별로 나눠진 모듈화의 결과를 모듈이라고 하며, 좋은 모듈화는 목적에 맞는 기능만으로 모듈을 나누는 것이다. 즉 주어진 기능만을 독립적으로 수행하며 다른 모듈과 적게 연관되어야 한다.
- 독립성이 높은 모듈일수록 좋은 모듈이며, 모듈의 독립성은 결합도와 응집도를 통해 측정한다.
- 결합도가 낮을 수록, 응집도가 높을 수록 독립성이 높아진다.
결합도
- 결합도는 서로 다른 모듈 간의 상호의존성을 나타내는 정도 혹은 연관된 관계를 뜻한다.
- 모듈이 낮은 결합도를 가질수록 좋다.
응집도
- 응집도는 한 모듈 내부의 처리 요소들이 서로 관련되어 있는 정도를 뜻한다.
- 하나의 기능을 중심으로 잘 뭉쳐있는지를 나타내며, 모듈이 높은 응집도를 가질수록 좋다.