path모듈은 왜 필요한가
-
path모듈은 파일 경로나 디렉터리 경로를 다룸
-
굳이 경로를 다루는 모듈이 필요한 이유는 운영체제 간에 경로를 구분하는 구분자가 다르기 때문에
1. 경로 구분자를 통일할 수 있음
-
윈도우 운영체제는 파일 경로를 표시할 때 경로 구분자로 역슬래시(\) 사용
C:\Users\anold\Desktop\MOMENTO
-
유닉스 기반 운영체제인 맥OS나 리눅스에서는 경로 구분자를 슬러시(/) 사용
/User/andold/Desktop/MOMENTO
-> 이렇게 운영체제마다 경로구문자가 다르니 맥과 윈도우를 오가면서 사용할 때는 종종 파일을 찾지 못하는 실수를 하기도 함. 그럴때 path모듈을 사용해서 경로를 지정하면 구분자를 신경쓰지 않아도 됨
2. 경로를 나누거나 합칠 수 있음
절대경로와 상대경로
1. 절대경로
- 파일이나 폴더의 위치를 루트root 폴더부터 시작해서 파일까지 전부 다 나타내는 것(루트 폴더는 최상위 폴더를 가르킴)
C:\Users\anold\Desktop\MOMENTO
- 웹 서버에서는 드라이브 개념이 없어서 웹에서 말하는 절대 경로는 다음처럼 나타냄
/User/andold/Desktop/MOMENTO
2. 상대경로
- 기준이 되는 파일이 있을 때 사용하는 경로(ex) 직접 만든 모듈을 가져와서 사용할 경우 현재파일을 기준으로 모듈이 어느 위치에 있는지 지정할 때 사용
- 상대경로에는 같은 폴더에 있을 경우
./ 로 표기, 한단계 위 부모 폴더에 있을 경우, ../를 사용
import hello from "./hello.js';
경로를 다루는 주요 함수
1. path 모듈 가져오기
- path모듈은 노드에 포함되어 있어서 설치 하지 않고 바로 가져올 수 있음

- 하위폴더를 여러개 만들고 그 안에 있는 파일을 가져오거나 하위 폴더에 파일 저장하는데 이때 join함수를 사용하면 여러 조각으로 나눠서 입력한 경로를 연결해 하나로 만듬


-> 터미널 결과에서 확인할 때 구분자는 윈도우는 역슬래시(\), 맥에서는 슬러시(/)로 표기
2. 경로만 추출하기 - dirname함수
- 경로에서 파일이름을 제외한 경로만 추출하는 함수


3. 파일이름 추출하기 - basename 함수
- 경로에서 파일이름만 추출(확장자를 제외한 이름만)
- 확장자를 알고 있는 상태에서 선택해서 확장자 제외할 수 있음


4. 확장자 추출하기 - extname 함수
- 확장자를 모르는 상태에서 extname함수를 사용하면 주어진 경로에서 파일의 학장자만 추출할 수 있음


5. 경로를 객체로 반환하기 - parse 함수
- parse 함수는 경로를 분해해서 정보를 각각 객체로 반환
- 파일경로와 이름, ,확장자 등의 정보를 객체로 반환

