본문 바로가기
Cording/Python_Basic

Python] 절대 경로 & 상대 경로 정리 끝!

by €€£¥ 2022. 11. 30.

 

1. 절대 경로(Absolute Path)와 상대 경로(Relative Path)가 그래서 뭔데??

 

엄청나게 간단하고 찰떡 같은 예를 들어보면~ 우리가 친구한테 길을 알려주는 방법을 생각해보자구.

일단 임의의 '세모네모 카페'로 친구를 불러야 한다고 가정해보면. 2가지 방법이 있을 거야. 

 

첫째. '세모네모 카페'의 주소를 알려주는 방법이 있을거야. 

"서울시 강남구 xx로 xx길, x"  같은 방식으로 말야. 이것이 절대 경로야. 

네 친구가 현재 어디에 있는지 상관없이 이 주소가 목적지니까 여기로 와! 라고 하면 되는 거지. 

 

두번째. 친구가 있는 위치를 기준으로 설명해 주는 방법이 있겠지?

마침, 친구가 강남역 앞까지는 도착을 해있다는 거야. 근데 주소를 알려줘도 얘가 길치라 길을 찾지를 못하네?

"강남역 1번 출구에서 XX편의점이 나올 때까지 200m 정도 직진을 해.  XX편의점이 나오면 오른쪽 골목꺾어서 150m 정도 직진해. 그럼 오른 편에 '세모네모 카페' 가 있을거야" 이렇게 알려주는 경우도 있지?

이것이 바로 상대 경로야.

네 친구가 있는 위치를 기준으로 목적지를 설명하는 방법인거지. 


컴퓨터에서도 마찬가지야.

내가 지금 작성하고 있는 코드 파일의 위치와는 상관없이 찾고자 하는 파일의 위치를 지정해주는게 절대 경로고,

작성 중의 코드 파일을 기준으로 찾고자 하는 파일이 어떤 위치에 있는지를 지정해주는게 상대 경로인게지.

 

 

2. 그럼 컴퓨터에서 절대 경로와 상대 경로는 어떻게 표기하냐는 말이지.

 

1) 절대 경로 - 찾고자 하는 파일의 위치를 가장 상위 디렉토리부터 차근차근 입력해줘야해.

Ex -  C:\Users\username\Desktop\folder_1\targetfile.txt

 

2) 상대경로는 절대경로에 오히려 좀 복잡하게 느껴질 수 있어.

일단 밑에 3가지 표기법을 꼭 기억해두자. 

a) 최상위 디렉토리 (루트 디렉토리) =   " / "

b) 현재 디렉토리 = " ./ "

c) 현재 디렉토리의 상위 디렉토리 = " ../ "

 

그럼 하기 디렉토리 구조 예시에서"작성중일파일"을 기준으로  "타겟파일_1"을 상대경로로 표기하는 연습을 해보자. 

=> 작성중인파일을 기준으로 디렉토리를 하나 위로 올라갔다가(" ../ ")  디렉토리_1 폴더로 들어가서 (" /디렉토리_1") 타갓파일_1을 찾아야 하지? 

 

=>  ../디렉토리_1/타겟파일_1.txt

 

 

3. 상대경로 약간 귀찮은데 굳이 사용해야 하나??

 

절대경로가 코드작성할 때 확인하기도 편하고 작성하다 잘못 입력할 일도 없어서 좋은 거 같은데 왜 굳이 상대 경로를 사용해야 할까 싶은데

그럼에도 불구하고 상대경로를 사용하는 이유는 절대경로를 사용하게 되면 프로그램 사용시 경로가 변경되거나 다른 os에서도 작동되는 프로그램을 만드는 경우, 그때 그때 상황에 맞는 경로를 모두 지정해줘야 하는 매우 비효율적인 상황이 생기기 때문이지. 

 

그렇다고 무조건 상대경로가 좋은거냐고 묻는다면 그렇지는 않구~ 절대경로가 필요한 경우도 있고 상대경로가 필요한 경우도 있다는 게지. 

 

 

1) 위에서 말한 것 처럼 절대 경로는 프로그램의 위치나 os의 변경이 있을 때마다 경로를 재지정해줘야 해야 한다. 

2) 하지만 정확한 경로가 명시되어 있는 만큼 위치 변경이 없는 경우라면 무조건 해당 파일을 찾아간다는 안정성은 있다. 

3) 보통 이런 특성 상 절대 경로는 소스 외부의 파일을 참조할 때 많이 사용하고 상대 경로는 내부 파일을 참조할 때 많이 사용한다. 

 

매번 사용할 때마다 헷갈리는 절대 경로와 상대 경로의 차이점과 사용법을 알아보았다. 

매우 기초적인 내용이지만 기초라서 중요한 내용이니 잘 숙지하고 지나가자~ 

 

댓글