컴퓨터 일반

[원노트] Microsoft OneNote 중복 페이지 제거

Folivora 2020. 1. 10. 13:23

옛날에 필요해서 만들었던 툴인데, 마이크로소프트 원노트의 중복 페이지들을 찾아서 제거해주는 툴입니다. 원노트의 중복 페이지들은 기존 파일 중복 제거 프로그램으로는 해결할 수 없습니다. 중복 페이지들이 발생하는 이유는 여러 가지가 있겠지만 주로 동기화 과정에서 뭔가 잘못된 경우에 발생합니다. 혹은 예전에 백업해놓은 원노트 파일들을 합치려면 당연히 중복 페이지들이 생기겠죠?

 

프로그램 인터페이스는 화려한 편은 아니지만... Scan duplicate를 누르면 현재 원노트에서 열려 있는 노트북을 대상으로 중복된 페이지를 검색합니다. 파일 시스템을 직접 검색하는 것은 아니고, 원노트가 제공하는 API를 바탕으로 중복 페이지들을 찾아내게 됩니다. 

 

팁! 원노트에서 중복 제거가 필요한 노트북만 열어 놓으면 그 노트북에 속한 페이지들에 대해서만 중복 제거가 됩니다.

 

Section Preference는 중복 체크를 할 때 어느 섹션의 페이지를 우선적으로 살려둘지 결정합니다. 보통은 백업 섹션들이 최하위 순위를 가지게 됩니다. Navigate to the highlighted page는 원노트 프로그램에서 선택한 페이지로 이동합니다. 그러면 어떤 페이지였는지 확인하기 편하겠죠?

 

다만 중복 페이지를 삭제하는 프로그램이므로 주의해야 할 점이 몇 가지가 있는데요.

1) SHA256 해쉬 기반으로 페이지의 내용의 동일성 유무를 판단하므로 아-주 작은 확률로 hash 값이 일치하여 서로 다른 페이지들이 잘못 제거될 수도 있습니다... 2^256의 공간이 나타낼 수 있는 가짓수는

115792089237316195423570985008687907853269984665640564039457584007913129639936

로 거의 겹칠 일이 없습니다. 다른 hash 방식이나 size를 결합하는 식으로 더 space를 늘릴 수도 있었지만, 현실적으로 발생하기 어려운 확률이라 그냥 sha256 정도만 사용하였습니다.

 

2) 정말로 주의해야 할 점은 컴퓨터 A와 다른 동기화된 컴퓨터 B에서 각각 프로그램을 실행하는 경우인데요. 그렇게 하실 분은 없으리라 생각이 들지만... 네트워크에서 공유된 원노트에 대해서 각각 프로그램을 실행하는 경우를 상상해볼 수 있겠습니다. 

 

예를 들어 컴퓨터 A에서는 섹션 A'에 있는 페이지를 제거하였고, 컴퓨터 B에서는 섹션 A에 있는 페이지를 제거하게 됩니다. 그러면 나중에 동기화가 일어나면서 결과적으로 섹션 A의 페이지도 지워지고 섹션 A'의 페이지도 지워지게 됩니다. (데이터 유실)

따라서 원칙적으로는 공유되지 않은 원노트에 대해서만 사용해야 하고, 공유된 원노트의 경우에는 단 하나의 컴퓨터에서만 중복 제거 프로그램이 실행되어야 합니다.

관련 링크

업데이트 내역

  • (1/21/2020) v1.0.1.11 - added an about dialog box to retrieve version information
  • (1/1/2024) 글 본문 오타 수정