본문으로 바로가기

절대경로와 상대경로

category Helloworld! 2013. 4. 17. 12:00

참말로... 소스코드 짜다보면 절대경로와 상대경로.

너무헷갈린다!


학교나 학원이나 또는 혼자 공부로 경로에 대해서 수없이 공부해도 매번 쓸때마다 헷갈리는
경로. 개념은 숙지했어도 실천에서 응용이 안되니...

다시한번 공부도 할겸 정리해보자.


1. 절대경로

- 어떠한 웹페이지나 파일이 가지고 있는 고유한 경로를 말한다.

- 예를들어 http://www.google.com, C:\users\document\untitled.jpg 등을 모두 절대 경로라고한다.

- 다르게는 '그 위치'라는 개념이라고 말할 수 있는데 주소라고 생각하면 이해하기 더 쉽다.

- 음... 다시한번 예를 들어 내가 만약 d:\file 또는 c:\file\img.jpg 등 절대 경로를 알고 있으면 그곳으로 바로 이동하거나 그곳에 있는 파일을 바로 실행 가능하다는 것. 

- 따라서, 그건 거기에 있으니깐 실행해(가, 가져와 등등)이 된다.


2. 상대경로

- 상대경로를 풀어서 보면 '현재 위치한 곳을 기준'으로 해서 '그곳의 위치'이다.

- 다시한번 설명하자면 (Web이라고 기준하에) html 파일이 위치한 폴더를 기준으로 상대적인 경로라는 것.

- 예를 들어 C:\users\documents\sehee라는 폴더 밑에 A라는 폴더와 B라는 폴더가 있다고 가정하고,

   A라는 폴더안에 index.php 파일이 위치한다고 가정하고 현재 내가 B라는 폴더에 위치한다면,

   A폴더 안에 index.php파일을 가져오기 위해서는 B라는 폴더를 기준으로 계산을 한다.

   따라서 ../A/index.php이라고 하여 index.php로 간다는것.

- 여기서 참고할 것!

   / : 루트

   ./ : 현재 위치

   ../ : 현재 위치의 상단 폴더

ex) index.php가 C:\index\a에 위치한다면,

      여기서 / 는 C:

               ./ 는 a

              ../ 는 index라는 것.


- 3가지를 간단히 정리하자면,
   1  '/'    -> 가장 최상의 디렉토리로 이동한다.(Web root)
   2  './'   -> 파일이 현재 디렉토리를 의미한다.
   3  '../'  -> 상위 디렉토리로 이동한다.

- 만약 두단계 상위 디렉토리로 이동하려면
   '../../' 이렇게 사용하면 된다.





댓글을 달아 주세요

  1. 지나가던이 2017.02.13 14:55

    지나가다 들렀는대 ex) C:\index\a\index.php에서 ../가 a ./가 index 아닌가요?

    • Favicon of https://88240.tistory.com BlogIcon shaking shaking 신고">2017.02.27 13:10 신고

      혼란이 될 수 있는 설명이었겠네요.
      C:/index/a/index.php 에서 폴더 경로는 C:/index/a 이고 a라는 폴더 안에 index.php라는 파일이 있을때 ../ 와 ./ 에 대해 쓰고싶었습니다.
      이렇게 설명하면 ./가 a, ../가 index 가 맞겠죠?
      혹여나 지나가던이님이 지적해주신 대로라면 ../가 a는 될 수 있지만, 그래도 ./가 index는 될 수 없습니다. (아무래도 index.php 를 말하고싶으셨던것 같습니다.) 댓글 감사합니다.

  2. 칼잡이최제잘 2017.05.05 11:37

    검색하다가 찾았네요 감사합니다.~도움이 많이 되었습니다.

  3. Park 2017.06.19 11:09

    C:\index\index2\index3\index.php
    라고 가정 한다면
    index.php 의 상대경로는 ../../index3/index.php 가 맞나요?

  4. momo 2017.06.20 11:05

    감사합니다! 좋은 정리였어요 ㅎㅎ

  5. 지나가던사람 2017.11.05 14:50

    ./가 루트인걸로 알고 있는데 아닌가요? 실제로 테스트해보니 ./가 루트로 적용되는 것 같은데...

    • shaking 2017.11.07 16:19

      ./ 는 현재 위치를 말합니다. 루트에서 ./를 썼으면 루트로 나올겁니다.

  6. 걱정하지않는자 2017.12.25 15:33

    감사합니다!

  7. 배움 2018.04.25 10:07

    도움주셔서 감사합니다. 이거 보고 참고할게요

  8. 별쾅쾅 2020.06.26 09:57

    상대경로와 절대경로가 햇갈려서 검색하다가 왔는데
    이제서야 이해가 갑니다, 잘 배워 갑니다.

  9. appdata 2020.07.28 15:21

    혹시 %appdata% 의 경로는 어떻게 해야하나요?
    C:\Users\Android1234\AppData\Roaming\.minecraft\mods
    이런 경로는 유져 아이디가 들어가서
    본인컴 이외는 경로가 맞지 않는데 모든 컴퓨터에 호환이 되는 경로는 어떻게 적어야 하나요"?

  10. Favicon of https://yeonji-qp.tistory.com BlogIcon yeonji_qp 신고">2020.08.10 19:23 신고

    이해가 잘 갔어요 감사합니다!!!

  11. wookie 2021.01.22 15:34

    상단폴더가 아닌 상위폴더로 바꾸면 더 이해가 쉬울 것 같아요^^

  12. 꼬브기 2021.03.06 09:54

    문득 지나가다가 이런 설명은 어떨까 하고 생각해봤습니다. ^^ 참고만 하세요.
    절대경로(Absolute Path)는 어떤 파일 또는 폴더의 위치가 하나로 고정된 경로.
    상대경로(Relative Path)는 어떤 파일 또는 폴더의 위치가 하나로 고정되지 않은 경로.

  13. 지나가는나그네 2021.03.17 11:06

    감사합니다 근데 ~/.bashrc 이렇게도 사용하던데 이거는 어떻게 이해해야되나요

  14. 초로기 2021.04.14 09:16

    얘두라

    터미널 명령어 중에 cd 사용해서
    홍길동처럼 동해번쩍 서해번쩍
    이 디렉터리에서 저 디렉터리로 하는 걸 연습해바바

    흡사 개마고원에서 한라산까지의 디쓰퉌쓰로 크게크게 디렉터리를 이동하려는 연습 좀 해주면
    자연스레 익혀진다!

    흐지만,,,,,,,
    이거시 무수한 현업과 실전에서
    헷갈리는 경우는 보통 리소스 경로나 URI 경로 맵핑에서야!

    자 예를 들어보께에~~~

    Request URL : http://www.아이러브세히.com/사랑하는/연인들을/위한/lovers/addMyHeart
    Request URI : /사랑하는/연인들을/위한/lovers/addMyHeart

    에부리개부리 뤼쓴!
    위 요청 URI 를 기준으로 설명할테니 잘드뤄봐~
    내가 위 요청을 받아서 딴 데로 돌려버린다고(Forwarding) 생각해봐

    만약에 아래로 URI를 돌리고 시풔.
    (진심한스푼을 더하고자 했지만, 그간 행복했던 순간들 그 모든 기억을 다 잊고싶다 이거야!!!!! 나얼의 바람기억이란 노래가사처럼 말이지.)

    Forward URL : http://www.아이러브세히.com/행복했던/우리의/moments/removeMyAllMemories
    Forword URI : /행복했던/우리의/moment/removeMyAllMemories


    자, 잘들어 결론내린다.

    [현재위치] /사랑하는/연인들을/위한/lovers/addMyHeart
    [이동위치] /행복했던/우리의/moments/removeMyAllMemories

    현재기준으로 상대경로 어떻게 적음돼?
    형 이제 똥싸러 가야대서. 답만 적고 나갈게
    설명은 위 포스팅 참고하고 ~

    [ 답: ../../../행복했던/우리의/moments/removeMyAllMemories ]

    자 왔노라! 쌌노라! 비웠노라!
    쾌속쿨똥 비워내고 와따~~~~

    뭐랄까 해우소 주지승이 직접 50년 발효시킨 유산균으로 담근 불가리스 먹다 체했는데, 하 드뎌 살아따... 국립하버드파고다주립병원에 갈필욘없게써.

    오늘 깨운하게 비워낸 기념으루 특별히 설명 마저 해주께~~~
    완벼크한 디스끄륍쎤 시작!

    [ 출발지의 최하위 디렉터리 기준으로 일단 위로 몇번 올라갈지 생각하면 돼! ]
    [ 따라서 최하위 디렉터리인 lovers 부터 몇 번 올라갈지 생각해라! ]
    [ 끝에 addMyHeart 는 디렉터리가 아니다잉~ ]

    출발지 : /사랑하는/연인들을/위한/lovers/addMyHeart
    목적지 : /행복했던/우리의/moments/removeMyAllMemories

    [ lovers 기준으로 위로 4번 위로가면 최상위에 도달하지? -> ../../../../ 일단 이렇게 위로 4번 이동해야 한단 뜻이얌 ]

    [ 최상위 도착한 뒤부터는 쉽지 뭐. 목적지대로 /경로1/경로2/경로3 식으로 찾아가면 돼 ]


    [ 모르겠으면 풀어서 설명해주께. ]

    /사랑하는/연인들을/위한/lovers/.. => /사랑하는/연인들을/위한
    /사랑하는/연인들을/위한/lovers/../.. => /사랑하는/연인들을
    /사랑하는/연인들을/위한/lovers/../../.. => /사랑하는
    /사랑하는/연인들을/위한/lovers/../../../.. => /

    [ 자 ! 최상위까지 올라와찌? ]
    [ 이제 목적지로 파고 드뤄가야대 붙여가며 두루가두루가~~~ ]

    /사랑하는/연인들을/위한/lovers/../../../../행복했던 => /행복했던
    /사랑하는/연인들을/위한/lovers/../../../../행복했던/우리의 => /행복했던/우리의
    /사랑하는/연인들을/위한/lovers/../../../../행복했던/우리의/moments => /행복했던/우리의/moments

    lovers 기준으로 [ 최상위까지 이동 후, moments 까지 도착했어 ]
    lovers / [ .. / .. / .. / .. / 행복했던 / 우리의 / moments ]
    이제 moments에 있는 놈 중에 [ removeMyAllMemories 실행하면 끝 ~~~ ]

    [ .. / .. / .. / .. / 행복했던 / 우리의 / 시간들 / moments / removeMyAllMemories ]