무중단 즉시 반영 확인
사용자 사전 변경 후 무중단 즉시 반영 확인
사용자 사전을 고칠 때마다 서버를 재시작해야 한다면 운영이 번거롭습니다. 바른은 사전 파일이
바뀌면 서버를 멈추지 않고 즉시 반영합니다. 파일 시스템 이벤트를 실시간으로 감시하고,
혹시 놓친 변경이 있어도 주기적으로 한 번 더 점검하기 때문입니다.
이 문서는 무중단 반영이 어떻게 동작하는지와, 변경이 제대로 반영됐는지 확인하는 방법을 설명합니다.
어떻게 무중단으로 반영되나요?
바른은 사전 변경을 세 단계로 겹겹이 반영합니다. 아래에서 위 단계가 먼저 잡아내고,
놓치더라도 다음 단계가 받쳐 주므로 운영 중에도 빠뜨림 없이 적용됩니다.
1. API 호출 즉시 적용 (기본)
UpdateCustomDictionary 같은 사용자 사전 API로 사전을 바꾸면, 그 즉시 메모리의 사전이
교체됩니다. 사전을 갱신한 바로 그 서버 프로세스에서는 다음 요청부터 새 사전이 적용됩니다.
별도의 대기나 재시작이 필요 없습니다.
2. 다중 프로세스 — 외부 파일 변경 시 즉시 반영
여러 프로세스(인스턴스)가 같은 사용자 사전 디렉토리를 공유하는 구성에서는, 한 쪽에서 사전이 바뀌면 다른 프로세스가 파일 변경을 감지해 즉시 반영합니다. 아래 파일 시스템 이벤트가 감지 대상입니다.
| 이벤트 | 발생 상황 |
|---|---|
Write |
사전 파일 내용 수정 |
Create |
새 사전 파일 생성 |
Remove |
사전 파일 삭제 |
3. 60초 안전망 — 무조건 반영 보장
혹시 파일 시스템 이벤트를 놓쳤거나, 외부 마운트처럼 알림이 약한 환경이라도 60초 주기 점검이 변경을 따라잡습니다. 즉, 어떤 경우에도 최대 60초 안에는 반영이 보장됩니다.
재시작이 필요 없는 이유
UpdateCustomDictionary로 사전을 갱신하면 호출 즉시 메모리의 사전이 교체됩니다. 여러 프로세스가
같은 디렉토리를 공유하면 다른 프로세스도 파일 변경을 감지해 따라오고, 이벤트를 놓쳐도
60초 점검이 보장합니다. 진행 중인 요청을 끊지 않고 새 사전이 적용되므로 운영 중에도 안전합니다.
graph TD
A["① API 호출(UpdateCustomDictionary)"] -->|즉시| M["메모리 사전 교체<br>무중단"];
B["② 외부 파일 변경(다중 프로세스)"] -->|파일 변경 즉시 감지| M;
C["③ 60초 주기 점검(안전망)"] -->|놓친 변경도 최대 60초 내| M;
변경이 반영됐는지 확인하기
가장 확실한 확인 방법은 변경한 단어를 실제로 분석해 보는 것입니다.
from bareunpy import Tagger
my_tagger = Tagger('YOUR-API-KEY', 'localhost', port=5656)
# 1) 사전에 새 단어 추가
cust_dic = my_tagger.custom_dict("trend")
cust_dic.copy_np_set({'신상밈'})
cust_dic.update()
# 2) 곧바로 분석해 반영 확인
my_tagger.set_domain('trend')
res = my_tagger.tags(['신상밈이 유행한다.'])
for tok in res.msg().sentences[0].tokens:
for m in tok.morphemes:
if m.out_of_vocab == 2: # IN_CUSTOM_DICT
print(m.text.content, m.tag, m.custom_dict_name)
out_of_vocab이 IN_CUSTOM_DICT(값 2)이고 custom_dict_name이 의도한 도메인이면 반영된
것입니다.
바로 안 보이면 잠깐 기다려 보세요
파일 시스템 알림이 약한 환경(네트워크 마운트 등)에서는 변경이 즉시 보이지 않을 수 있어요. 이럴 때는 최대 60초 주기 점검이 반영해 주니, 잠깐 기다렸다가 다시 분석해 보면 돼요. 그래도 안 바뀌면 사전 파일이 감시 디렉토리에 정확히 저장됐는지 확인하세요.
자주 묻는 질문
Q. 사전을 바꾸면 서버를 재시작해야 하나요?
아닙니다. 바른은 사전 디렉토리의 파일 변경을 감지해, 파일이 바뀌면 무중단으로 다시
읽어 들입니다. 진행 중인 요청을 끊지 않고 새 사전이 적용됩니다.
Q. 변경은 얼마나 빨리 반영되나요?
API로 사전을 바꾸면 그 프로세스에서는 호출 즉시 반영됩니다. 여러 프로세스가 같은 디렉토리를 공유하는 구성이라면 외부 파일 변경도 실시간으로 감지해 반영합니다. 혹시 이벤트를 놓치거나 알림이 약한 환경이라도 60초 주기 점검이 따라잡으므로, 어떤 경우에도 최대 1분 안에는 반영됩니다.
Q. 반영됐는지 어떻게 확인하나요?
바꾼 단어가 들어간 문장을 분석해 out_of_vocab이 IN_CUSTOM_DICT인지, custom_dict_name이
의도한 도메인인지 확인하세요. 가장 확실한 검증 방법입니다.
도움이 되었나요?