Module
모듈이란 독립적인 기능을 가진 코드의 집합으로, 다른 코드와의 충돌을 최소화하며 재사용 가능한 구조를 만들기 위해 사용된다. 모듈은 소프트웨어의 설계 및 유지 보수를 쉽게하기 위해 코드를 논리적으로 분리하여 작성할 수 있게 한다. 각 모듈은 독립된 스코프를 가지므로, 변수와 함수가 외부로부터 보호되어 정보 은닉을 구현할 수 있다.
module.exports
를 사용해 모듈에서 내보낼 기능을 지정한다.require()
함수를 이용해 모듈을 볼러온다.// myMoudle.js
function myFunction() {
// something
}
module.exports = myFunction;
// main.js
const myFunction = require('./myModule');
myFunction();
이렇게 모듈을 생성하고 불러오는 방식을 통해 코드를 모듈화하고 재사용성을 높일 수 있으며, 프로젝트의 구조를 더욱 체계적으로 관리할 수 있다.
Testing
소프트웨어 테스트는 소프트웨어 제품이나 애플리케이션이 의도한대로 작동하는지 평가하고 검증하는 과정이다. 테스트의 이점으로는 버그 방지, 개발 비용 절감 및 성능 향상이 있다.
단위 테스트(Unit Tests) : 애플리케이션의 소스에 가까운 매우 낮은 수준의 테스트로, 클래스, 구성 요소 또는 모듈에서 사용하는 개별 메서드와 함수를 테스트한다. 단위 테스트는 일반적으로 자동화하기 쉽고 지속적인 통합 서버에서 매우 빠르게 실행할 수 있다.
통합 테스트(Integration Tests) : 애플리케이션에서 사용하는 다양한 모듈 또는 서비스가 잘 작동하는지 검증한다. 이러한 유형의 테스트는 여러 부분이 작동하고 있어야 하므로 실행 비용이 더 많이 든다.
기능 테스트(Functional Tests) : 애플리케이션의 비즈니스 요구 사항에 초점을 맞춘다. 기능을 검증하기 위해 비즈니스 시나리오를 에뮬레이션하며 기능 요구 사항을 기반으로 작동한다.