파일 비교

File comparison

컴퓨팅에서 파일 비교는 데이터 객체(일반적으로 소스 코드와 같은 텍스트 파일) 간의 차이와 유사성을 계산하고 표시하는 것입니다.

방법, 구현 및 결과는 일반적으로 Unix 유틸리티의 이름을 따서 [1]diff라고 불립니다.출력은 그래피컬사용자 인터페이스로 표시할 수도 있고 네트워크, 파일시스템 또는 리비전 제어의 대규모 태스크의 일부로 사용할 수도 있습니다.

널리 사용되는 파일 비교 프로그램에는 diff, cmp, FileMerge, WinMerge, Beyond Compare, File Compare 등이 있습니다.

많은 텍스트 편집기와 워드 프로세서는 문서의 변경사항을 강조 표시하기 위해 파일 비교를 수행합니다.

메서드 타입

대부분의 파일 비교 도구는 두 파일 간에 가장공통 시퀀스를 찾습니다.가장 긴 공통 시퀀스에 속하지 않는 데이터는 삽입 또는 삭제로 나타납니다.

1978년 Paul Heckel은 대부분의 이동된 [2]텍스트 블록을 식별하는 알고리즘을 발표했습니다.이것은 IBM History Flow [3]도구에서 사용됩니다.다른 파일 비교 프로그램은 블록 이동을 [clarification needed]찾습니다.

일부 전문 파일 비교 도구에서는 두 [4]파일 간에 가장증가 시퀀스를 찾습니다.rsync 프로토콜은 롤링 해시 함수를 사용하여 통신 오버헤드가 낮은 원격 두 컴퓨터의 두 파일을 비교합니다.

워드프로세서의 파일 비교는 보통 워드레벨이지만 대부분의 프로그래밍 툴에서는 라인레벨입니다바이트 또는 문자 수준의 비교는 일부 특수 애플리케이션에서 유용합니다.

표시

파일 비교 표시는 다양하며, 주요 접근 방식은 두 개의 파일을 나란히 표시하거나 단일 파일을 표시하는 것이며, 마크업에서는 한 파일에서 다른 파일로 변경 내용을 보여줍니다.어느 경우든, 특히 나란히 보기, 코드 폴딩 또는 텍스트 폴딩을 사용하여 파일의 변경되지 않은 부분을 숨길 수 있으며 변경된 부분만 표시할 수 있습니다.

추리

비교 도구는 다양한 이유로 사용됩니다.바이너리 파일을 비교하려면 바이트 레벨이 가장 좋습니다.그러나 텍스트 파일이나 컴퓨터 프로그램비교하고 싶다면 시각적으로 나란히 비교하는 것이 가장 좋다.이를 통해 사용자는 보존하는 것이 바람직한 파일을 결정할 수 있습니다.또한 파일을 Marge하여 모든 차이를 포함하는 파일을 작성할지, 아니면 나중에 참조할 수 있도록 두 파일을 모두 현재 상태로 유지할지를 '버전' 제어의 형태로 결정할 수 있습니다.

파일 비교는 파일 동기화 백업의 중요한 부분이며, 대부분의 경우 필수적입니다.백업 방법론에서는 데이터 손상 문제가 중요합니다.파손은 경고 없이 자신도 모르는 사이에 발생합니다.보통 너무 늦기 때문에 분실된 부품을 복구할 수 없습니다.일반적으로 파일이 손상되었는지 확인하는 유일한 방법은 파일이 다음 번에 사용되거나 열렸을 때뿐입니다.그렇지 않다면 적어도 차이가 발생했음을 인식하기 위해서는 비교 도구를 사용해야 한다.따라서 모든 파일 동기화 또는 백업 프로그램이 실제로 유용하고 신뢰할 수 있는 프로그램인 경우 파일 비교를 포함해야 합니다.

과거의 용도

파일 비교 이전에는 자기 테이프나 펀치 카드를 비교하는 기계가 존재했습니다.IBM 519 Card Replicer는 한 벌의 천공 카드가 동일한지 여부를 확인할 수 있었습니다.1957년 John Van Gardner는 IBM 704에서 [5]컴파일 문제를 디버깅하기 위해 Fortran 프로그램의 로드된 섹션의 체크섬을 비교하는 시스템을 개발했습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "diff", 전문용어 파일.
  2. ^ Heckel, Paul (1978), "A Technique for Isolating Differences Between Files" (PDF), Communications of the ACM, 21 (4): 264–268, doi:10.1145/359460.359467, S2CID 207683976, retrieved 2011-12-04
  3. ^ Viégas, Fernanda B.; Wattenberg, Martin; Kushal, Kushal Dave (2004), Studying Cooperation and Conflict between Authors with history flow Visualizations (PDF), vol. 6, Vienna: CHI, pp. 575–582, retrieved 2011-12-01
  4. ^ Liwei Ren; Jinsheng Gu; Luosheng Peng (18 April 2006). "Algorithms for block-level code alignment of software binary files". Google Patents. USPTO. Retrieved 10 May 2019.
  5. ^ John Van Gardner. "Fortran And The Genesis Of Project Intercept" (PDF). Retrieved 2011-12-06.

외부 링크