beyond-sw-camp/beyond-sw-camp-be01_last-dance

[T1] 게시글 수정 이력 관리 관련 질문

Closed this issue · 1 comments

게시글 수정 시 수정된 부분만 남기려고 합니다.
알아보니 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)

image

간단하게 구현하려고 해 보니 변경된 특정 부분이 아닌 수정된 라인 전체를 출력합니다.
특정 부분만 출력하도록 하기는 어려운지, 다른 아이디어가 있을지 궁금합니다.

이 작업은 백업에 활용할 예정입니다.

\n 으로 나누어 비교 한것처럼 ' ' 공백으로 나누어 단어별로 비교도 가능은 하겠네요