[목차] == 파일 시스템에서의 하드 링크 == [[유닉스]] 계통에서 널리 쓰이고 있으며, [[Microsoft Windows|윈도우]]의 경우 비스타부터 지원되고 있다. 동일한 데이터를 가리키는 두 개의 논리적인 파일을 만드는 방법. 동일한 파일 ID를 갖기 때문에, 한쪽을 삭제해도 파일은 하드디스크에 남아 있다. 모든 하드 링크를 삭제해야만 온전히 파일을 삭제할 수 있다. 반대되는 개념은 심볼릭 링크. 이것은 [[Microsoft Windows|윈도우]]에서 단축 아이콘과 비슷하다. 다른 점은 lnk[* 바로가기 확장자이다.] [[확장자]]가 없다는 것. == 프로그램에서의 하드 링크 == 절대 경로(Absolute Path)를 입력하여 리소스를 링크하는 방법. 반대 개념은 상대 경로(Relative Path)를 입력하여 링크하는 방법. 상대 링크(Relative Link)[* 웹에서는 Path, URL에서의 Absolute | Relative 용어 혼재 때문에 대개는 그냥 링크라고 칭한다. 아래 후술.]라고 한다. === 경로(Path) 관점 === 절대 경로는 트리 구조(Tree-structured directory)의 특정 리소스 집합에서 Root부터 시작하는 경로를 제시하는 것으로 현실의 예로 > "대한민국 서울특별시 종로구 청와대로 1로 가면 청와대임" 이라 지정하는 것이다. 상대 경로는 트리 구조의 특정 리소스 집합에서 참조를 시작하는 node에서부터의 경로를 제시하는 것으로 현실의 예로 > "집 밖으로 나가 보이는 큰길 따라 옆으로 두 블럭 가면 청와대임." 이라고 지정하는 것이다. * 시작하는 node에 대한 해석은 시스템마다 다르다. URL(Web)에서는 위치를 지정하는 리소스가 위치한 디렉토리부터 시작한다. * 그 외에는 경우에 따라 다른데, 위치를 지정하는 리소스부터 시작하는 경우가 있어 이 경우 소속 디렉토리부터 경로를 지정함을 기술하려면 "{{{./}}}"로 시작하여 리소스가 위치한 디렉토리부터 시작함을 명시해야 한다. 많은 Unix계열 shell(+ powershell)이 이걸 구분 잘 못하기 때문에(특히 프로그램 실행을 명령할 때) Relative Path를 기술할 때는 일단 점부터 찍고 시작하는 행위를 습관화 하는게 편하다. === 예제 === 다음과 같은 리소스 구조가 있다고 하자. {{{ / css/ main.css header.css about.css detail/ post-view.htm post-edit.htm index.htm about.htm }}} post-view.htm에서 about.htm으로 가는 경로를 다음과 같이 제시하면 상대경로이다. href="../about.htm" Resource Path는 '{{{/}}}'[* Windows에서는 backslash(\\)를 사용한다. 한국의 경우 원 기호({{{\}}})로 표현된다.]로 node를 분리하는데, 위의 경우 {{{["..", "about.htm"]}}} 의 형태로 분리된다. 여기서 ".."는 상위 디렉토리로 가라는 지시어이다. 즉 {{{detail/}}} 디렉토리를 나가게 된다. 그 후 "about.htm"을 찾게 된다. 절대 경로로 지정할 경우 다음과 같이 지정할 수 있다. href="{{{/about.htm}}}" 첫 번째 문자가 "{{{/}}}"로 시작하면 절대 경로로 인지하는데, 이 경우 리소스 tree의 root부터 탐색하게 된다. 별개로 시작 문자가 "{{{.}}}"인 경우 현재 디렉토리를 의미한다. 예를 들어 {{{post-view.htm}}}에서 {{{post-edit.htm}}}을 가리키고 싶을 경우 "{{{./post-edit.htm}}}"의 형태로도 지정할 수 있다. 사용례 * URL : Web 리소스 위치를 지정하는 주소, hyperlink(anchor tag) 등에서 리소스를 지정할 때 활용된다. * URI : 프로그램에서 자원의 위치를 지정하는 주소. URL을 범용화 한 것이라고 보면 된다. 컴퓨터 파일 지정에도 사용된다. 즉 "{{{..}}}"같은 상대경로도 윈도우즈 파일탐색기 주소창에 쳐보면 잘 먹는다. === Web에서의 용어 주의 === Web에서 Relative URL이라는 용어가 있는데, 절대/상대 경로의 여부가 아닌 Protocol과 도메인 지정여부로 결정한다. 다음은 전부 Relative URL이다. * {{{detail-view.htm}}} * {{{../locale/en.json}}} * {{{/js/query/data-query.js}}} 다음은 Absolute URL이다. * {{{https://your-domain.ct.me//post/detail-view.htm}}} * {{{http://gogole.co.tm/analitics.go}}} 그리고 둘의 특징을 조합한 Protocol Relative URL이 있다. Absolute URL에서 Protocol만 제외한 것으로 Protocol은 현재 리소스에 접근할 때 사용한 프로토콜을 따른다. * {{{//archive.org/14/23/54/unknown.htm}}} 때문에 웹에서 Link는 Relative의 개념이 혼재하고 있다. Absolute Path인데도 Domain이나 Protocol이 없으면 그냥 Relative Link라고 설명할 수 있다는 것이다. 오늘날 용어 추세는 Relative URL을 사용하면 Relative Link라고 부르니, 경로의 상대성을 말하고자 한다면 Absolute '''Path''', Relative '''Path'''라고 명시 해주어야 한다. == Harddisk Link의 약자 == [[인터넷]] 초보자들이 주로 저지르는 [[실수]]. [[자료]]를 올린답시고 '''자신의 하드의 전체경로를 복사 붙여넣기'''하는 행위를 가리킨다. 당연히 다른 사람들은 확인하거나 볼 수 없다. 매우 드물게 자신의 하드에도 같은 경로에 같은 파일이 있어서 그 파일이 보이는 황당한 사태를 경험할 때도 있다. 역으로 이걸 이용해 낚시를 할때도 있다. 의외로 하드링크를 모르는 사람들이 많아서 종종 이 낚시에 넘어갈 때가 있다. 예) 어떤 게임 스크린샷 폴더의 1번 스크린샷 경로를 링크해서 다른 사람이 찍은 1번 스크린샷을 보여준 뒤 "난 너희집 컴을 해킹했다"고 하는 낚시. [[분류:컴퓨터]][[분류:동음이의어]]