파일 시스템에서 특정 파일이나 디렉토리를 참조할 때 사용하는 절대경로와 상대경로는 개발에 필수적인 개념입니다. 로컬 환경과 서버 환경을 예시로 들며 절대경로와 상대경로의 차이를 쉽게 설명해보겠습니다.
절대경로는 파일 시스템의 최상위 디렉토리부터 파일이나 폴더까지의 전체 경로를 지정합니다. 이 경로는 위치가 고정적이며, 항상 특정 파일에 대한 정확한 위치를 알려줍니다.
로컬 환경
만약 파일이 C:\project\images\logo.png에 있다면, 이 경로가 절대경로입니다. 이 경로는 항상 동일하게 해당 파일을 가리킵니다.
서버 환경
서버에서 프로젝트가 /var/www/html/project에 있다고 가정하면, logo.png 파일의 절대경로는 /var/www/html/project/images/logo.png가 됩니다. 서버에서 일반적으로 /로 시작하는 경로는 절대경로로 취급됩니다.
상대경로는 현재 작업 중인 디렉토리를 기준으로 파일이나 폴더 위치를 지정합니다. 파일이나 폴더가 프로젝트 내부에서 이동하거나 환경이 달라져도 쉽게 적응할 수 있는 유연한 경로 방식입니다.
로컬 환경
현재 디렉토리가 C:\project라면, images 폴더 내 logo.png 파일에 접근할 때 .\images\logo.png로 지정할 수 있습니다. 여기서 .는 현재 디렉토리를 의미합니다.
서버 환경
서버에서 현재 파일이 /var/www/html/project에 있을 때, images/logo.png로 상대경로를 사용하여 접근할 수 있습니다. 웹 경로에서는 ./를 생략해도 무방합니다.
| 절대경로 | 상대경로 | |
|---|---|---|
| 정의 | 루트 디렉토리부터의 전체 경로 | 현재 디렉토리를 기준으로 지정 |
| 로컬 환경 예시 | C:\project\images\logo.png | .\images\logo.png |
| 서버 환경 예시 | /var/www/html/project/images/logo.png | images/logo.png |
| 사용 시기 | 고정된 경로가 필요한 경우 | 유연한 경로가 필요한 경우 |
Tip: 웹사이트에서
img/logo.png처럼 상대경로를 사용하면 로컬과 서버 모두에서 동일한 방식으로 작동하므로, 이식성이 높아집니다.