카테고리 없음

상대경로와 절대경로의 차이

idea9329 2024. 11. 28. 14:29
반응형

 

파일 시스템에서 파일이나 디렉토리의 위치를 지정할 때 사용하는 두 가지 경로 방식입니다: 상대경로 절대경로. 이 두 가지의 개념과 사용법은 다음과 같습니다.


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. 요약

  • 절대경로는 항상 동일한 위치를 가리키며 명확하지만, 경로가 길어질 수 있습니다.
  • 상대경로는 간결하고 유연하지만, 작업 디렉토리에 따라 경로가 달라질 수 있습니다.
  • 상황에 따라 적절히 선택하여 사용하는 것이 중요합니다. 😊
반응형