릴리스 버전: 6.0.26
빌드 번호: 1086
릴리스 날짜: 2026년 10월 2일 (한국시간기준)
매뉴얼웍스를 업데이트하려면 소프트웨어 업데이트를 참고합니다. 5.0 버전에서 6.0 버전으로 업데이트하려면 매뉴얼웍스 6.0 업데이트 가이드를 참고합니다.
수정 사항
로그인과 계정
로그인 유지 쿠키의 유효 기간을 사용자 토큰 보존 기간(
USER_TOKEN_RETENTION_PERIOD)에 맞췄습니다. 이전에는 쿠키가 7일로 고정되어 보존 기간을 늘려도 7일이 지나면 다시 로그인해야 했습니다.2단계 인증 코드를 예측할 수 없는 난수로 만듭니다. 코드를 다시 받아도 틀린 횟수가 초기화되지 않으며, 30초 안에 다시 받으면 앞서 보낸 코드를 그대로 씁니다. 한 코드를 5번 틀리면 그 코드는 버리므로 다시 받아야 합니다. 로그인 잠금(
ENABLE_PASSWORD_FAIL_LOCK)을 꺼 두어도 코드를 끝없이 맞혀 볼 수 없습니다.외부 계정 로그인(OAuth)에서 로그인을 시작한 세션으로 돌아온 요청만 받습니다. 끝내지 않은 로그인 정보는 10분 뒤 지웁니다. 도메인 주소를 설정하지 않았으면 소셜 로그인 단추를 보여주지 않습니다.
네이버와 구글 로그인이 공급자가 지금 안내하는 주소를 씁니다. 네이버는 사용자 정보를 JSON 주소(
openapi.naver.com)에서, 구글은 인증과 토큰, 사용자 정보를 새 주소(oauth2.googleapis.com,openidconnect.googleapis.com)에서 받습니다. 새 주소에 닿지 못하면 예전 주소로 다시 부르므로, 서버의 바깥 연결을 허용 목록으로 막아 두었어도 로그인은 예전처럼 됩니다. 허용 목록을 쓴다면 새 호스트를 더해 두는 것이 좋습니다. 기존 계정과 이름은 그대로 이어집니다.OAuth 2.0 서버가 사용자 역할을 비워 보내면 기존 사용자의 역할을 그대로 둡니다. 이전에는 역할이 모두 지워졌습니다.
OAuth 2.0 로그인에서 토큰 요청이 리다이렉트를 따라가지 않습니다. 리다이렉트를 따라가면 POST 본문이 사라져 인증 서버가 인증 코드를 받지 못하고, 인증 서버가 돌려준 오류 화면을 토큰 응답으로 읽다가 알 수 없는 오류로 끝났습니다. 이제 리다이렉트된 주소를 로그에 남기고 로그인을 실패로 끊으므로, OAuth 서버 URL을 리다이렉트하지 않는 최종 주소(예를 들어
www를 뺀 주소)로 고치면 됩니다. 토큰 응답이 200이 아닐 때도 상태 코드와 응답 앞부분을 로그에 남깁니다.
권한과 보안
문서 링크를 메일로 공유할 때 받는 사람을 한 명으로 제한하고, 이 서버의 링크 가운데 공유하는 문서를 가리키는 것만 보냅니다. 공개 발행했거나 보내는 사람이 볼 수 있는 문서만 공유할 수 있습니다. 메일의 제목과 본문은 문서 제목과 링크로 만들며, 개인 메시지는 더 쓸 수 없습니다. 로그인한 사용자는 사용자마다, 로그인하지 않은 사용자는 IP마다 10분에 5번까지 보낼 수 있고, IP는 IP 필터의 프록시 설정을 따릅니다. 메일 공유 요청은 POST로만 받고 링크(url)와 문서 아이디(id)가 꼭 있어야 하므로, 이 주소를 직접 부르는 연동이 있다면 확인합니다.
로그 파일 화면에서 지우지 못하게 한 파일(오늘 자 로그와 catalina.out)은 서버에서도 지우지 않습니다. 로그 수준을 바꾸는 콘솔 명령은 올바른 수준 값만 받습니다.
압축 파일을 풀 때 대상 디렉터리 밖에 파일을 쓰지 못하게 했습니다. 문서 가져오기와 글꼴 올리기, 소프트웨어 업데이트에 적용됩니다. 소프트웨어 업데이트 파일은 올릴 때 파일 이름을 확인해 틀리면 바로 알려줍니다.
사용자 정보 암호화에서 키를 바꾸거나 평문으로 되돌린 뒤 데이터를 옮길 때 문서와 장의 작성자도 함께 옮깁니다.
사용자 정보 암호화의 데이터 옮기기를 실행하는 동안 시작 단추가 다시 켜져 옮기기를 두 번 실행할 수 있던 문제를 수정했습니다. 이제 옮기기가 끝날 때까지 단추가 꺼져 있습니다.
사용자 데이터 보호(3rabbitz.protect_user_data)를 켜면 사용자 삭제 화면에서도 비밀번호를 다시 묻습니다. 이 화면도 이름과 이메일을 보여주는데 상세, 수정 화면과 달리 묻지 않았습니다.
서식 만들기 권한만 있는 사용자에게는 리소스 메뉴의 파일, 라벨, 관련 문서를 보여주지 않습니다. 서버가 허용하지 않는 메뉴였습니다.
로그인하면 세션 아이디를 새로 만듭니다. 미리 심어 둔 세션 아이디로 로그인 상태를 가로채지 못합니다.
로그인 유지 쿠키와 서버 이중화의 동기화 서명에 쓰는 비밀값(SEED)을 설치마다 다른 무작위 값으로 바꿉니다. 새로 설치하거나 이 버전으로 업데이트할 때, 예전 버전의 백업을 복원할 때 바꾸며, 관리자가 직접 정한 값은 그대로 둡니다. 이미 발급한 로그인 유지 쿠키도 그대로 쓸 수 있습니다.
에디터의 비주얼 에디터가 다른 창에서 보낸 저장 메시지도 받아들이던 문제를 수정했습니다. 이제 이 서버의 비주얼 에디터 창이 보낸 메시지만 처리합니다. 비주얼 에디터 창도 같은 서버의 에디터가 보낸 메시지만 받고, 이 서버로만 메시지를 보냅니다.
로그인 유지 쿠키에 HttpOnly 속성을 붙여 페이지의 스크립트가 읽지 못하게 합니다. https로 접속했거나 도메인 주소가 https이면 Secure 속성도 붙입니다. 로그아웃하거나 로그인 유지를 끄거나 2단계 인증을 켜면 쿠키와 함께 서버에 남은 로그인 유지 기록도 지웁니다.
사용자 데이터 보호의 비밀번호 확인을 5번 잇달아 틀리면 로그아웃합니다. 다시 로그인할 때는 로그인 잠금 설정이 적용됩니다.
로그인하지 않은 사용자에게는 오류 응답에 예외 내용과 스택 트레이스를 싣지 않습니다. 스택 트레이스 숨기기(
HIDE_ERROR_STACKTRACE) 설정과 상관없이 적용됩니다.주소에 숫자나 정해진 값이 와야 할 자리에 잘못된 값을 넣으면 서버 오류(500) 대신 잘못된 요청(400)으로 답합니다.
캠페인과 메일 템플릿에서 받는 사람 이름 같은 치환값을 이스케이프합니다. 구독 신청에 이름 대신 HTML을 넣어도 메일에서 링크나 태그로 동작하지 않습니다.
목록 화면의 정렬 기준은 칸 이름만 받습니다. 정렬 기준에 SQL 식을 넣거나, 없는 칸이나 잘못된 정렬 방향을 주면 잘못된 요청(400)으로 답합니다.
MCP로 그림을 넣을 때(
add_image_element) base64 값은 내용을 확인해 PNG, JPEG, GIF만 받습니다. 이전에는 SVG 같은 파일도 그림으로 저장했습니다.전체 사용자와 문서, 권한 구조를 내려받고 되살리는 관리자용 진단 주소는
SUPPORT_APPLICATION_DATA_STRUCTURE설정을 켰을 때만 동작합니다. 기본은 꺼져 있습니다.화면에 HTML을 넣을 때 쓰는 필터가 스크립트 태그와 이벤트 속성만 걸러, iframe의 srcdoc 속성이나 javascript: 링크로 스크립트를 실행할 수 있던 문제를 수정했습니다. 이제 위험한 태그와 속성, javascript·vbscript·data 주소를 걸러냅니다. 그림의 data:image 주소는 그대로 둡니다.
수신 거부 페이지의 이메일, 에디터 작업 공간의 탭 이름, 웹 페이지 미리 보기의 이름, 웹 페이지 모듈을 고르는 창의 프로젝트 이름, AI 프롬프트와 AI 어시스턴트 이름에 든 HTML이 태그로 동작하던 문제를 수정했습니다. 이제 글자 그대로 보여줍니다.
캠페인 미리 보기에서 메일 본문에 든 스크립트가 관리 화면에서 실행될 수 있던 문제를 수정했습니다. 미리 보기에서는 본문의 스크립트를 실행하지 않습니다.
PDF, MS 워드, EPUB, HTML 파일을 만들 때 다른 문서의 아이디를 태그 아이디로 넘겨 그 문서의 내려받기 파일을 덮어쓸 수 있던 문제를 수정했습니다. 이제 이 문서의 태그나 새로 만드는 태그만 받고, 그 밖의 값은 문서 설정을 바꾸기 전에 거절합니다.
문서를 복사할 때 함께 복사할 다른 문서의 권한을 확인하지 않아, 주소를 직접 부르면 볼 수 없는 문서도 복사해 그 소유자가 될 수 있던 문제를 수정했습니다. 이제 함께 복사할 문서를 모두 소유했는지 먼저 확인하고, 하나라도 아니면 아무것도 복사하지 않습니다. 없는 문서가 섞이면 복사본이 반쯤 만들어진 채 남던 문제도 함께 고쳤습니다.
문서 권한을 잃은 관심 사용자와 변경 요청자에게도 변경 요청 답변의 알림과 메일이 가던 문제를 수정했습니다. 변경 요청자는 문서를 공개 발행한 동안에는 권한이 없어도 답변을 받습니다.
라이브러리와 웹 뷰어 검색 결과에서 문서와 장 제목에 넣은 HTML이 태그로 동작하던 문제를 수정했습니다. 이제 제목을 글자 그대로 보여주며, <가 든 제목도 검색됩니다.
외부 시스템 관리 화면이 저장된 데이터베이스 비밀번호를 브라우저로 보내던 문제를 수정했습니다. 수정 화면의 비밀번호 칸은 비어 있으며, 비워 둔 채 저장하면 저장된 비밀번호를 그대로 씁니다.
데이터베이스 이관의 JDBC URL 검사가 MySQL 호스트 괄호 안에 적은 옵션(
address=(...)(allowLoadLocalInfile=true)등)과 URL 인코딩한 옵션을 걸러내지 못하던 문제를 수정했습니다.로그인 화면에서 아이디나 비밀번호 칸에서 Enter 키를 누르면 「로그인 유지」를 누른 것처럼 로그인 유지가 켜진 채 로그인되던 문제를 수정했습니다. 공용 컴퓨터에서 브라우저를 닫아도 로그인 상태가 남을 수 있었습니다. 이제 Enter 키는 「로그인」과 같이 동작합니다.
공개 포럼의 태스크 이력에서 태스크 제목, 담당자와 사용자 이름에 넣은 HTML이 태그로 동작하던 문제를 수정했습니다. 화면에 HTML을 넣을 때 쓰는 필터가 style 태그도 지웁니다. 웹 페이지에 넣은 style 태그는 이전처럼 동작합니다. 배너나 웹 뷰어의 저작권 표시에 style 태그로 넣은 스타일은 웹 페이지의 style 태그나 사용자 CSS(APP_CSS)로 옮깁니다.
AI 어시스턴트의 테스트 창이 문서 조각을 HTML로 보여, 작성자가 문서에 넣은 HTML이 관리자 화면에서 동작할 수 있던 문제를 수정했습니다. AI 어시스턴트와 채널 이름, 첫 번째 페이지 설정도 글자 그대로 보여줍니다.
변경 요청 답변에 넣은 HTML이 진척 관리 화면과 알림, 요청자에게 가는 메일에서 태그로 동작하던 문제를 수정했습니다. 이제 답변을 글자 그대로 보여주고 줄바꿈을 지킵니다. 이 버전 전에 남은 알림은 그대로입니다.
외부 계정 로그인 설정을 저장하면 구글, 페이스북, 네이버의 클라이언트 비밀값이 서버 로그에 남던 문제를 수정했습니다. 이제 바꾼 항목의 이름만 남깁니다.
문서와 에디터
문서 진행 상태에서 결재자는 문서 소유자 가운데 고릅니다. 지난번 결재자가 더는 소유자가 아니면 미리 골라 두지 않습니다.
검색어 추천을 새 문서의 기본 옵션으로 설정할 수 있습니다. <관리 | 환경 설정 | 일반 설정>의 <옵션(책 만들기)>에 "검색어 추천 기능을 지원합니다"를 더했고, 새 문서를 만드는 화면의 기본값이 이 설정을 따릅니다. 기본값은 켜짐이라 지금까지와 같습니다. 이미 만든 문서에는 영향이 없습니다.
차례 펼치기를 끄면 새 문서의 기본값이 펼치지 않음으로 저장됩니다.
공개 링크 접두사를 설정해도 공개 설정을 다시 열 때 기본 링크가 사용자 지정 링크로 보이지 않습니다. 접두사를 바꾼 뒤 주소를 그대로 두고 다시 저장하면 이미 알린 주소가 바뀌지 않고, 주소를 실제로 바꿀 때만 지금 접두사를 붙입니다. 이전에는 예전 접두사 위에 새 접두사가 겹쳐 붙을 수 있었습니다.
비주얼 에디터의 좌우 뒤집기가 180도 회전이 아니라 거울상으로 동작합니다. 상하 뒤집기를 고르면 오류가 나던 문제도 고쳤습니다. 뒤집어도 도형 안의 글자는 읽을 수 있는 방향을 지키며, 두 번 뒤집으면 처음 모습으로 돌아옵니다. 한국어 메뉴에서 「좌우 대칭」과 「상하 대칭」의 이름이 서로 바뀌어 있던 것도 바로잡았습니다. 묶은 도형을 뒤집으면 묶음 전체를 기준으로 뒤집습니다. 동작하지 않던 확대 단축키는 없앴습니다.
비주얼 에디터의 참조 도형에서 동영상 클립을 고를 수 있습니다. 문서를 고르는 창에 동영상이 함께 나오고, 펼쳐서 클립을 고르면 그 클립을 가리킵니다. 참조 도형을 두 번 누르면 미리 보기에서 그 클립이 열립니다. 클립 묶음은 펼치기만 되고 고를 수는 없습니다.
브랜치 검토에서 출처 쪽 변경과 출처 제목 변경을 브랜치 쪽 변경과 다른 색으로 표시합니다. 한 단락에 두 쪽 변경이 함께 있으면 구분하기 어려웠습니다.
변경 비교에서 넣거나 지운 부분을 낱말과 문장 경계에 맞춰 표시합니다. 단락을 합치면 앞 단락 끝에 붙은 내용이 문장 중간부터 넣은 것처럼 보였습니다.
화면과 다국어
UI 설정에서 강조 색을 비우면 기본값으로 되돌립니다. 저장한 설정이 서버 이중화의 다른 노드에도 반영됩니다. UI 설정의 저장 주소로는 UI 항목만 바꿀 수 있습니다.
영어 화면에서 한국어로 보이던 라벨 40개에 영어를 넣었습니다.
일본어와 중국어(간체) 화면의 메뉴와 메시지를 모두 해당 언어로 옮겼습니다. 이전에는 일본어는 3분의 1 정도만, 중국어는 거의 번역되지 않아 나머지가 영어로 보였습니다. 기존 일본어 번역도 용어를 맞춰 다시 옮겼습니다. 일본어와 중국어는 기본으로 꺼져 있어 켜 둔 서버에만 보입니다. 메일 템플릿과 초기 데이터처럼 메시지 밖에 있는 문구는 아직 한국어나 영어로 보입니다. 한국어와 영어 문구의 오타와 문법 오류도 함께 고쳤습니다.
제품 화면의 스타일을 Tailwind CSS 대신 제품 자체의 스타일시트로 정리했습니다. 웹 페이지와 웹 페이지 모듈, 블로그와 동영상의 주제, 라이브러리의 HTML 항목에서는 이전처럼 Tailwind 클래스를 쓸 수 있습니다. 문서의 HTML 단락이나 배너처럼 그 밖의 곳에 넣은 HTML의 Tailwind 클래스는 제품 화면이 쓰던 클래스와 겹친 것만 적용되었으므로, 이 버전부터는 적용되지 않을 수 있습니다. 이런 HTML은 웹 페이지 모듈로 옮기거나 사용자 CSS(
APP_CSS)로 스타일을 정합니다.
태스크와 알림, 메일
태스크 본문에도 댓글을 달 수 있습니다. 메일 답변을 새 태스크로 떼어 내면 답변에 달린 댓글도 새 태스크 본문으로 옮겨 가고, 본문 댓글 알림을 누르면 그 댓글로 바로 갑니다.
리마인더에서 고른 날짜와 시각을 사용자 시간대로 저장합니다. 알림이 가는 시각과 메일에 적힌 시각이 어긋나지 않습니다. 반복 리마인더의 다음 시각도 사용자 시간대의 달력으로 계산하고, 밀린 주기는 건너뜁니다.
리마인더를 수동으로 실행한 때와 스케줄러가 겹치거나 여러 서버에서 돌아도 알림이 한 번만 갑니다.
날짜 유형 마일스톤은 날짜 없이 저장할 수 없습니다. 카테고리나 마일스톤을 지워 태스크에서 떨어지면 이력에 남깁니다.
태스크 목록의 연결 태스크는 5단계 깊이까지, 태스크마다 50개까지 펼칩니다.
답변을 동시에 달거나 지워도 답변 수가 어긋나지 않고, 같은 카테고리가 두 번 붙지 않습니다.
태스크 관계(관련, 선행, 후행)는 태스크를 만든 사람과 채널 소유자만 잇고 끊을 수 있습니다. 채널(Q&A와 포럼 채널)에 붙이는 카테고리는 채널 소유자만 바꾸고, 다른 참여자에게는 붙은 카테고리 이름만 보여줍니다.
태스크와 답변 알림 메일의 본문에 스타일을 입혀 표와 코드, 인용구가 메일 프로그램에서도 알아보기 쉽게 보입니다.
캠페인 대상이 사용자일 때도 수신 거부와 재구독을 할 수 있습니다. 구독자를 가져오거나 관리자가 구독자를 저장해도 수신 거부한 구독자를 다시 구독 상태로 바꾸지 않습니다. 구독자 가져오기 결과의 수에서 수신 거부한 구독자는 빼고, 건너뛴 수(
skipped)를 따로 알려줍니다.
챗봇과 검색
질문을 검색어로 바꿀 때 어떤 제품의 문서를 찾는지 알려 줍니다. AI 어시스턴트의 이름과 설명을 씁니다. 그동안은 「인덱스」를 데이터베이스 인덱스로, 「관리자 권한」을 윈도우 계정 설정으로 읽는 등 다른 제품의 내용으로 검색이 빗나가기도 했습니다. AI 어시스턴트의 설명에 제품이 무엇인지 한 줄 적어 두면 효과가 커집니다.
검색어를 바꿀 때 버전 번호와 명령어 이름, 속성 이름, 파일 이름은 원문 그대로 옮기고, 메뉴나 화면 이름을 지어내지 않습니다.
짧은 질문이 서로 다른 기능을 가리킬 수 있으면 짐작해서 답하지 않고 어느 쪽을 묻는지 되묻습니다. 짧다는 이유만으로 되묻지는 않습니다.
「…는 …를 참고합니다.」처럼 다른 곳을 가리키기만 하는 단락은 검색 대상에서 뺍니다. 담긴 정보가 없는데 검색 상위를 차지했습니다. 가리키는 단락은 제자리에서 따로 검색됩니다. 이미 만든 벡터 저장소는 임베딩 동기화를 실행하거나 자동 업데이트가 한 번 돌면 반영됩니다. 내용이 바뀌지 않은 단락은 기존 임베딩을 그대로 쓰므로 벡터 저장소를 다시 만들 필요는 없습니다.
챗봇이 답하다가 문서를 더 찾을 때 질문 변환을 다시 하지 않아 빨라졌습니다. 이번 질문에서 이미 넘긴 단락은 빼고 돌려줍니다.
AI 어시스턴트 화면의 테스트와 평가 실행을 고객 문의와 구분해 기록합니다.
MCP 도구
MCP로 책 문서에 장을 만들고(
create_chapter), 장 유형을 바꾸고(update_chapter_type), 같은 문서 안에서 장의 순서를 바꿀 수 있습니다(move_chapter). 위치를 정하지 않고 장을 만들면 화면에서 만들 때처럼 유형에 맞는 자리에 넣습니다. 세 도구 모두 바뀐 뒤의 장 목록을 돌려줍니다. 화면과 같이 문서 소유자만 쓸 수 있습니다.MCP로 장이나 문서를 읽으면(
get_chapter,get_document) 웹 뷰어에서 숨긴 장에hidden: true를 붙여 알려줍니다. AI 도구가 독자에게 보이지 않는 장을 공개된 내용으로 알고 판단하지 않도록 도구 설명에도 뜻을 적었습니다.MCP로 장의 부제목, 저자, 주제를 읽고 고칠 수 있습니다. 장을 읽으면(
get_chapter) 장 제목과 부제목, 저자, 주제를 함께 돌려주고,update_chapter_properties로 넘긴 속성만 바꿉니다. 빈 값을 넘기면 지웁니다. 문서를 번역할 때 본문과 제목 말고도 이 값들을 함께 옮길 수 있습니다. 장 제목은 이전처럼update_chapter_title로 바꿉니다.관리자가 MCP로 챗봇을 시험할 수 있습니다. 질문 하나를 실제로 돌려 답변과 근거 단락, 모델 호출 수를 보거나(
test_chatbot), 답변 없이 검색 점수만 볼 수 있습니다(test_chatbot_retrieval). 시험으로 돌린 세션은 챗봇 이력에서 기본으로 빠집니다. 실제 모델을 부르므로 한 서버에서 하루에 부를 수 있는 횟수를 50번으로 제한하며,CHATBOT_TEST_DAILY_LIMIT설정으로 바꿉니다. 챗봇 관련 MCP 도구는 관리 권한이 있는 사용자에게만 목록에 보입니다.관리자가 MCP로 챗봇 이력에서 고쳐야 할 문서를 찾을 수 있습니다. 같은 사람이 얼마 지나지 않아 비슷한 질문을 다시 한 자리(
get_chatbot_reasks)와, 챗봇이 문서에 없다고 답했거나 문서 검색 횟수 한도에 막혔거나 독자가 「도움이 되지 않음」을 누른 자리(get_chatbot_weak_answers)를 돌려줍니다. 새로 모델을 부르지 않고 이미 남은 로그로 찾으며, 여러 날을 한꺼번에 볼 수 있습니다. 로그인하지 않은 독자도 같은 사람인지 가릴 수 있도록 챗봇 로그에 방문자 값을 남기므로, 이 버전 전의 로그에서는 로그인한 사용자의 재질문만 찾습니다.챗봇 재질문 도구(
get_chatbot_reasks)는 상위 1,000건(50쪽)까지 돌려주고, 결과가 잘렸으면truncated로 알립니다. 조회 기간이 길어도 서버 메모리를 많이 쓰지 않습니다.챗봇 이력을 조회하면 검색 후보마다 어느 문서의 어느 단락인지와 유사도, 그 후보를 가져온 검색어를 함께 보여줍니다. 본문을 펼치지 않아도 검색이 어디로 갔는지 알 수 있습니다.
챗봇 세션 목록은 AI 어시스턴트 화면의 테스트와 평가 실행을 기본으로 빼고 보여줍니다.
includeTests를 주면 함께 보여줍니다.
AI 제공자와 벡터 저장소
AI 제공자의 API 키를 데이터 디렉터리의 암호화 키 파일(
.key.json)로 암호화해 저장합니다. 이전 버전에서 평문으로 저장한 키는 이 버전으로 업데이트할 때 암호화하고, 예전 버전의 백업을 복원하거나 사용자 정보 암호화를 평문 모드에서 암호화 키로 바꿀 때도 암호화합니다. 암호화 키 파일 없이 복원해 풀 수 없는 키는 AI 제공자 화면에서 다시 입력하라고 알립니다. 이 파일은 백업에 들어가지 않으므로, 이 파일 없이 다른 서버에 복원하면 API 키를 풀 수 없어 AI 제공자 화면에서 키를 다시 입력해야 합니다.AI 제공자를 새로 만들 때 기존 제공자와 이름이 겹치면 거절합니다. 앞뒤 공백과 대소문자는 무시하고 비교합니다. 이미 이름이 겹친 제공자는 그대로 고칠 수 있습니다.
같은 문서에 같은 이름의 AI 모델로 벡터 저장소를 두 번 만들지 못합니다. 모델 이름의 콜론(:)은 하이픈(-)으로 바꿔 비교합니다. 같은 문서와 모델의 벡터 저장소 동기화는 한 번에 하나만 돌며, 수동 동기화 중에 다시 동기화하면 안내와 함께 거절하고 자동 업데이트는 건너뜁니다. AI 어시스턴트가 쓰는 벡터 저장소는 지울 수 없습니다.
임베딩 모델이 오류나 빈 응답을 돌려주면 벡터 저장소 동기화를 실패로 알리고 로그에 남깁니다. Ollama에 API 키를 정하지 않았으면 인증 헤더를 보내지 않습니다.
AI 사용(
ENABLE_AI)을 끄면 AI 제공자, 벡터 저장소, AI 어시스턴트, AI 사용량 관리 화면에도 주소로 들어갈 수 없습니다.AI 글쓰기로 넣은 단락을 에디터의 실행 취소로 되돌릴 수 있습니다. 넣을 기준 단락이 그새 지워졌으면 엉뚱한 곳에 넣지 않고 알려줍니다. AI 출력에서는 허용한 태그와 링크 주소만 남기고, 지원하지 않는 블록의 글자는 일반 단락으로 살립니다.
API와 연동
API를 키로 부를 수 있습니다. API 상세 화면에서 키를 발급해
Authorization헤더에Bearer형식으로 실어 보내면 주소에 API 아이디를 넣지 않아도 됩니다. 키는 발급한 직후 한 번만 보여 주고 서버에는 해시만 남으며, 언제든 다시 발급할 수 있습니다. 「주소의 API 아이디로 부르는 것을 막고 발급한 키로만 받습니다」 옵션을 켜면 예전 주소로는 부를 수 없습니다. 이 옵션은 기본으로 꺼져 있어 지금 쓰는 연동은 그대로 동작합니다. API 호출 오류 로그에는 아이디와 키를 앞 네 글자만 남깁니다.로그인 없이 라이선스와 사용자·문서 수를 알려주는 API(
/r/api/license)를SUPPORT_LICENSE_API설정으로 끌 수 있습니다. 기본값은 켜져 있어 지금 쓰는 연동은 그대로 동작합니다.문서 XML 내보내기 API가 파일 내보내기를 막은 서버에서는
FILE_EXPORT_DISABLED로 거절합니다. 호출마다 따로 작업 폴더를 쓰고 끝나면 지웁니다.문서 공개 API와 비공개 API가 링크만 만들어 둔 비공개 공개 정보까지 정리합니다. 같은 문서를 여러 번 공개해도 공개 정보는 하나만 남습니다.
문서 복사 API가 복사한 뒤 접근 권한 복사나 프로젝트 지정이 실패하면 설정이 빠진 복사본을 지웁니다.
사용자 API는 화면에서 줄 수 있는 권한만 줍니다. MCP와 번역 권한은 글쓰기 권한과 함께일 때만 주고, 이메일 형식이 틀리거나 없는 시간대를 주면 거절합니다. 사용자 권한 변경 API는
roles가 없거나 마지막 관리자나 호출한 사람의 관리 권한을 빼는 요청을 거절합니다. API를 만든 사용자는 그 API로 지울 수 없습니다.뉴스레터 구독 API가 수신을 거부한 구독자를 다시 구독시키지 않습니다. 외부 시스템의 명단을 통째로 다시 보내도 수신을 거부한 사람은 이름만 바뀌고 수신 거부 상태를 유지합니다. 이전처럼 다시 구독시키려면 본인이 다시 동의했을 때만
resubscribe를true로 보냅니다.API 오류 응답을 정리했습니다. 구현하지 않은 액션은
UNSUPPORTED_ACTION, 잘못된 알림 파라미터는INVALID_PARAMETER, 공개본에 없는 장은CHAPTER_NOT_EXIST로 알립니다. 서버가 거절한 요청은 오류 종류를 돌려주고, 예상하지 못한 예외는 내부 메시지 없이internal_error만 돌려줍니다. 태그 목록은 만든 날짜의 역순으로 정렬합니다.IP 필터가 프록시 뒤에서 클라이언트 IP를 고르는 방식을 정할 수 있습니다. 콘솔의
set-ip-filter-proxy-count명령으로 프록시 수를 정하면 X-Forwarded-For 헤더의 뒤에서부터 그 수만큼 떨어진 값을 씁니다. 클라이언트가 헤더 앞쪽에 넣은 값으로 필터를 통과하지 못합니다. 정하지 않으면 이전처럼 첫 값을 씁니다. 프록시 수에 0을 주면 설정을 지워 정하기 전으로 되돌립니다.API마다 정하는 허용 IP도 IP 필터와 같은 방식으로 클라이언트 IP를 고릅니다. 이전에는 X-Forwarded-For 헤더의 첫 값을 그대로 믿어, 클라이언트가 헤더에 넣은 값으로 허용 IP를 통과할 수 있었습니다. 이제 프록시 헤더 신뢰(
trust-ip-filter-proxy)를 켜지 않으면 서버에 직접 연결한 IP로 판단하며, 이 설정은 기본으로 꺼져 있습니다. 로드 밸런서나 리버스 프록시 뒤에서 API의 허용 IP를 쓰고 있다면, 업데이트한 뒤에는 프록시 서버의 IP로 판단해 호출을 거절(NOT_ALLOWED_CLIENT_IP)합니다. 콘솔에서trust-ip-filter-proxy를 실행하고set-ip-filter-proxy-count로 프록시 수를 정합니다. 지금 판단하는 IP는/r/api/client_ip에서 확인합니다.
서버 운영과 설치
아파치 톰캣 9.0.122 버전으로 업데이트했습니다.
JVM 기본 옵션에
-XX:-OmitStackTraceInFastThrow를 넣었습니다. 같은 예외가 되풀이되어도 로그에 스택트레이스가 남아 원인을 찾기 쉽습니다. 기존 사용자에게는 영향이 없습니다.서버 이중화에서 한 노드에 장애가 나 다른 노드로 요청이 가도 다시 로그인하지 않습니다. 브라우저가 보낸 세션 아이디로 로그인 기록을 찾아 로그인을 잇고, 한 노드에서 로그아웃하면 모든 노드에서 로그아웃합니다. 세션 만료 시간보다 오래 쓰지 않은 로그인은 잇지 않습니다.
라이선스 키의 MAC 주소가 서버의 네트워크 인터페이스 가운데 어디에든 있으면 라이선스를 유효로 봅니다. 네트워크 인터페이스의 순서만 바뀌어도 라이선스가 무효가 되던 문제가 없어집니다. 설정한 이름의 네트워크 인터페이스가 없으면 로그에 경고를 남깁니다.
설치할 때 서버에서도 비밀번호와 데이터·백업 디렉터리를 다시 검사합니다. 상위 경로나 심볼릭 링크로 제품 디렉터리를 가리키는 경로는 쓸 수 없고, 설치 요청이 겹치면 차례로 처리합니다.
설치할 때 데이터 디렉터리와 백업 디렉터리가 같은 저장소에 있어도 경고하지 않습니다. 백업 디렉터리는 설치한 뒤에 옮길 수 있습니다. 관리 화면의 시스템 상태 점검에서는 예전처럼 안내합니다.
데이터베이스 이관의 JDBC URL을 검사합니다. 스크립트 실행, 파일 접근, 클래스 로딩 옵션이 든 URL과 고른 데이터베이스 종류와 맞지 않는 URL은 거절합니다.
H2 데이터베이스 복원 화면에서 가장 최근 백업 ZIP을 데이터베이스 디렉터리에 풀어야 한다고 안내하고 풀 파일을 보여줍니다. 백업을 풀어 둔 상태에서도 복원을 시작할 수 있고, 백업과 로그에 함께 든 행 때문에 중복 키 오류로 멈추지 않습니다.
윈도우 실행 스크립트를 다른 폴더나 다른 드라이브에서 실행해도 설치 폴더를 찾습니다. 셸 스크립트는 공백이 든 설치 경로를 다룹니다. 자바 버전 경고는 권장 버전(25)을 안내합니다.
JDBC 드라이버를 찾지 못했을 때 드라이버를 복사할 위치를
web/WEB-INF/lib로 안내합니다. 이전 안내대로tomcat/lib에 두면 업데이트할 때 지워졌습니다.윈도우 서비스 파일(service.bat)을 새로 배포합니다. 인코딩을 UTF-8로 정하고, 자바 힙 메모리의 최대 크기를 실행 스크립트와 같은 2048MB로 올리고, 공백이 든 설치 경로와 다른 드라이브에서의 실행을 다룹니다. tomcat9.exe가 있으면 먼저 쓰고, 서비스는 예전처럼 LocalSystem 계정으로 등록합니다. 다른 계정으로 등록하려면 SERVICE_ACCOUNT 환경 변수를 정합니다. 이미 서비스로 등록해 운영하는 서버는 그대로 동작하므로 다시 등록하지 않아도 됩니다.
해결한 버그
권한과 접근 제어
일부 서버 기능이 권한을 확인하지 않아 로그인한 사용자라면 누구나 부를 수 있던 문제를 수정했습니다. 관리 기능에는 관리자 권한을 요구하고, 문서와 설정을 바꾸는 기능은 해당 문서나 대상의 권한을 확인합니다. 블로그와 동영상 설정, 블로그 글, 클립 포스터와 클립 순서, 태스크 그림, 문서 파일 만들기 설정, 라벨 설명, 공개 설정의 태그, 라이선스 발급 메일 등이 해당합니다. 화면에서 이미 감추던 기능이라 대부분의 사용자는 차이를 느끼지 못합니다.
문서 아이디만 알면 볼 수 없는 문서의 차례와 제목, 장 제목과 진행률, 인라인 관련 문서의 내용, 문서 검증 결과가 조회되던 문제를 수정했습니다. 이제 볼 수 있는 문서만 돌려줍니다. 볼 수 없는 문서는 즐겨찾기에도 넣을 수 없습니다.
문서를 고르는 창이 쓰는 주소가 로그인하지 않아도 아이디만으로 문서와 장, 채널의 제목과 단락 본문까지 돌려주던 문제를 수정했습니다. 이제 로그인해야 하고, 볼 수 있는 항목만 제목을 보여줍니다.
문서 목록과 문서 검색에 사용자가 열 수 없는 문서까지 나오던 문제를 수정했습니다. 읽기 역할 사용자에게 소유자나 협업자 권한을 준 문서, 읽기나 쓰기 역할이 없는 사용자에게 검토자 권한을 준 문서가 해당합니다.
피드백 통계를 문서 권한이 없는 사용자도 볼 수 있던 문제를 수정했습니다. 공개하지 않은 문서에 권한 없는 사용자가 피드백과 수정 요청을 남길 수 있던 문제도 함께 고쳤습니다.
함께 보기를 추가하거나 인라인 함께 보기를 볼 때 볼 수 없는 문서의 제목과 단락이 드러나던 문제를 수정했습니다. 볼 수 없는 문서는 함께 보기에 추가할 수 없습니다.
권한을 잃은 사용자에게도 관심 문서의 장 변경 알림과 메일이 가던 문제를 수정했습니다. 볼 수 없는 문서와 태스크를 관심 대상으로 등록할 수 있던 문제도 함께 고쳤습니다.
관심 태스크와 즐겨찾기 태스크 목록에 참여하지 않았거나 빠진 채널의 태스크가 보이던 문제를 수정했습니다. 공개한 포럼 채널의 태스크는 그대로 보입니다.
포럼과 Q&A 검색이 로그인하지 않은 방문자에게 공개하지 않은 채널의 태스크 제목과 작성자를 보여주던 문제를 수정했습니다. 검색 건수도 보여 준 결과만 셉니다.
라이브러리 검색에서 로그인하지 않은 방문자가 공개하지 않은 문서의 장 목록과 제목을 볼 수 있던 문제를 수정했습니다.
웹 페이지 공개 설정을 에디터 권한이 없는 사용자도 바꿀 수 있던 문제를 수정했습니다. 문서 유형과 맞지 않는 공개 유형을 저장할 수 있던 문제도 함께 고쳤습니다.
내보내기 파일 통계에서 다른 문서의 PDF, EPUB 같은 내보내기 파일을 내려받거나 지울 수 있던 문제를 수정했습니다. 참조 통계에 볼 수 없는 문서의 제목이 보이던 문제도 함께 고쳤습니다.
찾기 색인 다시 만들기와 문서 파일 만들기 설정 조회가 문서 권한을 확인하지 않던 문제를 수정했습니다. 태스크 그림의 비주얼 편집 정보와 피어 그룹 정보도 볼 수 있는 사용자에게만 돌려줍니다.
정적 사이트 파일 관리에서 경로에 상위 폴더를 넣어 사이트 폴더 밖에 폴더를 만들거나 사이트 최상위 폴더의 이름을 바꿀 수 있던 문제를 수정했습니다. 응답에 서버의 전체 경로가 보이던 문제도 함께 고쳤습니다.
로그인하지 않아도 부를 수 있는 마크다운 예제 주소가 서버에서 임의의 주소를 대신 불러오던 문제를 수정했습니다. 개발용 예제 페이지와 그 주소를 없앴습니다.
챗봇 답변과 MCP로 넣은 태스크와 답변 본문의 마크다운을 HTML로 바꿀 때 스크립트와 이벤트 속성, 위험한 링크 주소를 걸러내지 않던 문제를 수정했습니다. 글자와 코드는 그대로 보이도록 이스케이프합니다.
풀 리퀘스트 삭제 권한이 닫기보다 약하던 문제를 수정했습니다. 이제 원본 문서 소유자나 작성자만 지울 수 있습니다. 원본 문서를 지운 풀 리퀘스트는 작성자나 브랜치 소유자가 지웁니다.
원본 문서 소유자가 다른 사람의 브랜치에서 온 풀 리퀘스트를 열거나 병합하거나 닫지 못하던 문제를 수정했습니다. 풀 리퀘스트 알림을 받아도 권한 오류가 났습니다.
워드 파일 가져오기의 미리 보기 그림 주소로 남의 업로드 파일을 내려받고 지울 수 있던 문제를 수정했습니다. 워드 파일을 남의 문서에 올려 장을 넣을 수 있던 문제, 변경 요청 답변에서 요청자의 이름과 메일 주소가 드러나고 아무나 답변을 남겨 알림을 보낼 수 있던 문제, 다른 사람이 편집 중인 되돌리기 기록에 끼어들거나 그 기록을 지울 수 있던 문제도 함께 고쳤습니다.
에디터와 문서 화면의 관련 문서 조회와 라벨별 문서 조회에서 볼 수 없는 문서의 제목까지 보이던 문제를 수정했습니다.
웹 뷰어의 관련 문서와 백링크에 독자가 볼 수 없는 문서의 제목까지 보이던 문제를 수정했습니다. 공개 발행하지 않았고 독자에게 권한이 없는 문서, 접근할 수 없는 태스크는 목록에서 뺍니다.
용어집 내보내기와 가져오기가 용어 그룹 권한을 확인하지 않던 문제를 수정했습니다. 이제 참여 중인 그룹의 용어만 내보내고 가져옵니다. 다른 서버에서 내보낸 파일은 그룹 이름으로 찾아 넣고, 없으면 그룹 없이 넣습니다.
브랜치 접근 권한 화면이 있었지만 서버에 브랜치 권한 그룹이 없어 설정할 수 없던 문제를 수정했습니다.
업로드 파일 이름 바꾸기가 올린 사람과 권한을 확인하지 않던 문제를 수정했습니다. 파일 삭제와 같이 올린 사람과 디렉터리 리더가 바꿀 수 있고, 관리자는 디렉터리에 넣지 않은 파일을 바꿀 수 있습니다.
파일을 올릴 때 서버가 확장자를 확인하지 않아, 주소를 직접 부르면 허용하지 않은 파일도 올릴 수 있던 문제를 수정했습니다.
문서 진행 상태의 결재 요청과 이력 조회가 문서 권한을 확인하지 않던 문제를 수정했습니다. 프로젝트의 문서 진척 현황에 프로젝트 멤버가 볼 수 없는 문서까지 나오던 문제와, 문서 워크플로를 꺼도 주소를 직접 부르면 결재를 요청할 수 있던 문제도 함께 고쳤습니다.
승인 요청과 결재 완료 상태의 할 일을 서버에서는 닫거나 다시 열거나 지울 수 있던 문제를 수정했습니다. 이 상태는 결재 API로만 바뀝니다.
읽기 권한만 있는 문서로 장을 옮길 수 있던 문제를 수정했습니다.
장 가져오기가 원본 장의 접근 권한을 확인하지 않고 읽기 권한 사용자도 실행할 수 있던 문제를 수정했습니다. 이제 문서 소유자만 가져올 수 있고, 볼 수 없는 문서의 장은 가져오지 못합니다. 공개 발행만 된 문서의 장도 가져올 수 없습니다.
설정 복사가 선택을 해제한 문서와 소유하지 않은 문서에도 복사하던 문제를 수정했습니다. 대상 가운데 소유하지 않은 문서가 있으면 일부만 복사하지 않고 요청 전체를 거절합니다.
에디터에서 한 장을 편집할 권한만으로 편집을 막은 장이나 다른 문서의 단락을 읽고, 고치고, 지우고, 되돌릴 수 있던 문제를 수정했습니다. 저장과 병합, 찾아 바꾸기, 단락 이력 복원, 지운 단락 복원, 인쇄용 그림, 비주얼 편집, 단락 복사가 해당합니다. 이제 편집 중인 장의 단락만 다룹니다.
포함 단락과 그림을 고르는 창에서 다른 문서의 장을 고를 때 그 문서의 권한을 확인합니다. 소유자, 협업자, 검토자인 문서의 장만 고를 수 있습니다. 템플릿 단락을 넣을 때도 들어갈 수 있는 템플릿 디렉터리의 템플릿만 씁니다.
한 페이지 디자인의 PDF 레이아웃과 번역 언어를 문서 권한 없이 바꿀 수 있던 문제를 수정했습니다. 이력 공개를 켜지 않은 서버에서 로그인하지 않은 방문자가 장 이력 보기 주소로 장 내용을 볼 수 있던 문제도 함께 고쳤습니다.
쓰기 권한 사용자가 남의 업로드 파일을 자기 디렉터리로 옮긴 뒤 내려받거나 지울 수 있던 문제를 수정했습니다. 남의 업로드 파일을 인라인 그림으로 가져오거나, 남의 문서의 장을 템플릿 디렉터리로 빼 오거나, 남의 라벨을 고칠 수 있던 문제와 들어갈 수 없는 디렉터리 아래에 디렉터리를 만들 수 있던 문제도 함께 고쳤습니다.
파일 바꾸기가 확장자와 크기 제한을 확인하지 않던 문제를 수정했습니다. 파일 바꾸기가 늘 실패하던 문제도 함께 고쳤습니다.
문서 XML 가져오기의 그림 정보에 상위 경로를 넣어 서버의 다른 파일을 가져오거나 업로드 폴더 밖에 파일을 쓸 수 있던 문제를 수정했습니다. 업로드 파일을 내려받는 백업 API, 백업 서버에서 업로드 파일을 받아 오는 기능, 테이블 백업도 경로를 확인합니다.
가지지 않은 역할을 사용자에게서 빼면 오히려 그 역할이 생기던 문제를 수정했습니다. 관리 권한이 없는 사용자에게서 관리 권한을 빼면 관리자가 되었습니다.
MCP 그림 올리기에 쓰는 일회용 표로 로그인 유지 쿠키를 만들어 로그인할 수 있던 문제를 수정했습니다. 비활성 사용자가 로그인 유지 쿠키로 계속 로그인되던 문제와, 로그아웃해도 로그인 유지 쿠키가 지워지지 않던 문제도 함께 고쳤습니다.
로그인 주소의 path 파라미터로 로그인한 뒤 다른 사이트나 javascript: 주소로 보낼 수 있던 문제를 수정했습니다. 이제 이 서버 안의 경로로만 이동합니다. 외부 계정 로그인도 같습니다.
HTML 필터가 대소문자나 공백, 문자 참조를 섞은 javascript: 링크, formaction 같은 속성, SVG 애니메이션을 걸러내지 못하던 문제를 수정했습니다. 독자 피드백과 할 일 설명, 배너 등에 적용됩니다. HTML을 다시 쓸 때 작은따옴표로 감싼 속성 값의 큰따옴표가 이스케이프되지 않아 속성이 새로 생기던 문제도 함께 고쳤습니다.
워드 파일 가져오기에서 본문 글자의 특수 문자가 처음 한 번만 이스케이프되어, 글자로 적은 HTML이 태그로 들어가던 문제를 수정했습니다.
메일로 받은 태스크 본문에서 속성 이름에 빗금을 넣어 이벤트 속성을 끼워 넣을 수 있던 문제를 수정했습니다. 보낸 사람이 링크에 넣은 rel과 target 값은 버립니다.
검색 로봇에게 보여주는 태스크 페이지의 제목과, 문서 진행 상태에서 지운 변경 요청의 설명이 이스케이프되지 않던 문제를 수정했습니다.
문서 소유자가 자기 문서의 주소로 다른 문서의 장을 복사하거나 저장, 삭제하고, 장 설정과 순서를 바꿀 수 있던 문제를 수정했습니다. 장 옮기기 화면, 블로그 글과 카테고리, 댓글 승인과 스팸 처리, 삭제, 만다라트도 주소의 문서에 속한 것만 다룹니다. 쓰기 권한만 있으면 아무 장의 아이콘이나 바꿀 수 있던 문제도 함께 고쳤습니다.
참조하는 장까지 함께 지울 때, 참조하는 장이 있는 문서를 모두 소유했는지 확인합니다. 소유하지 않은 문서가 있으면 지우지 않고 그 문서의 소유자에게 먼저 장을 지워 달라고 안내합니다.
약어 관리 주소로 다른 사람의 용어집과 용어를 고치거나 지울 수 있던 문제를 수정했습니다. 용어집 수정과 삭제는 소유자만, 용어 넣기와 빼기, 용어 목록 보기는 참여자만 할 수 있습니다. 다른 사람의 용어 그룹에 용어를 넣거나 빼 올 수 있던 문제도 함께 고쳤습니다.
검토 요청 주소로 변경 요청 할 일을 고쳐 답변이 지워지던 문제, 검토자를 모두 빼면 검토 요청의 이력이 사라지던 문제를 수정했습니다.
번역 화면에서 쓰는 경로 표시 주소가 볼 수 없는 문서와 장의 제목을 돌려주던 문제를 수정했습니다.
웹 페이지를 권한 없이 저장하거나 이름을 바꾸고 지울 수 있던 문제, 들어갈 수 없는 프로젝트로 넣을 수 있던 문제를 수정했습니다. 로그인하지 않아도 공개하지 않은 웹 페이지의 HTML을 모듈 주소로 볼 수 있던 문제도 고쳤습니다. 문서에 넣은 웹 페이지 모듈은 그 문서를 볼 수 있는 독자에게 보입니다.
사용자 이름이나 문서, 장, 풀 리퀘스트의 제목에 넣은 HTML이 알림 제목, 참조 그림, 에디터의 웹 페이지 이름, 검색 로봇용 페이지에서 태그로 동작하던 문제를 수정했습니다.
설치와 서버 운영
설치와 복원 주소가 운영 중인 서버에서도 열려 있던 문제를 수정했습니다. 로그인한 사용자가 이 주소로 데이터 디렉터리 설정과 라이선스 파일을 덮어쓰고 관리 권한 사용자를 새로 만들 수 있었습니다. 이제 설치를 마친 서버는 설치 요청 자체를 거절하고, 설치와 복원 주소는 관리 권한이 있어야 부를 수 있습니다. 백업 파일 목록도 관리자만 볼 수 있습니다.
서버 이중화의 동기화 주소가 인증 없이 열려 있던 문제를 수정했습니다. 서버 이중화를 쓰면 모든 노드를 함께 업데이트합니다. 노드 사이의 동기화 요청에 서명을 붙이고 받는 쪽에서 확인합니다. 이전 버전 노드가 보낸 요청은 서명이 없어 거절되므로, 노드를 하나씩 업데이트하면 그동안 캐시가 동기화되지 않습니다. 노드 사이의 시각 차이는 1시간까지 허용합니다.
서버 이중화에서 방문 이력 정리가 모든 노드에서 돌아 이력 삭제와 파일 옮기기가 겹칠 수 있던 문제를 수정했습니다. 이제 다른 정리 작업처럼 주 노드에서만 돕니다.
일정한 간격으로 도는 작업이 서버를 시작할 때마다 간격만큼 미뤄지던 문제를 수정했습니다. 간격보다 자주 서버를 다시 시작하면 한 번도 돌지 않았습니다. 7일마다 도는 벡터 저장소 자동 업데이트가 대표적입니다. 이제 마지막으로 성공한 시각부터 셉니다. 이미 때가 지났으면 서버를 시작하고 몇 분 안에 돌며, 작업마다 시작 시각을 조금씩 달리해 한꺼번에 몰리지 않습니다. 이 버전으로 업데이트한 직후에는 예전처럼 간격만큼 기다린 뒤 처음 돕니다.
백업을 복원할 때 동시에 도는 작업 수를 잘못 세어 복원이 멈출 수 있던 문제를 수정했습니다. 복원 중에 난 오류가 다른 예외에 가려져 원인을 알 수 없던 문제도 함께 고쳤습니다.
기본 정렬 기준인 시각이 같으면 목록 순서가 조회할 때마다 바뀌던 문제를 수정했습니다.
H2 데이터베이스를 쓸 때 일부 조회 결과의 값이 엉뚱한 항목에 담기던 문제를 수정했습니다.
서버가 밖으로 열 생각이 없던 내부 기능까지 주소로 부를 수 있던 문제를 수정했습니다.
라이선스 키를 넣을 때 키가 올바르지 않으면 그 사실 대신 서버 장애 메시지가 나오던 문제를 수정했습니다. 메일 설정에서 테스트 메일 발송이 실패할 때도 실패한 내용을 화면에서 볼 수 있습니다.
조회 조건의 목록 값이 500개를 넘으면 함께 준 다른 조건이 무시되던 문제를 수정했습니다. 문서가 많은 사용자의 참조 통계와 파일 검색 등이 해당합니다. 목록이 비어 있으면 Oracle, MySQL, SQL Server에서 SQL 오류가 나던 문제도 함께 고쳤습니다.
사용하지 않는 업로드 파일 정리가 용어집 설명에 넣은 그림을 쓰지 않는 파일로 보고 지우던 문제를 수정했습니다. 원본 파일이 없고 백업만 남은 업로드를 정리하면 백업까지 지워 되살릴 수 없던 문제도 함께 고쳤습니다. 이제 남은 백업을 격리해 두어 복원할 수 있습니다.
접근 권한 캐시를 여러 요청이 동시에 고칠 때 거둔 권한이 캐시에 남을 수 있던 문제를 수정했습니다.
브랜치가 있는 문서를 지우면 중간에 멈춰 문서가 반쯤 지워진 채 남던 문제를 수정했습니다.
소프트웨어 업데이트 파일과 글꼴 묶음(tar)에 든 한글 파일 이름과 긴 경로가 깨지던 문제를 수정했습니다.
2025-0030 이전 버전에서 업데이트하면 관리자가 고른 24시간 날짜 형식까지 12시간 형식으로 바꾸던 문제를 수정했습니다. 이제 설정 화면에서 고를 수 있는 형식은 그대로 둡니다.
백업 서버가 업로드 파일을 받아 올 때 폴더의 수정 시각으로 첫 달을 골라, 업로드 폴더를 복사하거나 복원한 뒤에는 앞선 달을 건너뛸 수 있던 문제를 수정했습니다.
페이지로 나눈 목록에서 정렬 기준 값이 같은 항목이 Oracle, SQL Server 같은 데이터베이스에서 두 페이지에 겹치거나 빠질 수 있던 문제를 수정했습니다.
시간대 목록에 표시한 UTC 시차가 실제와 다른 시간대가 20곳 있던 문제를 수정했습니다.
쿼리 실행 화면에서 앞에 공백이 있거나 UPDATE 뒤에 줄을 바꾼 문장, TRUNCATE와 CREATE 문이 오류로 끝나던 문제를 수정했습니다.
문서 이력 통계의 방문 수가 통계를 새로 고칠 때마다 보관한 방문 수만큼 계속 늘어나던 문제와, 단어 분석에 문장 부호만 있던 빈 단어가 세어지던 문제를 수정했습니다.
설치 화면에서 라이선스 키가 올바르지 않으면 그 사실 대신 「장애가 발생했습니다.」가 나오던 문제를 수정했습니다. 디렉터리 칸을 비운 채 다음으로 넘어가면 서버 오류가 나던 문제도 함께 고쳤습니다.
API 관리의 허용 IP 입력 칸이 비어 추가 아이콘이 꺼져 있어도 아이콘이 동작해, 빈 IP가 저장되던 문제를 수정했습니다.
백업 서버의 테이블 백업에서 한 테이블이 실패하면 그 뒤의 테이블을 모두 건너뛰던 문제를 수정했습니다. 이제 실패한 테이블만 로그에 남기고 다음 테이블을 백업하며, 실패한 테이블은 다음 실행 때 같은 기간을 다시 받습니다. 업로드 파일 백업도 파일 목록을 받지 못하면 마지막 백업 시각을 옮기지 않습니다. 이전에는 그 기간의 파일을 다시 받지 않았습니다.
콘솔의
papago명령에서 clientId나 clientSecret 하나만 주면 무시되던 문제를 수정했습니다.set-drm명령은 run(File, Map) 메소드가 없는 클래스를 거절합니다. 이전에는 그런 클래스를 받아 그 뒤의 파일 만들기가 모두 실패했습니다.papago-clear,deepL-clear,google-translate-clear명령은 서버 이중화의 다른 노드에도 반영됩니다.MySQL에서 2만 자가 넘는 한글 단락, 댓글, 태스크 본문이 저장되지 않거나 잘릴 수 있던 문제를 수정했습니다. MySQL의 TEXT 칸은 글자 수가 아니라 바이트로 크기를 제한합니다. 한 번의 저장에서 같은 긴 본문을 두 번 고치면 처음 내용이 남던 문제도 함께 고쳤습니다.
동영상과 오디오를 재생할 때 일부 구간 요청(Range)에 서버 오류가 나거나 빈 내용을 보내던 문제를 수정했습니다.
SQL Server에서 아이디처럼 영문과 숫자로 된 값을 2,100개 넘게 넣은 조회가 파라미터 수 제한으로 실패하던 문제를 수정했습니다.
문서 설정 복사로 접근 권한을 적용할 때마다 같은 사용자의 권한이 겹쳐 쌓이던 문제를 수정했습니다. 대상 문서에 이미 있는 권한은 그대로 두고 없는 권한만 더합니다.
알림과 메일, 태스크
알림 설정을 불러오지 않아 사용자가 끈 알림과 메일이 계속 발송되던 문제를 수정했습니다. 그동안 알림을 받던 사용자가 받지 않게 될 수 있습니다.
내 프로파일의 알림 설정에 알림을 보내지 않는 이벤트가 다국어 키 그대로 보이고, 태스크와 답변, 공지사항, 알림 보내기, 검토 요청 알림은 목록에 없어 끌 수 없던 문제를 수정했습니다.
캠페인 오디언스에 넣은 뒤 수신 거부한 구독자와 계정, 사용자에게도 캠페인 메일이 발송되던 문제를 수정했습니다. 오디언스에 넣을 때 저장한 이메일로 보내면서 그 뒤의 수신 거부를 확인하지 않았습니다. 이제 발송 직전에 수신 여부를 확인하고, 받을 수 없는 대상은 오디언스 상태를 「건너뜀」으로 남기고 건너뜁니다. 오디언스에 넣은 뒤 지웠거나 비활성으로 바꾼 대상도 건너뛰므로 이전보다 발송 수가 줄 수 있습니다. 건너뛴 수는 캠페인 목록의 「건너뜀」 칸에서 봅니다. 발송은 오디언스에 넣은 순서대로 합니다.
관련 태스크 목록의 링크를 새 탭으로 열면 태스크가 열리지 않고 시작 페이지로 가던 문제를 수정했습니다.
답변의 정보 전달, 협업 요청, 담당 요청의 작성자 줄에 다국어 키가 그대로 보이던 문제를 수정했습니다.
태스크와 답변 본문의 링크에 javascript 같은 스킴이나 이벤트 속성을 끼워 넣을 수 있던 문제를 수정했습니다. 이제 링크 주소는 허용한 스킴만 남깁니다.
메일로 받은 태스크 본문의 스타일이 바깥 주소를 부를 수 있던 문제를 수정했습니다.
메일 채널의 보내는 서버 주소를 바꾸면 저장된 받는 계정 비밀번호가 새 서버로 갈 수 있던 문제를 수정했습니다. 메일에서 가져오지 않은 태스크의 본문에 있는 Sender 줄을 받는 사람으로 쓰던 문제도 함께 고쳤습니다. 서명 입력란의 설명도 실제 동작에 맞췄습니다.
채널 아이디로 좁힌 태스크 목록에 참여하지 않은 채널의 태스크가 보이던 문제를 수정했습니다. 소유자가 아닌 참여자가 업무·메일 채널을 공개하거나 남의 카테고리와 마일스톤을 바꿀 수 있던 문제, 알림과 타임라인에 볼 수 없는 내용이 보이던 문제도 함께 고쳤습니다.
캠페인 오디언스에 계정을 넣을 때 이름 전체가 같아야만 찾던 문제를 수정했습니다. 이제 이름이나 이메일의 일부로 찾고, 메일 수신을 끈 계정은 뺍니다.
알림 창을 닫았다가 다시 열면 새 알림을 읽어 오지 않고 처음 연 때의 목록을 보여주던 문제를 수정했습니다.
이메일 주소 검사가 .company처럼 다섯 글자 이상인 최상위 도메인과 +가 든 주소를 받아들이지 않던 문제를 수정했습니다. 문서 링크를 메일로 공유할 때 등에 적용됩니다.
뉴스레터 구독 신청 단추를 잇달아 누르면 신청이 두 번 전송되고, 신청이 실패해도 알리지 않던 문제를 수정했습니다.
메일 채널에서 알 수 없는 문자셋(unknown-8bit 등)으로 온 메일을 태스크로 가져오지 못하고 계속 실패하던 문제를 수정했습니다. 이제 UTF-8로 읽습니다.
메일 첨부 파일의 크기를 인코딩된 크기로 재어, 업로드 크기 제한 안에 드는 첨부 파일도 빠지던 문제를 수정했습니다.
예전 버전에서 단 답변 가운데 유형 값이 비어 있는 답변이 답변 목록과 MCP, 검색에서 빠지고, 그런 답변이 있는 태스크를 지울 수 있던 문제를 수정했습니다.
월요일로 한 주를 시작하는 언어 설정에서 「이번 주」 마일스톤의 기한이 일요일이 아니라 토요일로 잡히던 문제를 수정했습니다.
내보내기와 가져오기
문서 XML 내보내기 API에 없는 문서 아이디를 주면 오류가 나던 문제를 수정했습니다. 이제 문서가 없다고 응답합니다.
문서 XML 가져오기에서 장과 단락 속성 값의 특수 문자가 바뀌던 문제를 수정했습니다. 참조 그림 단락의 아이디가 바뀌지 않아 가져온 문서에서 참조가 끊기던 문제도 함께 고쳤습니다.
문서 XML 가져오기에 문서가 들어 있지 않은 압축 파일을 올리면 오류가 나던 문제를 수정했습니다. 이제 쓸 수 없는 파일이라고 알려줍니다.
내보낼 문서가 없으면 내보내기가 오류로 실패하고 임시 디렉터리가 남던 문제를 수정했습니다. 이제 내보낼 문서가 없다고 알려줍니다. 내려받기 요청이 오류를 돌려주면 화면이 오류 메시지를 보여줍니다. 전에는 오류 내용을 파일로 내려받았습니다.
문서의 태그를 라벨로 옮길 때 +로도 나뉘어 C++ 같은 태그가 쪼개지던 문제를 수정했습니다. 3.0.38 이전 버전에서 내보낸 문서를 가져올 때 이름이 빈 라벨이 생기던 문제도 함께 고쳤습니다.
엑셀 파일로 약어, 용어집, 구독자를 가져올 때 서식만 있고 값이 없는 셀이 있으면 가져오기가 실패하던 문제를 수정했습니다.
문서 내보내기에서 문서를 고르는 창이 대상 유형과 상관없이 같은 목록을 보여주던 문제를 수정했습니다.
사이트 가져오기에서 v1.2/처럼 점이 든 폴더 주소의 장 아이디가 v1로 잘려 v1.3 폴더와 겹치던 문제를 수정했습니다. 이제 점을 하이픈으로 바꿔 v1-2로 만듭니다.
CSV 파일을 가져올 때 파일 끝에 줄바꿈이 없으면 마지막 값이 빠지고, 윈도우 줄바꿈이면 값 끝에 줄바꿈 문자가 남고, 파일 앞에 UTF-8 BOM이 있으면 머리글을 알아보지 못하던 문제를 수정했습니다. 빈 따옴표 값도 빈 값으로 읽습니다.
파일 만들기와 PDF
DRM을 적용한 MS 워드 파일이 서버에
.word확장자로 저장되던 문제를 수정했습니다. 이제.docx로 저장합니다. DRM 구현에 넘기는 확장자 값(extension)은 이전처럼word이므로 연동 코드를 바꿀 필요가 없습니다.파일 일괄 만들기 화면의 내려받기 링크가 엉뚱한 주소로 가던 문제를 수정했습니다.
웹 뷰어에서 다시 만든 파일을 내려받으면 구글 애널리틱스 내려받기 이벤트를 보내지 않던 문제를 수정했습니다.
PDF 페이지 레이아웃의 Legal 용지 너비가 21cm로 잘못 되어 있던 문제를 수정했습니다. 21.59cm입니다. 이미 저장한 레이아웃은 용지를 다시 고르면 반영됩니다.
PDF 페이지 레이아웃에서 아이템을 선택한 상태로 Ctrl+S를 누르면 저장되지 않던 문제를 수정했습니다.
일부 글꼴을 PDF에 넣을 때 글자를 잘못 찾던 문제를 수정했습니다. cmap 형식 6 표를 쓰는 글꼴과 FDSelect 형식 0을 쓰는 CFF 글꼴이 해당합니다.
PDF 글꼴 zip에 맥에서 만든 숨김 파일이 들어 있으면 글꼴 디렉터리에 쓸모없는 파일이 남던 문제를 수정했습니다.
JVM 기본 문자셋이 UTF-8이 아닌 환경에서 MS 워드 파일을 만들면 글자가 깨지던 문제를 수정했습니다. 하이픈 패턴 파일도 문자셋과 상관없이 UTF-8로 읽습니다.
칸의 최소 너비를 모두 더하면 표 너비보다 큰 표가 든 문서는 PDF 만들기가 끝나지 않던 문제를 수정했습니다. 자동 너비 표에서 칸 너비가 0이나 음수가 되던 문제도 함께 고쳤습니다. 이제 칸 너비를 비율대로 줄여 표 너비에 맞춥니다.
PDF에서 콜아웃이나 단계 번호로 시작하는 줄이 오른쪽 여백을 넘던 문제와, 양쪽·오른쪽·가운데 정렬한 줄이 줄 끝 공백만큼 어긋나던 문제를 수정했습니다. 정렬한 줄의 위치가 조금 달라질 수 있습니다.
제목이나 저자에 é, ·, — 같은 문자가 있으면 EPUB 파일과 MS 워드 파일의 문서 정보가 깨져 열리지 않던 문제를 수정했습니다. EPUB 차례와 표지에 문자 참조나 태그가 글자로 보이던 문제도 함께 고쳤습니다.
캡션이 있는 그림이 든 EPUB 장이 XML 오류로 열리지 않을 수 있던 문제를 수정했습니다. 그림이나 표만 있는 장의 차례에 빈 목록이 들어가던 문제, 장 아이디가 다른 장의 파일 이름이나 nav와 같으면 파일을 덮어쓰던 문제, 숫자로 시작하는 장 아이디가 EPUB 매니페스트 규칙을 어기던 문제도 함께 고쳤습니다.
MS 워드 파일에서 /로 시작하는 사이트 링크와 tel: 같은 링크가 첫 글자가 빠진 채 들어가던 문제, 파란색처럼 빨강 값이 0인 색이 잘못 들어가던 문제, 차례 제목에 문자 참조가 그대로 보이던 문제를 수정했습니다. 테마에 red, green, blue가 아닌 색 이름이나 rgba() 값을 쓰면 PDF 만들기가 오류로 끝나던 문제도 함께 고쳤습니다.
나눔고딕처럼 맥용 문자표가 든 글꼴로 PDF를 만들면 Á, ä, ñ 같은 문자가 엉뚱한 한자로 찍히던 문제를 수정했습니다. 글꼴에 없는 글자는 대체 글꼴로 넘어가고, 대체 글꼴에도 없으면 모든 글꼴에서 빈 네모로 찍습니다. 이전에는 일부 글꼴에서 ?로 찍었습니다.
다른 글자를 겹쳐 만든 글자(Arial의 Ǻ 등)가 PDF에서 빈칸으로 나오던 문제와, 이모지 같은 보조 평면 문자가 대체 글꼴로 넘어가지 않던 문제를 수정했습니다.
PDF의 상호 참조 표(xref)가 객체 위치보다 1바이트씩 앞을 가리키던 문제를 수정했습니다. PDF 뷰어는 스스로 고쳐 열었지만 엄격한 검사기와 PDF/A 검증에서는 오류로 보였습니다.
PDF 책갈피의 제목에 문자 참조가 그대로 보이던 문제, 좁은 칸에 아주 긴 문자열이 있으면 PDF 만들기가 실패하던 문제, 사용자 CSS의 목록 들여쓰기에서 소수점과 음수가 무시되던 문제를 수정했습니다.
사용자 스타일 이름에 é 같은 문자가 있으면 MS 워드 파일이 열리지 않던 문제를 수정했습니다. MS 워드 표지의 판과 부제목, 저자에 문자 참조가 보이던 문제, 번호 목록이 장을 넘어 이어지던 문제, 차례에 HTML과 캡션 항목이 들어가던 문제, 아티클에 파트와 부록 번호가 남던 문제도 함께 고쳤습니다.
본문에 워드에서 붙여 넣은 제어 문자가 있으면 EPUB 장이 열리지 않던 문제와, EPUB 테마가 없는 문서에 파트가 있으면 EPUB 만들기가 실패하던 문제를 수정했습니다.
내용이 빈 각주가 있으면 PDF와 MS 워드 파일 만들기가 실패하던 문제를 수정했습니다. 빈 각주는 웹 뷰어처럼 번호 없이 건너뜁니다.
PDF에서 굵게 같은 서식 안에 넣은 콜아웃과 단계 번호가 빠지고, 서식 안에 넣은 할 일 메모가 찍히던 문제를 수정했습니다.
PDF 각주 안의 루비, 인라인 그림, 콜아웃, 단계 번호가 빈칸으로 나오던 문제와, 루비 주석에 & 같은 문자 참조가 그대로 보이던 문제를 수정했습니다. 루비 주석은 MS 워드 파일에서도 바로잡았습니다.
박스와 표 칸의 글에 윈도우 줄바꿈이 있으면 PDF에서 목록이 둘로 나뉘고 번호가 다시 시작하던 문제를 수정했습니다.
PDF 페이지 레이아웃의 글에 [prefix:]와 [postfix:]를 함께 쓰면 prefix가 적용되지 않던 문제를 수정했습니다.
MS 워드 파일이 왼쪽이나 오른쪽에 띄운 그림으로 끝나면 파일이 열리지 않던 문제를 수정했습니다. 띄운 그림 뒤에 오는 단락도 워드 형식에 맞게 씁니다.
콜아웃 번호가 1f, 2d처럼 숫자와 글자로 되어 있으면 MS 워드 파일 만들기가 실패하던 문제를 수정했습니다.
MS 워드 파일에서 주소에 &가 든 링크가 깨지고, 링크 안에 넣은 그림과 루비가 빠지던 문제를 수정했습니다.
MS 워드 파일에서 제목 2~5가 장 제목과 같은 개요 수준으로 잡혀, 워드의 탐색 창과 개요 기반 차례에서 모두 맨 위 단계로 보이던 문제를 수정했습니다. 빈 표, 차례가 자기 자신과 표지를 가리키던 링크, 정의되지 않은 스타일, 소수로 적힌 크기 값도 바로잡았습니다.
EPUB 차례에서 제목이 없는 장의 제목이 앞 장 파일을 가리키던 문제와, 서식만 있고 글자가 없는 제목이 빈 항목으로 들어가던 문제를 수정했습니다.
에디터와 테마
영어로 설치하면 기본 웹 테마에 다크 테마가 연결되지 않던 문제를 수정했습니다. 새로 설치할 때부터 적용됩니다. 이미 영어로 설치해 쓰고 있다면 <서식 | 테마> 메뉴에서 기본 웹 테마(Default Web Theme)를 고쳐 다크 테마로 Default Dark Web Theme을 지정합니다.
사용자 스타일 유형 키가 20자로 제한되어 기본 코드 강조 스타일 4개를 만들 수 없던 문제를 수정했습니다. 문자 사용자 스타일은 30자까지 허용합니다.
쓰고 있는 사용자 스타일 유형을 지우면 그 유형을 쓰던 단락의 이력 목록과 이력 비교가 오류로 열리지 않던 문제를 수정했습니다.
사용자 스타일 유형을 만들 때 없는 유형 값을 주면 서버 오류가 나던 문제를 수정했습니다. 이제 잘못된 파라미터라고 알려줍니다.
테마에서 배경의 세로 위치만 정하고 가로 위치를 비우면 배경 위치가 무시되던 문제를 수정했습니다.
인쇄용 그림을 쓰지 않도록 설정해도 에디터에 인쇄용 그림 메뉴가 보이고 올릴 수 있던 문제를 수정했습니다.
에디터 추천(Ctrl+.) 목록에 <del> 태그가 문자 그대로 보이고, d, e, l이 들어간 단어를 고르면 본문에 del 태그가 남던 문제를 수정했습니다. 이제 이미 입력한 부분은 취소선으로 구분해 보여주고, 고른 단어의 나머지만 본문에 넣습니다.
템플릿이나 AI 글쓰기로 끝에서 두 번째 단락 뒤에 단락을 넣으면 마지막 단락의 연결이 끊어지던 문제를 수정했습니다. 연결이 끊긴 단락은 장을 열 때 장 끝으로 옮겨져 복구되므로, 이 문제를 겪은 장이 있다면 그 단락을 제자리로 옮깁니다.
연결 정보가 없는 단락이 섞인 장을 열면 장의 단락 순서가 뒤섞인 채 저장될 수 있던 문제를 수정했습니다. 이제 온전한 단락 순서는 그대로 두고, 연결이 끊긴 단락만 만든 순서대로 장 끝에 붙입니다.
브랜치를 병합하면 브랜치를 만든 뒤 원본에서 고친 단락이 브랜치의 옛 내용으로 덮이던 문제를 수정했습니다. 원본에서만 옮긴 단락의 순서가 되돌아가고, 원본과 브랜치에 함께 단락을 추가하면 원본에 추가한 단락이 엉뚱한 자리로 가던 문제도 함께 고쳤습니다. 이제 브랜치에서 실제로 바꾼 단락과 순서만 반영하며, 양쪽에서 함께 고친 단락은 이전처럼 충돌로 알려줍니다.
단락을 선택한 상태에서 다른 단락을 끌어 옮기면 두 단락이 함께 움직이고, 저장되지 않은 채 화면의 순서만 바뀌던 문제를 수정했습니다. 이제 끈 단락만 옮기고, 여러 단락을 선택해 옮기면 원래 순서를 지킵니다. 서버가 옮기기를 받아들이지 못하면 새로 고침을 안내합니다.
에디터의 표에서 행의 마지막 칸 끝에서 오른쪽 화살표 키를 누르면 다음 행으로 넘어가지 않던 문제와, 행의 첫 칸에서 Shift+Tab 키를 누르면 윗행의 마지막 칸이 아니라 첫 칸으로 가던 문제를 수정했습니다.
표 편집기에서 도구 막대의 실행 취소나 다시 실행을 누른 뒤 행이나 열 추가 아이콘을 누르면 오류가 나던 문제를 수정했습니다. 이제 되돌리면 이전 셀을 가리키던 추가 아이콘과 셀 선택을 지웁니다.
하이픈 예외 단어가 대소문자를 구분해 문장 첫 단어에 적용되지 않던 문제를 수정했습니다. PDF의 줄 나눔이 달라질 수 있습니다.
문서 검증에서 참조 장 오류가 다국어 키 그대로 보이던 문제를 수정했습니다.
지운 장이나 라이브러리, 발행 설정의 주소로 들어오거나 다른 탭에서 지운 항목을 저장하면 서버 오류가 나던 문제를 수정했습니다. 이제 찾을 수 없다고 응답합니다. 장 포함하기, 라이브러리 항목, 약어와 테마 같은 설정 저장, 이력 보기, 그림 주소, PDF 만들기 등이 해당합니다.
에디터에서 각주나 표시 앞뒤로 커서를 옮길 때 옛 브라우저에서만 되는 기능을 불러 아무 일도 일어나지 않던 문제를 수정했습니다. 이제 각주 앞뒤에 공백을 넣어 커서를 옮길 수 있습니다.
맞춤법 검사 패널을 열었을 때 고칠 단락을 고르지 않았는데도 실행 단추를 누를 수 있던 문제를 수정했습니다.
그룹, 역할, 용어집, 약어, 키워드, 접근 권한 화면의 목록 필터에 괄호나 대괄호 같은 문자를 넣으면 필터가 동작하지 않던 문제를 수정했습니다. 이제 입력한 글자 그대로 찾습니다.
항목이 하나뿐인 메뉴에서 Esc 키로 닫거나 Enter 키로 실행할 수 없던 문제를 수정했습니다.
지운 단락을 복원하면 새 아이디가 붙어 그 단락을 가리키던 링크가 끊기고, 복원한 뒤에도 지운 단락 목록에 남아 다시 복원할 수 있던 문제를 수정했습니다.
빈 마크다운을 올린 뒤 되돌리기와 다시 하기가 오류로 멈추던 문제와, 빈 단락이 있는 장에서 찾아 바꾸기가 오류로 끝나던 문제를 수정했습니다. 이미 지워진 단락을 지우거나 고치려 하면 서버 오류 대신 지워진 단락이라고 알려줍니다.
관리 도구의 제목 바꾸기가 찾을 글자를 정규식으로 해석해 괄호나 +가 든 제목을 바꾸지 못하거나 오류가 나던 문제를 수정했습니다. 이제 입력한 글자 그대로 찾아 바꿉니다.
마크다운 단락과 마크다운 파일 올리기, MCP 단락 넣기에서 코드 블록과 인라인 코드의 꺾쇠와 별표가 사라지거나 강조로 바뀌던 문제를 수정했습니다. 들여 쓴 목록의 단계, 표에서 -만 든 행과 칸 안의 줄바꿈, 알림 상자의 문단, 코드 블록의 언어도 그대로 옮깁니다.
비주얼 페이지를 자기 자신이나 하위 폴더로 옮길 수 있어, 그 아래 페이지가 에디터 목록에서 사라지던 문제를 수정했습니다.
참조 그림의 영역이 그림 크기가 바뀌면 그림 밖으로 벗어나던 문제와, 좌표가 잘못된 참조 하나 때문에 그림 전체가 나오지 않던 문제를 수정했습니다.
번호 매기기에서 뺀 장이 포함 페이지와 조각 페이지의 제목에 번호를 받던 문제를 수정했습니다.
대문자로 적은 키워드 대체어를 바꾸거나 지워도 서버를 다시 시작할 때까지 예전 대체어로 찾던 문제와, 할 일 이력의 수정 기록이 모두 만든 사람의 것으로 보이던 문제를 수정했습니다.
장 여러 개 만들기에서 이미 쓰는 아이디나 잘못된 아이디를 받아들이던 문제를 수정했습니다.
웹 페이지 모듈 단락과 인라인 함께 보기 단락을 열어 설정을 바꾸지 않고 저장하면 고른 웹 페이지와 함께 보기 목록이 지워지던 문제를 수정했습니다.
웹 페이지 에디터에서 저장이 실패해도 탭을 저장됨으로 표시해, 저장하지 못한 내용이 있는데도 경고 없이 창을 닫을 수 있던 문제를 수정했습니다. 이제 저장이 끝난 뒤에만 저장됨으로 표시합니다.
그림 편집기에서 동영상 클립 목록을 불러오지 못하면 그 뒤로 그림 편집기가 열리지 않던 문제, 캡션 생략을 켠 채 새 그림을 넣으면 캡션 생략이 켜져 있던 문제, 올리기 탭에서 파일을 고르지 않고 저장할 수 있던 문제를 수정했습니다.
그림 편집기를 한 번 연 뒤에는 에디터에 PNG 그림을 붙여 넣으면 보이지 않는 그림 편집기로 올라가고, 인라인 그림과 그림 편집기의 붙여넣기가 서로를 덮어쓰던 문제를 수정했습니다.
에디터에 PNG가 아닌 그림 파일을 끌어 놓으면 브라우저가 그 파일을 열어 에디터를 떠나던 문제를 수정했습니다. 마우스를 가로로만 옮기면 단락 강조가 사라지던 문제도 함께 고쳤습니다.
여러 항목을 고르는 체크박스 묶음에 값을 다시 채우면 이미 켠 항목이 꺼지고 고르지 않은 항목이 남던 문제를 수정했습니다.
만다라트의 편집 링크가 문서 화면을 열지 못하던 문제를 수정했습니다.
찾아 바꾸기와 문서 검색에서 1.1.2처럼 앞 글자가 되풀이되는 검색어를 1.1.1.2 같은 글에서 찾지 못하던 문제를 수정했습니다.
원본과 브랜치에서 같은 단락을 서로 다른 곳으로 옮긴 뒤 병합하면 양쪽 어디에도 없던 순서가 되던 문제를 수정했습니다. 이제 원본과 브랜치가 함께 지키던 단락 순서는 그대로 둡니다.
테마의 번호 형식 같은 값을 불러올 때마다 URL 디코딩해 +가 공백으로 바뀌고, %가 든 값은 저장하지 못하던 문제를 수정했습니다. 예전에 저장한 테마도 그대로 읽습니다.
웹 뷰어 레이아웃과 스타일 가져오기가 2022, 2025 버전에서 내보낸 파일만 받던 문제를 수정했습니다. 이후 버전에서 내보낸 파일도 받습니다.
마크다운 표에서 백슬래시로 이스케이프한 백틱을 코드의 시작으로 읽고, 줄 끝에서 이스케이프한 세로 막대를 칸 구분으로 잘라 내던 문제를 수정했습니다.
비주얼 에디터
모자이크가 든 페이지를 저장한 뒤 다시 열거나 되돌리면 페이지가 그려지지 않던 문제를 수정했습니다.
회전한 도형이 든 그룹을 복사해 붙이면 붙인 도형의 좌표가 깨지던 문제와, 저장하거나 되돌릴 때마다 그룹이 조금씩 움직이던 문제를 수정했습니다. 이제 그룹의 위치를 함께 저장하며, 예전에 저장한 페이지도 그대로 열립니다.
페이지 탐색기의 다른 문서로 옮기기가 늘 실패하던 문제를 수정했습니다.
자르기 모드에서 Shift 키를 누른 채 그림을 끌면 오류가 나던 문제, 끝에 이어진 도형이 없어진 연결선이 남은 페이지를 저장하거나 되돌릴 수 없던 문제, 붙일 수 있는 도형이 없는 클립보드를 붙여 넣으면 오류가 나던 문제를 수정했습니다.
회전한 도형의 가장자리 핸들로 크기를 바꾸면 엉뚱한 방향으로 바뀌고, 회전한 그림의 모서리 핸들이 가로세로 비율을 지키지 않던 문제를 수정했습니다. 회전한 도형의 핸들에 올린 마우스 커서도 실제 방향에 맞게 바뀝니다.
도형과 순서도의 글자를 두 번 눌러 고친 것을 되돌릴 수 없던 문제를 수정했습니다.
콜아웃의 글꼴 크기가 늘 12로 보이고, 글꼴 크기 칸을 비우면 콜아웃의 글꼴 크기가 0이 되던 문제를 수정했습니다.
음수 좌표에 있는 도형을 가운데나 중간으로 정렬하면 일부만 옮겨지던 문제, 확대하거나 축소할 때 보던 곳이 화면 가운데에 남지 않던 문제, 그림으로 내보낼 때 가장자리의 가이드가 잘리던 문제를 수정했습니다.
자르기 모드가 아닐 때 Ctrl+화살표 키를 누르면 아무것도 옮기지 않았는데 페이지가 바뀐 것으로 표시되던 문제를 수정했습니다.
화면 공통과 관리 화면
필수로 표시한 드롭다운을 고르지 않아도 저장되던 문제를 수정했습니다. AI 어시스턴트의 모델, 결재 요청의 결재자, PDF 페이지 레이아웃 미리 보기와 에디터 내보내기의 테마 등이 해당하며, 이제 그 칸에 필수 입력 항목이라고 알려줍니다. 문서 파일 만들기는 이전처럼 고른 형식의 테마와 레이아웃만 확인합니다.
폼에 0을 넣으면 앞의 값이 그대로 남아, 방문 통계의 검색 수처럼 0인 값이 이전 숫자로 보이던 문제를 수정했습니다. 목록에서 숫자 0이 빈칸으로 보이던 문제도 함께 고쳤습니다.
목록에서 결과가 없을 때 페이지 번호가 바뀌지 않고, 새 데이터를 불러와도 전체 선택 체크 상자가 켜져 있고, 목록을 불러오지 못하면 빈 채로 남던 문제를 수정했습니다. 용어집처럼 그룹이 있는 목록을 검색하면 그룹 이름이 맞지 않을 때 그 안의 맞는 항목까지 숨기던 문제도 함께 고쳤습니다.
장 아이콘과 블로그 글 아이콘을 X로 지워도 저장되지 않아 새로 고치면 다시 나타나던 문제를 수정했습니다. 아이콘 찾기는 대소문자를 가리지 않습니다.
에디터의 찾아 바꾸기에서 단락을 고른 채 위로 찾거나 각주 안에서 위로 찾으면 오류로 멈추던 문제를 수정했습니다. 각주 안의 숨은 글자는 두 방향 모두 건너뜁니다. 표 편집기를 닫아도 단축키 처리가 남던 문제도 함께 고쳤습니다.
진척 관리의 프로젝트 보기에서 댓글 링크가 동작하지 않던 문제, 할 일을 더하면 고른 장 필터가 풀리던 문제, 변경 요청 답변을 빈 내용으로 보낼 수 있던 문제를 수정했습니다.
용어의 번역을 모두 지우면 지운 용어가 목록에 남고 창이 닫히지 않던 문제와, 용어의 「추가」 링크를 누른 뒤 선택 항목을 추가하면 같은 용어가 두 번 할당되던 문제를 수정했습니다.
PDF 페이지 레이아웃에서 양쪽 여백의 합이 같은데도 소수 계산 오차로 저장을 거절하던 문제, 왼쪽 페이지가 처음에 오른쪽 페이지의 여백으로 열리던 문제, 선을 고치면 두께 단위가 바뀌고 선 크기를 바꾸면 잘못된 값이 저장되던 문제를 수정했습니다.
테마 페이지 머리글에서 테마 이름에 넣은 HTML이 태그로 동작하던 문제를 수정했습니다.
방문 통계에서 기간 안에 방문이 없는 문서를 누르면 화면이 갱신되지 않던 문제와, 다시 조회해도 앞서 고른 문서 제목이 남던 문제를 수정했습니다.
캠페인 오디언스에서 지운 대상이 검색어를 바꾸면 다시 나타나던 문제를 수정했습니다.
reCAPTCHA 사이트 키를 설정했지만 서비스로 쓰지 않는 서버에서 가입 단추가 켜지지 않던 문제와, 사이트 키가 없는데도 reCAPTCHA 스크립트를 불러오던 문제를 수정했습니다. 2단계 인증의 확인 단추는 여섯 자리를 모두 넣어야 켜지고, 코드를 지우거나 다시 받으면 다시 꺼집니다.
태스크와 포럼 화면에서 왼쪽 패널을 열거나 창이 좁으면 오른쪽의 담당자, 마일스톤, 카테고리 패널이 몇 픽셀로 줄어 글자를 읽을 수 없던 문제를 수정했습니다. 이제 오른쪽 패널은 일정한 너비를 지키고 본문이 줄어들며, 태블릿 너비에서는 모바일처럼 본문 아래로 내려갑니다. 태블릿 너비에서 화면이 가로로 넘치던 문제도 함께 고쳤습니다.
다크 모드에서 색을 정한 라벨의 글자가 어두운 배경에 묻혀 잘 보이지 않던 문제를 수정했습니다.
이력과 통계
볼 수 있는 문서가 없으면 <통계 | 문서 이력 통계> 메뉴와 엑셀 내려받기가 실패하던 문제를 수정했습니다.
<통계 | 검색 통계> 메뉴에서 라이브러리를 선택하면 통계를 볼 수 없던 문제를 수정했습니다.
방문 통계 파일 관리에서 연도별 차트의 연도를 바꿔도 월별 차트가 갱신되지 않던 문제를 수정했습니다. 월별 차트에서 달을 바꾸면 일별 차트도 함께 갱신됩니다.
빈 단락이 있는 문서의 단어 분석이 오류로 열리지 않던 문제를 수정했습니다.
장의 수정 이력 타임라인에서 다른 단락의 복원이 추가로 세어지고, 넣었다 지워 서로 상쇄된 변경 뒤에 이어진 다른 사람의 수정이 앞사람의 것으로 보이던 문제를 수정했습니다.
만다라트 방문이 문서가 아니라 홈 방문으로 기록되어 문서의 방문 통계에 나오지 않던 문제를 수정했습니다.
표 단락의 변경을 비교할 때 머리글 행을 지운 변경이 있으면 오류가 나던 문제를 수정했습니다.
단락 이력 보기와 이력 비교에서 순서 목록의 번호가 원문과 다르게 보이던 문제를 수정했습니다.
장을 복원한 뒤 장 이력 보기와 이력 비교에서 복원 이후 시점을 보면, 복원으로 사라진 단락이 다시 나타나던 문제를 수정했습니다. 복원에 들지 않은 단락을 이력에 삭제로 남기지 않았습니다. 이 버전부터 하는 복원에 적용되며, 이미 복원한 장의 이력은 그대로입니다.
한 번의 편집에서 같은 단락을 여러 번 고치거나 옮기면 장 이력 보기와 이력 복원에서 앞선 상태가 보일 수 있던 문제를 수정했습니다. 한 번의 편집에서 생긴 이력은 모두 같은 시각으로 남는데, 그 가운데 무엇이 최신인지 정하지 않았습니다. 이제 단락은 버전으로, 단락의 앞뒤 연결은 새로 남기는 순번으로 마지막 상태를 고르며, 고친 뒤 지운 단락은 지운 것으로 봅니다. 순번을 남기기 위해 서버를 시작할 때 장 이력 테이블(
R_CHAPTER_ELEMENT_L_R과 분할 테이블)에 칸(R_SEQUENCE)이 자동으로 더해집니다. 앞뒤 연결의 순번은 이 버전부터 남기는 이력에 적용됩니다.모바일에서 장 이력 비교의 내용이 칸 밖으로 넘치던 문제를 수정했습니다.
웹 뷰어와 공개
첫 번째 페이지를 언어별로 나눌 때 외부 주소 앞에 /가 붙어 링크가 깨지던 문제를 수정했습니다. 맞는 언어가 없으면 첫 번째 값을 씁니다.
언어를 켜거나 끄면 그 서버에서 메시지 덮어쓰기가 사라지던 문제를 수정했습니다. 기본 언어로 지원하지 않는 값을 넣지 못하게 했습니다.
공개 포럼을 보던 로그인하지 않은 방문자가 글쓰기를 누르면 로그인 화면 대신 오류가 나던 문제를 수정했습니다. 도움말 링크도 로그인 없이 열립니다.
웹 뷰어 첫 페이지를 그리드로 보여줄 때 파트 아래의 장이 나오지 않던 문제를 수정했습니다.
웹에서 숨긴 파트 다음의 장이 웹 뷰어 차례에서 앞 파트 아래로 들어가던 문제를 수정했습니다.
태그로 공개한 문서에서 태그 이후에 만든 단락으로 가는 링크를 열면 태그 이후에 만든 내용이라고 알리지 않던 문제를 수정했습니다.
검색어에 마침표나 쉼표, 따옴표 하나가 섞이면 검색 결과가 사라지던 문제를 수정했습니다. 따옴표로 감싼 한 단어가 닫히지 않던 문제와, 검색어가
&같은 문자 참조 안에서 강조되던 문제도 함께 고쳤습니다.「데이터베이스」로 검색하면 「데이터베이스를」처럼 조사가 붙은 다섯 글자 이상의 낱말을 찾지 못하던 문제를 수정했습니다. 색인을 다시 만들지 않아도 됩니다.
정적 사이트에서 도메인 주소를 설정하지 않으면 파일 목록과 이름 바꾸기, 올리기가 오류로 끝나던 문제를 수정했습니다. 없는 파일을 열면 서버 오류 대신 찾을 수 없다고 응답합니다.
비공개로 발행한 라이브러리의 파일을 발행 주소로 내려받으면 서버 오류가 나던 문제를 수정했습니다. 이제 로그인한 사용자는 내려받고, 로그인하지 않았으면 로그인 화면으로 갑니다.
블로그 문서를 만들거나 고칠 때 필수 항목이 비어 있으면 저장이 조용히 실패하던 문제를 수정했습니다.
블로그 주소를 문서 아이디 없이 열면 서버 오류가 나던 문제를 수정했습니다. 이제 찾을 수 없다고 응답합니다.
발행 설정에서 태그 배포를 쓰는 서버의 유형 칸에 안내 문구 대신 코드 값이 보이던 문제를 수정했습니다.
아마존 Silk 브라우저와 CUBOT 휴대폰으로 들어온 독자를 검색 로봇으로 보고 로봇용 페이지를 보여주던 문제를 수정했습니다. 네이버 검색 로봇(Yeti)은 검색 로봇으로 봅니다.
웹 뷰어에서 단락의 댓글 창을 열고 닫으면 댓글 수 줄에 0이나 undefined가 보이거나 같은 줄이 겹쳐 생기던 문제를 수정했습니다.
웹 뷰어의 브라우저 탭 제목에 장 제목의 HTML과 & 같은 문자 참조가 그대로 보이던 문제, 저자 이름의 &가 &로 보이던 문제, 코드를 크게 볼 때 캡션의 태그가 글자로 보이던 문제를 수정했습니다.
웹 뷰어 검색으로 용어집을 열면 검색어 강조가 사라지지 않던 문제, href가 없는 링크를 누르면 빈 창이 열리던 문제, 관련 문서 수에 빈 그룹이 한 개로 세어지던 문제를 수정했습니다.
웹 뷰어의 변경 요청과 포럼 답변을 빈 내용으로 보낼 수 있고, 변경 요청 단추를 두 번 누르면 두 번 보내지던 문제를 수정했습니다.
설명에 주소가 없는 그림이 든 태스크와 답변을 편집할 수 있는 사용자가 열면 페이지가 나오지 않던 문제를 수정했습니다. 태스크 이력의 그룹 제목이 TASK_CREATE 같은 코드 값으로 보이던 문제도 함께 고쳤습니다.
API와 챗봇
사용자 API의 로캘 검사에서 중국어를 켜 두면 아무 값이나 통과하던 문제를 수정했습니다.
사용자 API의 마지막 로그인 사용자 조회에서 역할로 거르면 붙어 있는 사용자를 건너뛰어 다른 역할의 사용자가 섞여 나오던 문제를 수정했습니다. 목록보다 큰 개수를 주면 오류가 나던 문제도 함께 고쳤습니다.
공개 챗봇의 답변 API가 클라이언트가 보낸 문서와 대화 이력을 그대로 모델에 넘기던 문제를 수정했습니다. 누구나 임의의 문서를 넣어 원하는 답을 끌어내거나 챗봇을 범용 AI처럼 쓸 수 있었습니다. 공개 챗봇의 답변 API는 서버가 검색해 서명한 문서 조각만 받고, 대화 이력의 건수와 길이를 서버에서 줄입니다. 매뉴얼웍스의 챗봇 화면은 그대로 동작합니다.
공개 챗봇의 방문자가 대화 이력에 이전 답변을 지어내 넣을 수 있던 문제를 수정했습니다. 서버가 답변마다 서명을 붙이고, 서명이 맞는 답변만 대화 이력으로 씁니다. 업데이트할 때 열려 있던 대화는 그 전의 답변이 한 번 이력에서 빠집니다. 질문과 대화 이력, 문서는 구역을 나눠 모델에 넘겨, 질문에 문서나 이전 답변을 흉내 낸 글을 넣어도 지시로 읽히지 않습니다.
Gemini 제공자를 쓰는 챗봇과 AI 기능에 시스템 지시문이 전달되지 않던 문제를 수정했습니다. 「제공한 문서로만 답한다」 같은 규칙이 빠진 채 답했습니다.
「Italy」나 「items」처럼 「it」으로 시작하는 낱말로 영어 질문을 시작하면 앞 질문에 이어진 질문으로 보던 문제를 수정했습니다. 「it」, 「that」 같은 낱말이 온전히 쓰였을 때만 이어진 질문으로 봅니다.
챗봇 답변의 마크다운에 >[!TIP]처럼 표시 뒤에 공백이 없으면 답변이 끝나지 않고, #만 있는 줄이나 백틱 하나가 든 표 칸이 있으면 오류가 나던 문제를 수정했습니다. 첫 항목을 더 들여 쓴 목록이 깨지고 코드 블록 첫 줄의 들여쓰기가 사라지던 문제도 함께 고쳤습니다.
챗봇 답변의 피드백을 아무나 바꿀 수 있던 문제를 수정했습니다. 이제 답을 받은 사람만 피드백을 남깁니다. 비활성으로 바꾼 AI 어시스턴트가 계속 답하던 문제도 함께 고쳤습니다.
공개 문서를 대상으로 하는 API가 공개하지 않은 문서도 통과시키던 문제를 수정했습니다. 실시간 열람 목록과 태그 공개에도 문서 범위를 적용합니다.
API의 hasLink 조건과 태그 테마의 오류 코드가 잘못되어 있던 문제를 수정했습니다. 그룹 설명, 라벨 공개 여부, 숫자로 보낸 문서 파라미터가 빠지거나 지워지던 문제도 함께 고쳤습니다.
진척 관리 항목 목록 API(DOC_TASK_LIST)가 교정과 수정 요청 항목을 설명순으로 정렬하지 않던 문제를 수정했습니다.
홈 에디션이 아닌 서버에서 화면을 거치지 않고 API 관리의 저장 주소를 직접 부르면 TRANSLATE 유형 API를 만들 수 있던 문제를 수정했습니다. 이제 만들기 화면과 같이 이 에디션이 지원하는 유형만 받습니다.
API 가이드에 있는 장 변경, 장 복사, 장 이동 API(CHAPTER_UPDATE, CHAPTER_COPY, CHAPTER_MOVE)를 부르면 지원하지 않는 작업(UNSUPPORTED_ACTION)으로 거절하던 문제를 수정했습니다. 이제 가이드대로 장의 제목과 사용자 정의 아이디를 바꾸고, 장을 복사하거나 다른 문서로 옮깁니다.
문서 빌드 API(BUILD_DOC)의 대상으로 「공개한 문서」를 고르면 문서를 찾지 못하던 문제를 수정했습니다. 이제 공개한 책과 아티클을 만듭니다. 빌드가 실패하면 응답에 서버의 스택 트레이스가 실리던 문제도 함께 고쳤습니다.
장 차례 API(DOC_CHAPTER_HEADING)가 제목 2로 시작하는 장에서 오류를 돌려주던 문제와, 테이블 백업 API(BACKUP_TABLE)에 없는 테이블 이름을 주면 서버 오류가 나던 문제를 수정했습니다. 없는 테이블은 이제 ERROR_404로 알립니다.
MCP로 태스크를 만들 때(create_task) 접근할 수 없는 마일스톤을 주면 오류를 돌려주면서도 태스크는 만들어 두던 문제를 수정했습니다. 다시 시도하면 태스크가 겹쳐 생겼습니다.
MCP로 단락을 지금 자리로 옮기면(move_element) 오류가 나던 문제를 수정했습니다. 이제 아무것도 바꾸지 않고 성공으로 답합니다. MCP와 MCP 그림 올리기가 예상하지 못한 오류에서 내부 예외 메시지를 돌려주던 문제와, 권한이 없는 사용자에게 get_section이 단락이 제목인지 알려주던 문제도 함께 고쳤습니다.
MCP 응답의 JSON-RPC 아이디를 요청에 온 그대로(문자열은 문자열로, 큰 숫자도 그대로) 돌려줍니다. 인증 오류 응답에도 요청 아이디를 싣고, 알 수 없으면 null로 보냅니다.
API 작업 목록이 장 단락을 나눠 저장한 문서의 편집을 빠뜨리던 문제를 수정했습니다.
테이블 복원 API와 업로드 파일 목록 API에 필수 파라미터가 없으면 internal_error 대신 REQUIRED_PARAMETER_MISSING으로 알립니다. 업로드 파일 목록 API는 연도와 월을 숫자 문자열로도 받습니다.
업로드 파일 목록 API(BACKUP_GET_UPLOAD_FILES)와 테이블 백업 API(BACKUP_TABLE)가 from, to를 문자열로 받거나 to가 없으면 0으로 보고, 빈 결과를 성공으로 돌려주던 문제를 수정했습니다. 이제 숫자 문자열도 받고, to가 없으면 REQUIRED_PARAMETER_MISSING, 숫자가 아닌 값과 1~12가 아닌 월은 INVALID_PARAMETER로 알립니다. from을 빼면 이전처럼 처음부터 보냅니다.
MCP의 update_elements, remove_elements, update_element_type 도구에 올바르지 않은 JSON을 주면 내부 오류가 나던 문제를 수정했습니다. 이제 INVALID_PARAMETER와 올바른 형식의 예를 알려주고, 문자열 대신 JSON 배열로 보내도 받습니다. 챗봇 이력 도구의 page, days 같은 숫자 인자에 숫자가 아닌 값을 주어도 INVALID_PARAMETER로 알립니다.
MCP의 update_elements, remove_elements에 여러 장의 단락을 함께 넘기면 권한 오류(ILLEGAL_ACCESS)로 거절해 원인을 알 수 없던 문제를 수정했습니다. 두 도구는 한 번에 한 장의 단락만 다룹니다. 이제 편집할 수 있는 문서 안에서 장이 다르면 INVALID_PARAMETER로 어느 단락이 어느 장에 있는지 알려 줍니다. 편집할 수 없는 문서의 단락이 섞이면 이전처럼 ILLEGAL_ACCESS로 거절합니다.
챗봇이 질문을 검색어로 바꿀 때 모델 응답의 JSON 앞뒤에 다른 글이 붙으면 그 글과 JSON 줄까지 검색어로 쓰던 문제를 수정했습니다. 검색 결과가 빗나가고 임베딩 호출이 늘었습니다.