Naver Content OS
웹과 확장에서 같은 원고를 다룰 때 이전 편집 화면이 최신 버전을 덮지 않도록 구성했습니다. 근거 선택과 원고 이력을 연결한 Naver Content OS 제작기입니다.
AI Tools Lab · 소개 글 작성 · 수정

글을 고친 뒤에도 무엇을 보고 썼는지 남기려 했습니다
Naver Content OS는 주제와 키워드 조사, 근거 선택, 초안과 수정 이력을 연결하는 로컬 작업실입니다. 저는 글을 만드는 요청 하나보다 작성 전의 판단과 작성 후의 수정이 이어지도록 구성했습니다. 원고가 바뀌었을 때 사용한 자료와 이전 문장으로 돌아갈 수 있어야 하기 때문입니다.
웹 작업실과 Chrome 확장에서 같은 초안을 다루면 원고 제목만으로 현재 상태를 판단하기 어렵습니다. 한 화면이 이전 버전을 열고 있는 동안 다른 화면에서 새 버전을 저장할 수 있습니다. 이 조건에 맞춰 저장 요청이 어떤 버전을 보고 시작되었는지 확인하도록 했습니다.
키워드 자료와 선택한 근거, 수정된 원고가 같은 작업을 가리키도록 저장 구조를 나눴습니다. 글을 고친 뒤에도 무엇을 보고 썼는지 확인할 수 있어야 했습니다.
키워드와 조사 스냅샷이 맞는지 먼저 확인했습니다
초안에는 조사 당시 자료를 담은 스냅샷을 연결합니다. 같은 키워드를 다시 조사해도 시점과 결과는 달라질 수 있으므로, 최신 자료라는 이름만으로 이전 초안의 근거를 바꾸지 않았습니다. 원고가 어떤 조사 결과를 바탕으로 시작됐는지 남기기 위해서입니다.
스냅샷이 다른 키워드에 속한 경우에는 생성 전에 거절합니다. 입력 ID가 존재하는 것과 그 ID가 지금 주제에 맞는 것은 다른 조건입니다. 검수에도 잘못된 연결일 때 외부 생성 호출을 하지 않는 조건을 넣었습니다. 결과를 만든 뒤 잘못된 자료를 발견하는 흐름은 피하려 했습니다.
이 선택은 여러 주제를 빠르게 오갈 때 특히 필요합니다. 사용자가 키워드를 바꾸어도 이전 화면의 자료가 남아 있을 수 있습니다. 초안을 저장하는 서비스가 주제와 자료의 관계를 확인해야 화면 상태가 섞이는 조건을 좁힐 수 있습니다.
근거 묶음에는 출처와 오래된 정도를 남겼습니다
FactPack은 검색량과 추세, 검색 결과 등에서 필요한 근거를 고르는 묶음입니다. 각 항목에 출처 종류와 ID, 수집 시각, 캐시 여부, 선택 여부를 함께 둡니다. 참고할 값과 함께 그 값이 언제 얻어진 것인지도 남깁니다.
자료가 없으면 경고를 남기고, 형식이 손상된 검색 결과는 제외합니다. 수집 시각을 확인할 수 없는 상태도 따로 표시합니다. 30일을 지난 자료를 오래된 것으로 표시하는 정책을 두었지만, 이 기준이 모든 사실의 유효기간을 뜻하는 것은 아닙니다. 편집자가 다시 살필 항목을 알려주는 조건입니다.
근거 묶음 자체도 버전을 가집니다. 선택을 바꾸고 승인 상태를 조정하더라도 앞선 구성과 원고가 어떤 관계였는지 확인할 수 있어야 합니다. 승인된 묶음이라는 상태를 내용의 진실을 자동 보증하는 표시로 사용하지 않았습니다. 출처를 읽고 문장을 판단하는 과정은 여전히 필요합니다.
수정은 이전 원고를 덮는 대신 새 버전으로 남겼습니다
초안을 고칠 때는 원본을 보존하고 새 제목과 본문을 다음 버전으로 추가합니다. 수정 메모도 함께 남겨 무엇을 고쳤는지 다시 읽을 수 있도록 했습니다. 가장 최근의 글만 보관하면 사실 확인 전의 문장이나 수정 이유를 돌아보기 어렵습니다.
저는 저장 요청에 expected_version을 넣었습니다. 편집 화면이 읽은 버전과 현재 최신 버전이 같을 때만 다음 버전을 추가합니다. 먼저 다른 화면이 저장했다면 충돌로 안내하고, 편집 내용을 유지한 채 최신 원고와 비교한 뒤 다시 저장하도록 합니다.
이렇게 하면 늦게 도착한 요청이 무조건 마지막 결과를 차지하지 않습니다. 저장 순서와 사용자가 읽은 상태를 연결한 선택입니다. 두 화면이 같은 버전에서 동시에 저장하려는 조건에서도 하나만 새 버전을 만들도록 검수 조건을 뒀습니다.
다음 작업에도 같은 원고 버전을 전달합니다
원고의 이미지는 특정 버전에 연결하고 승인된 자료를 사용하도록 구성했습니다. 문장을 고친 뒤 이전 이미지 manifest를 그대로 쓰는 경우와, 새 버전에 맞게 자료를 확인한 경우는 다를 수 있습니다. 제목·본문·이미지가 어느 버전의 결과인지 함께 정해야 합니다.
외부 편집기로 전달할 작업도 기대한 원고 버전을 확인합니다. 이미 최신 원고가 바뀌었는데 이전 화면의 요청으로 작업을 만들지 않도록 한 조건입니다. 저장 충돌을 UI에서 알리는 것과 다음 처리 단계에 낡은 원고가 들어가지 않는 것을 함께 봤습니다.
이 경계는 외부 연결의 성공 여부와 별도로 필요합니다. 로그인과 편집기 상태가 준비되어도 선택한 로컬 원고를 확인하지 않으면 다른 내용을 전달할 수 있습니다. 저는 연결 단계 이전에 어떤 원고를 보낼지 고정하는 쪽으로 구성했습니다.
완성 문장보다 수정의 맥락을 이어가는 도구입니다
검수에는 이전 버전 보존, 오래된 화면의 저장 거절, 동시 저장의 단일 승자, 다른 키워드 스냅샷 거절을 넣었습니다. 요청이 정상일 때 새 글이 나오는지만 확인하지 않고, 서로 다른 화면과 자료가 섞이는 조건을 살피도록 했습니다.
비슷한 콘텐츠 작업실을 만들 때는 원고 ID 외에 자료 스냅샷과 근거 묶음의 버전, 저장을 시작한 원고 버전을 함께 생각할 수 있습니다. 이 정보를 남기면 다음 수정에서 무엇을 다시 확인해야 하는지 알 수 있습니다. 생성 문장의 양만 늘려서는 얻기 어려운 작업 맥락입니다.
출처와 편집 이력은 원고를 수정할 때마다 함께 이어지도록 구성했습니다. 주제를 바꾸고 문장을 고치고 다음 화면으로 옮기는 동안에도 같은 버전의 자료를 읽도록 연결했습니다. 개인 경험을 담은 글도 무엇을 근거로 어떤 문장을 바꿨는지 돌아갈 수 있을 때 계속 다듬을 수 있습니다.
개발 자료
프로젝트 링크
키워드 근거와 초안 버전을 고정하고, 오래된 편집 화면의 저장을 충돌로 안내하도록 만든 개발 과정입니다.
원본 프로젝트 ↗ · 문의·정정 요청