반응형
파일 시스템에서 파일이나 디렉토리의 위치를 지정할 때 사용하는 두 가지 경로 방식입니다: 상대경로와 절대경로. 이 두 가지의 개념과 사용법은 다음과 같습니다.
1. 절대경로 (Absolute Path)
개념
- 절대경로는 파일 시스템의 루트 디렉토리(/ 또는 C:\ 등)에서 시작하여 특정 파일이나 디렉토리로 가는 전체 경로를 나타냅니다.
- 경로의 시작점이 고정되어 있으므로 항상 같은 위치를 가리킵니다.
특징
- 항상 루트 디렉토리로부터 시작 (/ 또는 C:\).
- 파일이나 디렉토리의 고유한 위치를 나타냄.
- 다른 디렉토리에서 실행하더라도 동일한 파일을 가리킴.
예시
- UNIX/Linux: /home/user/documents/file.txt
- Windows: C:\Users\user\Documents\file.txt
장점
- 파일 경로가 명확하므로 다른 작업 환경에서도 혼동이 적음.
- 파일을 찾는 데 있어 오류 가능성이 낮음.
단점
- 경로가 길어질 수 있음.
- 파일이나 디렉토리 구조가 변경되면 깨질 가능성이 있음.
2. 상대경로 (Relative Path)
개념
- 상대경로는 현재 작업 디렉토리(현재 경로)를 기준으로 특정 파일이나 디렉토리로 가는 경로를 나타냅니다.
- 작업 디렉토리에 따라 경로가 달라질 수 있습니다.
특징
- 현재 위치를 기준으로 작성되므로 상대적.
- . (현재 디렉토리)와 .. (상위 디렉토리)를 사용하여 경로를 지정할 수 있음.
예시
- 현재 디렉토리가 /home/user일 때:
- documents/file.txt (현재 디렉토리 내의 documents 폴더)
- ../file.txt (상위 디렉토리의 file.txt)
장점
- 간결하고 관리하기 쉬움.
- 디렉토리 구조 변경 시 적응하기 쉬움.
단점
- 현재 작업 디렉토리에 따라 경로가 달라질 수 있어 혼동 가능.
- 외부 환경에서 실행 시 잘못된 위치를 참조할 위험이 있음.
3. 상대경로와 절대경로 비교
구분절대경로상대경로
기준 | 루트 디렉토리(/ 또는 C:\)에서 시작 | 현재 작업 디렉토리를 기준으로 경로를 계산 |
사용 시점 | 경로가 고정된 파일을 참조할 때 | 현재 디렉토리와 관련된 파일을 참조할 때 |
유연성 | 파일 구조 변경 시 취약 | 구조 변경에 더 유연 |
예시 | /var/www/html/index.html | ../html/index.html |
길이 | 길고 복잡할 수 있음 | 짧고 간결함 |
4. 선택 기준
- 절대경로를 사용하는 경우:
- 파일의 위치가 변경되지 않을 것이 확실할 때.
- 여러 디렉토리에서 실행되더라도 특정 파일을 참조해야 할 때.
- 중요한 설정 파일이나 시스템 파일을 지정할 때.
- 상대경로를 사용하는 경우:
- 프로젝트 내부의 파일이나 디렉토리를 참조할 때.
- 배포나 협업 중에 파일 구조가 변경될 가능성이 있을 때.
- 특정 위치에서만 실행되는 스크립트를 작성할 때.
5. 실습 예제
절대경로 예제
# 절대경로
file_path = "/home/user/documents/file.txt"
with open(file_path, 'r') as file:
print(file.read())
상대경로 예제
# 상대경로
file_path = "./documents/file.txt" # 현재 디렉토리 기준
with open(file_path, 'r') as file:
print(file.read())
6. 요약
- 절대경로는 항상 동일한 위치를 가리키며 명확하지만, 경로가 길어질 수 있습니다.
- 상대경로는 간결하고 유연하지만, 작업 디렉토리에 따라 경로가 달라질 수 있습니다.
- 상황에 따라 적절히 선택하여 사용하는 것이 중요합니다. 😊
반응형