Git은 개발할 때 없어서는 안되는 존재이다. 코드 관리, 버전 관리, 자동 병합, 브랜치 관리 등 정말 많은 기능을 수행하고 있다. 그 중 코드 관리를 살펴보고자 한다. 깃은 코드의 변화를 자동으로 추적하며 위 사진과 같이 변경된 사항을 자동으로 추적한다. 어떻게 변화한 부분만 정확히 골라서 표시하는 것일까? LCSLCS(Longest Common Subsequence/Substring)은 두 문자열/수열이 존재할 때 공통으로 존재하는 가장 긴 문자열/수열을 추출하는 알고리즘이다. LCS에서 S를 Substring으로 쓰면 공통된 문자열, Subsequence로 쓰면 공통된 수열이다. 둘의 차이는 공통된 요소가 연속인지 여부이다. 연속이라면 Substring, 불연속이라면 Subsequence이다. I..