노트 join과 resolve의 차이
path.join과 path.resolve 메서드는 비슷해 보이지만 동작 방식이 다릅니다. /를 만나면 path.resolve는 절대경로로 인식해서 앞의 경로를 무시하고, path.join은 상대경로로 처리합니다. 코드로 보면 이해하기 쉽습니다.
path.join('/a', '/b', 'c'); /* 결과: /a/b/c */ path.resolve('/a', '/b', 'c'); /* 결과: /b/c */
노트 언제 \\를 사용하고, 언제 \를 사용하나요?
콘솔 결과를 보면 어떤 때는 \\를 사용하고, 어떤 때는 그냥 \를 사용해 윈도 경로를 표시했습니다. 기본적으로 경로는 \ 하나를 사용해서 표시합니다. 하지만 자바스크립트 문자열에서는 \가 특수 문자이므로 \를 두 개 붙여 경로를 표시해야 합니다. 예를 들어 \n은 자바스크립트 문자열에서 줄바꿈이라는 뜻이므로. C:\node와 같은 경로에서 의도하지 않은 오류가 발생할 수 있습니다. 이때는 C:\\node처럼 표시해야 합니다.
path 모듈은 위와 같은 경우에 발생하는 문제를 알아서 처리합니다. 윈도에서 path 모듈이 꼭 필요한 이유이기도 합니다.