[T1] 게시글 수정 이력 관리 관련 질문
Closed this issue · 1 comments
pdh4869 commented
게시글 수정 시 수정된 부분만 남기려고 합니다.
알아보니 LCS (Longest Common Subsequence) 라는 알고리즘을 활용하여 문자열을 비교한다고 합니다.
// vue script 코드
function diffText(originalText, modifiedText) {
const diff = []
const originalLines = originalText.split('\n')
const modifiedLines = modifiedText.split('\n')
for (let i = 0; i < modifiedLines.length; i++) {
const line = modifiedLines[i]
if (originalLines[i] !== line) {
diff.push(`Line ${i + 1}: ${line}`)
}
}
return diff
}
const originalText = `
This is the original text.
It has multiple lines.
`
const modifiedText = `
This is the modified text.
It also has multiple lines.
And a new line.
`
const differences = diffText(originalText, modifiedText)
console.log(differences)
간단하게 구현하려고 해 보니 변경된 특정 부분이 아닌 수정된 라인 전체를 출력합니다.
특정 부분만 출력하도록 하기는 어려운지, 다른 아이디어가 있을지 궁금합니다.
이 작업은 백업에 활용할 예정입니다.
pySatellite commented
\n 으로 나누어 비교 한것처럼 ' ' 공백으로 나누어 단어별로 비교도 가능은 하겠네요