2012년 2월 19일 일요일

소프트 링크와 하드 링크의 차이점

링크 (Link)
도스나 윈도우 사용자에게는 조금 낯선 개념일 수 있습니다. 리눅스나 유닉스 계열 OS에서는 많이 사용하고 있지요. 링크는 특정 파일이나 폴더에 '링크'를 걸어서 링크만을 가지고 해당 파일이나 폴더에 접근할 수 있습니다. 윈도우의 단축 아이콘은 조금 비슷한 것 같지만, 이는 단순히 실행만을 시켜줍니다. 하지만 링크는 그곳에 파일이나 폴더가 있다고 다른 프로그램이 생각을 하게 됩니다. 링크는 소프트 링크와 하드 링크로 나누어 집니다.


소프트 링크 (Soft Link)
 소프트 링크는 심볼릭 (Symbolic) 링크라고도 하는데, 윈도우의 바로 가기 기능과 유사합니다. 특정 디렉토리의 파일을 다른 디렉토리에서 실행하려면 그 파일에 대한 절대경로를 이용해 명시하거나 그 파일을 사용할 디렉토리로 복사해야만 합니다. 이럴 경우 윈도우에서는 바로 가기 기능을 이용해 원본 파일의 위치에 대한 정보를 가진 단축 아이콘을 만들어 편리하게 사용할 수 있습니다. 소프트 링크 역시 파일의 불필요한 반복적 복사를 방지하여 파일 시스템을 유연하게 활용하거나 여러 디렉토리에서 동일한 라이브러리를 요구할 경우, 같은 파일을 여러 사람이 공통으로 관리하면서 사용할 경우, 비슷한 역할을 담당하는 여러 가지 파일들 중 하나를 선택하여 대표적으로 사용하려 할 때 유용하게 쓸 수 있습니다. 소프트 링크에서는 원본 파일이 삭제되면 그 링크는 사용할 수 없게 됩니다.

개인적인 생각으로, 버전업이 자주되는 파일의 버전 관리를 위해서 활용하면 좋습니다. 즉, 날짜별로 파일이 있고, 내가 원하는 파일에 대해 링크만을 바꾸어주면 프로그램 외부에서 손쉽게 참조 파일을 바꿀 수 있죠.

 하드 링크 (Hard Link)
 소프트 링크가 단순히 원본 파일에 대한 정보만을 가지고 있는데 비해 하드 링크는 원본 파일을 복사한 다음 이의 사본을 생성한다는 차이가 있습니다. 소프트 링크와 마찬가지로 링크로 접근하거나 원본으로 접근하여 파일의 내용을 수정하였다면 원본과 하드 링크된 파일이 모두 수정되어 항상 같은 내용이 유지됩니다. 소프트 링크는 원본이 삭제될 경우 링크를 사용할 수 없지만, 하드 링크는 원본이 삭제되어도 원본과 동일한 내용의 파일을 가지고 있으므로, 자원을 공유하면서도 데이터를 안전하게 관리하고자 할 때 주로 사용됩니다.

예전에 두 폴더의 내용을 어떻게하면 동기화할까에 대해서 한참 고민한 적이 있었는데, 좋은 대안이라고 생각합니다.

댓글 없음: