더북(TheBook)

노트 join과 resolve의 차이

path.joinpath.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 모듈이 꼭 필요한 이유이기도 합니다.