사용 방법
- 원래 글 칸과 바뀐 글 칸에 글을 붙여 넣으면 바로 비교해 차이 칸에 보여 줍니다. 휴대폰에서는 위의 탭(원래 · 바뀐 · 차이)으로 칸을 바꿔 봅니다.
- 빨간색 취소선은 원래 글에서 지워진 부분, 초록색 밑줄은 새로 추가된 부분입니다.
- 줄 단위에서는 줄 번호가 함께 나오고, 바뀐 줄 안에서 달라진 단어를 한 번 더 진하게 표시합니다. 긴 글은 "같은 줄 접기"로 바뀐 곳 주변만 볼 수 있습니다.
- 나란히 보기를 켜면 원래 글과 바뀐 글을 좌우로 놓고 같은 자리를 견줍니다. 한쪽에만 있는 줄은 반대쪽을 비워 둡니다.
- 결과 복사는 줄 단위일 때
-(삭제)·+(추가) 표시가 붙은 텍스트로 복사합니다.
비교 예시
| 원래 글 | 오늘 회의는 오후 2시에 시작합니다. |
|---|---|
| 바뀐 글 | 오늘 회의는 오후 3시에 본관에서 시작합니다. |
| 단어 단위 | 오늘 회의는 오후 |
| 글자 단위 | 오늘 회의는 오후 |
단어 단위는 "2시에"와 "3시에"를 통째로 바뀐 단어로, 글자 단위는 숫자 한 글자만 바뀐 것으로 보여 줍니다. 통계는 단어 단위 "추가 2단어 · 삭제 1단어 · 같음 4단어", 글자 단위 "추가 6글자 · 삭제 1글자 · 같음 19글자"입니다. 두 결과 모두 모든 글자를 HTML 이스케이프해 만든 것입니다.
처음 상태와 예시 읽는 법
비교 단위는 줄이고 공백 무시 · 대소문자 무시 · 같은 줄 접기 · 나란히 보기는 모두 꺼져 있습니다. 계산 단추는 없습니다. 입력이 멈추고 0.12초(두 글을 합쳐 5만 자를 넘으면 0.4초) 뒤에 비교합니다. 두 칸에는 회의 일정 예시가 채워져 있고, 줄 단위 결과는 아래와 같습니다.
| 1 | 1 | 회의 일정 | |
| 2 | − | 일시: 9월 22일 오후 | |
| 3 | − | 장소: 본관 3층 | |
| 2 | + | 일시: 9월 22일 오후 3시 | |
| 3 | + | 장소: 본관 3층 대회의실 | |
| 4 | 4 | 준비물: 노트북 | |
| 5 | + | 참석: 전원 |
- 첫 칸은 원래 글의 줄 번호, 둘째 칸은 바뀐 글의 줄 번호입니다. 통계 줄에는 "추가 3줄 · 삭제 2줄 · 같음 2줄"이 나옵니다. 고친 줄 하나는 삭제 1줄과 추가 1줄로 셉니다.
- 고친 줄이 이어지면 지운 줄을 모두 먼저, 더한 줄을 그 뒤에 보여 줍니다. 차례가 맞는 줄끼리(지운 첫 줄과 더한 첫 줄, 지운 둘째 줄과 더한 둘째 줄) 줄 안에서 달라진 단어를 한 번 더 강조합니다.
- 같은 단어가 하나도 없는 두 줄("사과"와 "바나나")은 줄 전체만 표시합니다. 한 줄이 2,000자를 넘을 때도 줄 안 강조를 하지 않습니다.
- 나란히 보기를 켜면 같은 예시가 5행이 됩니다. 2번 · 3번 줄이 좌우로 짝지어지고 "참석: 전원"은 왼쪽이 빕니다. 짝은 고친 덩어리 안에서 앞에서부터 하나씩 맞춥니다. 비슷한 줄을 찾아 맞추지는 않습니다.
- "좌우 바꾸기"는 두 칸의 글을 맞바꿔 다시 비교합니다. 예시에서 누르면 통계가 "추가 2줄 · 삭제 3줄 · 같음 2줄"로 바뀝니다. "지우기"는 두 칸을 모두 비웁니다.
세 단위가 세는 것
같은 회의 일정 예시를 세 단위로 견준 통계입니다.
| 단위 | 통계 줄 | 세는 것 |
|---|---|---|
| 줄 | 추가 3줄 · 삭제 2줄 · 같음 2줄 | 줄 하나. 고친 줄은 삭제와 추가에 한 번씩 |
| 단어 | 추가 4단어 · 삭제 1단어 · 같음 11단어 | 글자나 숫자가 든 조각. 공백과 기호는 세지 않음 |
| 글자 | 추가 13글자 · 삭제 1글자 · 같음 40글자 | 글자 하나. 공백과 줄바꿈도 한 글자 |
- 단어 단위는 글자 · 숫자 · 밑줄(_)이 이어진 묶음, 공백 묶음, 기호 한 개를 한 조각으로 나눕니다.
3층·2시에·user_name은 한 단어이고,v1.2.3은 점까지 따로 나눠 5조각입니다. - 기호만 바뀌면 단어 통계는 0입니다.
a, b.를a; b!로 고치면 통계는 "추가 0단어 · 삭제 0단어 · 같음 2단어"인데 결과에는 바뀐 기호가 강조됩니다. - 글자 단위는 코드 포인트 하나를 한 글자로 셉니다. 이모지 하나는 1글자이고, 여러 이모지를 이어 만든 가족 이모지(어른 둘과 아이 하나)는 잇는 글자까지 세어 5글자입니다.
- 두 글이 같으면 통계 자리에 "두 글이 같습니다 (선택한 무시 옵션 기준)." 한 줄만 나옵니다. 글자 단위에서는 괄호 부분이 빠집니다.
무시 옵션이 같게 보는 것
두 글이 아래처럼만 다를 때 같다고 보는지 견준 표입니다. 글자 단위에는 공백 무시가 없습니다.
| 두 글의 차이 | 줄 | 줄 + 공백 무시 | 단어 + 공백 무시 |
|---|---|---|---|
| 파일 끝의 줄바꿈 하나 | 같음 | 같음 | 다름 |
| 끝에 빈 줄이 하나 더 | 다름 | 다름 | 같음 |
| 줄 앞의 들여쓰기 | 다름 | 같음 | 같음 |
| 단어 사이 공백의 개수 | 다름 | 같음 | 같음 |
| 공백 한 칸과 탭 하나 | 다름 | 같음 | 같음 |
| 전각 공백과 보통 공백 | 다름 | 같음 | 같음 |
| 줄바꿈 없는 공백(NBSP)과 보통 공백 | 다름 | 같음 | 같음 |
| 붙여 쓴 글과 띄어 쓴 글 | 다름 | 다름 | 다름 |
| 제로폭 공백이 낀 글 | 다름 | 다름 | 다름 |
- 줄바꿈 문자의 종류(CRLF · LF · CR)는 어느 단위에서도 차이로 나오지 않습니다. 글 칸에 들어올 때 모두 같은 줄바꿈으로 바뀝니다.
- 줄 단위는 옵션 없이도 파일 끝의 줄바꿈 하나를 따지지 않습니다. 끝에 빈 줄이 하나 더 있으면 "추가 0줄 · 삭제 1줄 · 같음 1줄"로 나옵니다.
- 단어 · 글자 단위는 줄바꿈과 공백도 글자로 봅니다. 단어 단위는 공백 무시를 켜지 않으면 위 표의 차이를 모두 다르다고 봅니다. 끝의 줄바꿈 하나만 다른 글은 단어 단위에서 "추가 0단어 · 삭제 0단어 · 같음 1단어"인데도 같다고 나오지 않습니다.
- 공백 무시는 탭, 전각 공백, 줄바꿈 없는 공백(NBSP)도 공백으로 봅니다. 제로폭 공백은 공백으로 보지 않습니다. 텍스트 정리 도구의 "보이지 않는 문자 제거"로 두 글에서 먼저 지우세요.
- 대소문자 무시는 세 단위 모두에 적용됩니다. 무시 옵션으로 같다고 본 곳은 바뀐 글 쪽 글자로 보여 줍니다.
Hello World와hello world를 견주면 결과에는hello world만 보입니다.
같은 줄 접기와 표시 한도
- "같은 줄 접기"와 "나란히 보기"는 줄 단위에서만 보입니다.
- 접기를 켜면 고친 줄 앞뒤 3줄만 남기고 나머지는 "⋯ 같은 줄 N개 ⋯" 한 줄로 줄입니다. 20줄짜리 글에서 10번째 줄만 고쳤다면 결과 21줄 가운데 8줄이 남고, 그 위는 "⋯ 같은 줄 6개 ⋯", 아래는 "⋯ 같은 줄 7개 ⋯"로 접힙니다.
- 줄 단위 표는 5,000줄까지 그립니다. 넘으면 표 끝에 "표시는 5,000줄까지입니다."로 시작하는 줄이 붙습니다. 통계 줄과 결과 복사는 그와 상관없이 전체를 대상으로 합니다.
결과 복사의 꼴
줄 단위는 줄 앞에 표시를 붙입니다. 같은 줄은 공백 두 칸, 지운 줄은 빼기 기호(-)와 공백, 더한 줄은 더하기 기호(+)와 공백입니다. 처음 예시를 복사하면 아래와 같습니다. 접어 둔 줄도 모두 들어갑니다.
회의 일정 - 일시: 9월 22일 오후 2시 - 장소: 본관 3층 + 일시: 9월 22일 오후 3시 + 장소: 본관 3층 대회의실 준비물: 노트북 + 참석: 전원
단어 · 글자 단위는 지운 곳을 [-…-], 더한 곳을 {+…+}로 감쌉니다. 위 "비교 예시"의 문장을 단어 단위로 복사한 글입니다.
오늘 회의는 오후 [-2시에-]{+3시에 본관에서+} 시작합니다.색이 아니라 글자로 표시하므로 메일 · 메신저 · 문서에 붙여도 그대로 읽힙니다. 복사가 끝나면 단추 글이 1.5초 동안 "복사했습니다"로 바뀝니다.
파일 넣기
- 칸마다 있는 "파일 열기"는 그 칸의 글만 바꿉니다. 다른 칸에 남아 있는 글(처음 예시 포함)과 견주게 되므로, 새로 시작할 때는 "지우기"를 먼저 누르세요.
- 파일을 쪽에 끌어다 놓아도 됩니다. 둘을 놓으면 첫째가 원래 글, 둘째가 바뀐 글에 들어갑니다. 하나를 놓으면 원래 글만 차 있을 때는 바뀐 글에, 그 밖에는 원래 글에 들어갑니다. 처음 예시가 그대로 있으면 예시를 비우고 넣습니다.
- 파일은 하나에 5MB까지입니다.
이런 문구가 뜰 때
| 문구 | 까닭 |
|---|---|
| 두 칸에 글을 넣으면 비교 결과가 여기에 나옵니다. | 두 칸이 모두 비어 있을 때 |
| 줄 단위 비교는 각 글 2,000,000자까지 할 수 있습니다. | 줄 단위에서 한쪽 글이 2,000,000자를 넘을 때 |
| 단어 단위 비교는 각 글 300,000자까지 할 수 있습니다. | 단어 단위에서 한쪽 글이 300,000자를 넘을 때. 줄 단위로 바꾸면 됩니다 |
| 글자 단위 비교는 각 글 50,000자까지 할 수 있습니다. | 글자 단위에서 한쪽 글이 50,000자를 넘을 때. 단어나 줄 단위로 바꾸면 됩니다 |
| 두 글이 너무 많이 달라 제한 시간 안에 비교를 끝내지 못했습니다. 비교 단위를 줄 단위로 바꾸거나 글을 나눠서 비교해 주세요. | 3초 안에 끝내지 못했을 때. 길면서 거의 다 다른 두 글에서 납니다 |
| 5MB 이하의 텍스트 파일만 불러올 수 있습니다. | 연 파일이 5MB를 넘을 때 |
계산 방식과 한도
- Myers 차이 알고리즘(1986)으로 가장 적은 편집으로 바꾸는 방법을 찾습니다. 바깥 라이브러리 없이 직접 구현했습니다.
- 단어는 한글·영문·숫자가 이어진 묶음, 공백 묶음, 기호 한 개를 한 단위로 나눕니다.
- 글자 수 한도는 줄 단위 200만 자, 단어 단위 30만 자, 글자 단위 5만 자입니다. 두 글이 너무 많이 달라 3초 안에 끝나지 않으면 중단하고 알려 드립니다.