문장을 짧게 고칠 때는 숫자뿐 아니라 누가, 어떤 조건에서, 무엇을 할 수 있는지도 원문과 대조해야 한다. “파일이 5MB를 초과하면 업로드할 수 없습니다”를 “파일이 5MB를 초과해도 업로드할 수 있습니다”로 바꾸면 숫자는 같고 안내는 반대가 된다.
이 문장들은 글을 위해 만든 합성 예시이며 실제 서비스의 용량 제한이나 고객 원고가 아니다. 재독과 수정을 작성 단계에서 끝내기 위해, 쓰고 있던 문체 검사 함수에 이 수정 전후를 넣고 결과를 대조했다.
통과한 문장부터 다시 읽었다
기존 문체 검사 함수에 합성 예시의 수정 전후를 넘겼다. 용량을 5MB에서 6MB로 바꾼 쌍은 숫자가 달라졌다는 이유로 거절됐다. 같은 5MB를 남기고 업로드 불가를 가능으로 바꾼 한국어 쌍은 통과했다. 영어에서도 cannot을 can으로 고친 쌍이 통과했다.
여기서 통과는 함수가 비교하는 항목이 같다는 뜻이다. 원뜻을 지켰는지는 이 결과만으로 알 수 없다. 파일이 기준보다 클 때 허용하는지 금지하는지는 두 문장을 나란히 읽어 확인했다.
아래는 합성 시험에 넣은 문장과 그때의 관찰 결과다. 고객 원고를 사용하지 않았다.
코드와 구현 살펴보기
실제 고객 문구가 아닌 합성 시험 입력과 관찰 결과
기준: 파일이 5MB를 초과하면 업로드할 수 없습니다.
숫자 변경: 파일이 6MB를 초과하면 업로드할 수 없습니다. → 검사 거절
의미 변경: 파일이 5MB를 초과해도 업로드할 수 있습니다. → 검사 통과
English baseline: Files larger than 5MB cannot be uploaded.
English change: Files larger than 5MB can be uploaded. → 검사 통과검사기가 비교하는 것은 문장 전체의 뜻이 아니다
읽은 코드에서 assertStylePreservation은 본문에서 추출한 숫자 목록, 웹 주소, 인라인 코드와 일부 이미지 표기를 수정 전후에 비교했다. 이 함수가 단위·주어·조건·부정 표현의 뜻까지 해석하는 구현은 없었다. 숫자 목록이 같아도 그 숫자가 같은 대상과 관계를 설명하는지는 별도로 봐야 한다.
추가 합성 입력에서는 주소를 다른 경로로 바꾼 쌍과 인라인 코드 이름을 바꾼 쌍도 거절됐다. 이 주소 시험은 문자열 비교이며 예시 도메인에 접속한 시험이 아니다. 전체 합성 시험은 선택한 문장과 입력에 대한 관찰이므로 다른 글의 의미 보존율이나 검사 정확도로 환산할 수 없다.
숫자 변경이 거절돼도 새 숫자가 틀렸다는 결론은 나오지 않는다. 최신 근거에 맞춰 고쳐야 하는 숫자라면 먼저 출처를 확인하고 변경 이유를 남겨야 한다. 거절 메시지는 문체를 다듬은 것인지, 사실을 갱신한 것인지 다시 대조할 지점을 알려 준다.
줄일 말과 남길 조건을 따로 찾는다
길고 딱딱한 문장을 그대로 둘 필요는 없다. 같은 합성 제한을 설명하는 아래 문장에서는 “파일에 대해서는”과 명사형 표현을 줄이고, 업로드할 수 없는 대상과 조건을 남겼다. 자동 검사는 이 쌍을 통과시켰다. 같은 안내라고 판단한 근거는 별도로 주어·조건·금지를 대조한 결과다.
남겨야 할 것은 5라는 숫자만이 아니다. 파일의 용량을 비교한다는 점, 5MB를 초과할 때라는 조건, 업로드 금지라는 결과가 이어져야 한다. “초과”를 “이상”으로 바꾸면 경계값의 포함 여부가 달라지므로 같은 뜻이라고 처리할 수 없다.
아래 수정은 문장 다듬기용 합성 예시다. 실제 제품의 업로드 규칙을 시험한 결과는 아니다.
코드와 구현 살펴보기
문장 다듬기용 합성 예시 · 실제 기능 보장 아님
수정 전: 이 예시에서 용량이 5MB를 초과하는 파일에 대해서는 업로드가 불가능합니다.
수정 후: 이 예시에서는 5MB를 초과하는 파일을 업로드할 수 없습니다.읽기 쉬움과 새로운 사실을 구별한다
실제 작성 요청에는 구체적인 정보부터 쓰되 경험·인용·성과·수치를 만들어내지 말라는 조건이 있었다. 이 조건을 편집에 적용하려면 초안 옆에 확인한 내용의 근거를 둬야 한다. 문장이 더 자연스럽다는 이유로 원문에 없는 담당자나 처리 시점을 채워 넣을 수는 없다.
예를 들어 “검토 후 안내합니다”를 고치려면 누가 무엇을 안내하는지 자료에서 확인한다. 담당자나 회신 기한을 모른다면 그 사실을 새로 단정하지 않는다. 확인이 필요한 항목을 기록하고 문장의 범위를 좁히는 편이 낫다.
- 확인한 사실: 실제 자료에서 읽은 내용과 읽은 시점을 남긴다.
- 해석: 그 사실에서 어떤 판단을 했는지 이유를 붙인다.
- 예시: 실제 기능이나 고객 사례와 혼동되지 않게 합성임을 밝힌다.
- 미확인: 실행하지 않은 시험, 읽지 못한 출처, 아직 모르는 조건을 적는다.
한영 문장을 각각 읽고 같은 행동을 안내하는지 본다
두 언어에 같은 숫자가 들어 있다고 같은 안내가 되지는 않는다. 앞의 영어 합성 쌍은 cannot에서 not만 빠져도 허용과 금지가 바뀐다. 한국어에서도 “초과하면”을 “초과해도”로 바꾸면서 뒤의 부정을 없애면 같은 문제가 생긴다.
실무에서는 번역문이 단어를 얼마나 닮았는지보다 독자가 같은 조건에서 같은 행동을 선택하는지 묻는다. 대상, 조건, 예외, 허용 여부, 결과의 확실성을 언어별로 대조한다. “할 수 있다”를 더 힘 있는 말로 고친다며 “보장한다”로 바꾸면 원문보다 큰 약속이 된다.
이번에는 작성자가 합성 문장의 뜻과 한영 설명을 대조했다. 독립된 번역 전문가의 감수나 실제 사용자의 이해도 시험을 거쳤다고 말하는 것은 아니다. 그런 확인이 필요한 글에서는 이 기록 뒤에 별도의 근거를 더해야 한다.
수정한 뒤에는 검사 기록도 같은 원고에 연결한다
현재 작성 흐름에는 원고와 규칙의 해시를 검수 기록과 대조하는 단계가 있다. 해시는 파일의 바이트를 바탕으로 만든 식별값이다. 검수를 마친 뒤 다른 파일이나 이전 기록을 잘못 연결하는 일을 찾는 데 쓰며, 파일의 주장이 참이라는 뜻을 담지는 않는다.
기록을 확인하는 함수는 검수 상태, 전체 재독 여부, 원고와 규칙의 식별값, 검사 통과 표시를 대조한다. 조건이 맞으면 그 기록을 현재 원고에 연결한다. 작성자가 빠뜨린 사실까지 찾아냈다는 뜻은 아니다.
적용 순서는 자료 확인, 초안, 전체 재독과 직접 수정, 원문 대조, 해당 원고 검사, 수정본과 기록의 로컬 저장이다. 마지막 검사 뒤 문구를 다시 바꿨다면 바뀐 부분을 읽고 관련 검사를 다시 실행한다. 다른 글 전체를 매번 검사할 필요는 없다.
자동 검사와 직접 읽기의 결과를 따로 남긴다
기존 검사 코드의 해당 부분을 읽고 독립 합성 입력을 실제 함수에 넣었다. 숫자·주소·코드 변경의 거절, 한영 부정 변화의 통과, 뜻을 유지해 줄인 한국어 문장의 통과를 기록했다. 의미 변화 여부는 문장 대조로 판단했으며 자동 검사 결과와 분리했다.
이 시험의 대상은 합성 문장과 검사 함수였다. 원제품의 업로드 기능, 실제 용량 제한, 브라우저 렌더링이나 탐지 모델의 성능은 확인하지 않았다. 원고와 정적 미리보기, 검사 기록은 같은 버전으로 묶어 보관하고 공개 반영 여부는 별도로 확인해야 한다.