파일 경로는 대단히 중요합니다. 모듈이나 미디어 파일을 이용할 때 경로가 잘못된다면 오류가 날 수도 있고, mkdir
, cd
등의 리눅스 명령어를 이용할 때도 경로를 잘못 입력하면 원하는 결과와 전혀 다른 결과를 초래하게 됩니다.
절대 경로
는 파일의 root
부터 해당 파일까지의 전체 경로(URL)를 의미합니다. 절대 경로는 보통 다른 사람의 문서나 파일을 이용할 때 사용합니다. 절대 경로는 어느 곳에서든 경로에 접근할 수 있다는 장점이 존재합니다. 그러나 경로가 변경되면 경로를 일일히 수정해야한다는 단점이 있습니다.
절대 경로는 보통 다음과 같은 것들을 의미합니다.
https://velog.io/@bami
C:\Program Files\Git
상대 경로
는 현재 파일의 위치를 기준으로 연결하려는 파일의 상대적인 경로를 적는 것을 의미합니다. 상대 경로는 주소나 프로젝트 디렉토리 위치가 바뀌어도 내부 구조만 그대로라면 수정없이 그대로 사용할 수 있다는 장점을 가지고 있습니다. 그러나 자기 자신이 기준이기 때문에 자기 자신의 위치가 바뀌는 것에 취약하다는 단점이 있습니다.
상대 경로는 보통 다음과 같이 명시한 것들을 의미합니다.
./src/compnents/Counter.js
../../img/logo.jpg
보니까 절대 경로와는 다르게 상대 경로에는 ./
와 ../
같은 것들이 사용되죠? 이들에 대해서 알아보겠습니다.
기호 | 의미 |
---|---|
/ | root |
./ | 현재 위치 |
../ | 상위 경로 |
/
만 사용되면 root
, 즉 가장 토대가 되는 경로가 선택됩니다.
./
는 현재 위치를 나타냅니다. 현재 위치 ./
는 보통 생략합니다.
../
는 상위 경로를 나타냅니다. 상위 경로는 현재 폴더가 속한 폴더를 가리킵니다.
다음 디렉터리 구조를 예를 들어서 좀 더 자세히 알아보겠습니다.
우리가 c.txt
에서 작업을 하고 있을 때, a.txt
파일로 이동하고 싶다면 다음과 같이 경로를 작성합니다.
../../a/a.txt
반대로, a.txt
에서 c.txt
를 향하고 싶으면 다음과 같이 작성합니다.
../c/inner_C/c.txt
temp
를 root로 가정했을 때, root를 기준으로 a.txt
의 위치를 나타내고 싶다면 다음과 같이 나타냅니다.
/a/a.txt
그렇다면 절대 경로
와 상대 경로
는 각각 언제 사용해야 할까요? (웹 개발 기준)
일반적으로 절대 경로
는 CDN(콘텐츠 전송 네트워크)
을 사용하거나, 웹에 올려진 미디어 등을 사용할 때 사용합니다. 상대 경로
는 디렉토리 내부에서 모듈을 연결하거나, 다른 파일을 import하는 경우에 사용하게 됩니다.
너무 잘 봤습니다. a.txt c.txt부분이 서로 바뀐 것 같은데 확인 부탁드립니다.