
🇶 절대 경로와 상대 경로는 무엇인가요?
이번 글에서는 절대경로와 상대경로를 설명하기 위하여 디렉토리의 구조에 대해서 간략히 설명하고 절대경로와 상대경로를 소개한다.
디렉토리의 구조는 나무가 뿌리로부터 자라나 가지를 뻗는 것처럼 루트(Root) 디렉토리에서부터 여러 디렉토리들이 뻗어나오는 방식으로 짜여 있다. 디렉토리의 구조는 이 나무를 뒤집어 놓은 것처럼 생겼는데 이는 위의 그림처럼 생겼다.
디렉토리 구조에서 위에 있는 디렉토리는 상위(또는 부모) 디렉토리, 아래 있는 디렉토리는 하위(또는 자식) 디렉토리라고 부른다. 특정한 기준이 있는 것이 아니라 관계를 보았을 때 위 아래의 기준이라고 생각하면 된다.
경로는 말그대로 길이다. 우리는 이 디렉토리 구조 안을 돌아다니며 문서나 파일을 찾기도 하고 만들기도 하고 삭제하기도 하는 여러 작업을 한다. 그때 우리는 우리가 어디서 작업을 할 것인지를 먼저 밝혀줘야 한다. 내가 있는 곳, 혹은 내가 가고자 하는 곳을 컴퓨터에게 알려주는 데에 사용되는 것이 경로이다.
경로를 찾는데에는 두 가지 방법이 있는데 그것이 바로 절대경로와 상대경로이다.
절대경로의 정의는 다음과 같다.
루트 디렉토리(root directory)를 기준으로 어떤 파일이나 디렉토리까지의 경로를 표시하는 것.
절대경로는 시스템의 최상위 디렉토리부터 시작하기 때문에 경로를 찾을 때 다른 경로의 영향을 받지 않는다. 다만 최상위 디렉토리부터 시작하면 하위 디렉토리일수록 표시해야 하는 경로가 길어진다.
예를 들어
# Windows의 경우
C:\Users\Username\Doctuments\Vegetable\Onion_Peel1\Onion_Peel2\Onion_Peel3
# Unix/Linux의 경우
/home/username/documents/Vegetable/Onion_Peel1/Onion_Peel2/Onion_Peel3
이런 식이다. 그래서 보통 상대경로를 많이 쓰게 되는데 그럼에도 불구하고 절대경로가 유용한 경우가 있다.
1) 여러번 상위 디렉토리로 이동해야 하는 경우
: 위로 올라가는 경우 절대경로를 사용하는 것이 더 짧고 간편할 수 있다.
2) (옆쪽으로) 멀리 떨어져 있는 디렉토리로 이동해야 하는 경우
: 상대경로를 썼다면 들어갔다 나왔다를 반복하며 옆으로 이동해야 하는 경우, 절대경로에서 들어가는 것이 간편하고 다른 경로의 영향을 받지 않아 더 유용할 수 있다.
상대경로의 정의는 다음과 같다.
현재 자신이 위치해 있는 디렉토리를 기준으로 경로를 나타내는 것
상대경로를 나타낼 때 현재 자신이 있는 곳을 기준으로 현재 디렉토리와 상위 디렉토리를 표기할 수 있고 홈디렉토리를 표기할 수 있다. 이는 다음과 같이 나타낸다.
.
: 현재 디렉토리
..
: 상위 디렉토리
~
: 홀디렉토리
그래서 이를 활용해서 상대경로를 표시해보면 다음과 같다.
# 참고
C:\Users\Username\Doctuments\Vegetable\Onion_Peel1\Onion_Peel2\Onion_Peel3
# 현재 디렉토리(Onion_Peel1)의 상위 디렉토리(vegetable)에 있는 carrot.txt으로 이동
../carrot.txt
# 현재 디렉토리에서 Onion_Peel2 디렉토리 내의 dirt.txt로 가고 싶은 경우
Onion_Peel2/dirt.txt
이런 식으로 절대경로와 상대경로는 각각의 특징을 고려하여 상황에 맞게 사용하면 된다.