본문으로 바로가기

절대경로와 상대경로

category 언어/JAVA 2019. 9. 23. 22:42
절대경로란?

컴퓨터의 파일을 찾아가는 방법은 절대경로로 파일을 찾는 방법 한가지 뿐이다.
절대경로란 최초의 시작점으로 경유한 경로를 전부 기입하는 방식
윈도우 OS의 바탕화면에 위치한 test.txt 파일을 예로 들어보자.
test.txt 파일의 절대 경로는 최상위 루트 디렉토리인 C 디렉토리로부터 시작되어 아래와 같이 구성되어있다.
C:\Users\UserID\Desktop\test.txt
이렇게 최상위 루트로부터 경유한 경로를 전부 기입한 절대 경로로만 파일을 찾을 수 있다.

상대경로란?

상대경로는 상대적이라는 단어로 개념을 설명해보려고 한다.
상대경로는 항상 비교할 대상이 있어야 한다.
즉, 우리가 프로그래밍을 할 때도, 상대 경로를 읽을 때도 어떤 경로로부터 비교하는지를 염두해야 한다.
예로 아래와 같은 상대경로 두개로 설명하겠다.
  • Desktop\test.txt
  • test.txt
OS에게 저렇게 경로를 알려주면 OS는 파일의 위치를 찾지 못한다.
앞서 말했듯이 OS는 절대경로로 파일을 읽는 방법밖에 없다.
위의 2개의 상대경로는 C:\Users\UserID\Desktop\test.txt를 의미할 거 같지만 비교 대상이 누구인지에 따라, 경로가 천차만별로 바뀐다.
상대경로의 비교 대상이 만약 C 드라이버의 jjs 디렉토리라면,
위의 2개의 상대경로는 아래와 같이 절대경로로 해석된다.
  • C:\jjs\Desttop\test.txt
  • C:\jjs\test.txt
우리 머리속에 담아져 있는 C:\Users\UserID\Desktop\test.txt 경로라는 아예 다른 걸 볼 수 있다.
결론적으로, 상대경로는 기준 경로를 기준으로 절대경로가 구성되며, 상대경로로 파일의 위치를 찾을 수 있는 이유는 기준 경로가 절대 경로로 변환하여 OS에게 전달하기 때문이다.

상대경로가 왜 필요할까?

절대경로는 정적인 문자열로 특정 컴퓨터의 파일 위치를 정확히 알려준다.
하지만, 경로를 다룰 때는 이러한 정적인 특징이 오히려 단점으로 다가올 수도 있다.
예를 들어, test.txt의 경로가 항상 자주 바뀌는 상황이거나 루트 디렉토리가 서로 다른 OS들을 다룬다면 어떨까?
정적인 특징 때문에 전자는 절대경로로 작성된 모든 문서를 다시 작성해야 하며, 후자는 OS별로 절대경로를 작성해서 관리해야 한다.
윈도우 OS같이 GUI로 파일을 더블클릭해서 들어가지만, GUI가 없는 리눅스는 디렉토리를 접근할 때마다 절대경로로 풀 패스를 적어야 한다.
만약 상대경로를 이용하여, 비교 대상이 우리에게 주어지는 상황이라면 위에서 언급한 문제를 해결할 수 있다.

결론적으로

요약하자면, 절대경로최상위 디렉토리가 반드시 포함된 경로를 의미하며, 상대경로현재 디렉토리(비교 대상)를 기준으로 작성된 경로를 의미한다.

'언어 > JAVA' 카테고리의 다른 글

쿠키란??  (0) 2019.09.24
final클래스와 final메소드  (0) 2019.09.23
메소드 재정의  (0) 2019.09.19
클래스 상속  (0) 2019.09.19
디자인 패턴이란??  (0) 2019.09.16