02LANGUAGE DESIGN

무엇을 가리고 무엇을 남길까

한국어 문장을 전부 네모로 바꾸면 추리할 근거가 사라지고, 너무 많이 보여 주면 제목이 바로 드러납니다. 빈칸위키의 가림은 이 두 극단 사이에서 문장 구조와 의미 단서를 분리하는 작업이에요.

01

문장을 읽을 수 있을 만큼만 남겨요

빈칸위키는 명사·고유명사·동사·형용사처럼 문서의 내용을 직접 알려 주는 단어를 중심으로 가립니다. 반대로 쉼표와 괄호 같은 문장부호, 실제 조사와 확정된 일부 기능어는 처음부터 보여 줍니다. 이용자는 남은 구조를 따라 빈칸 사이의 관계를 추리할 수 있습니다.

핵심은 단어 목록을 단순히 ‘공개 단어’와 ‘숨김 단어’로 나누지 않는다는 점이에요. 한국어에서는 같은 글자도 문장 안에서 맡은 역할이 달라질 수 있습니다. 그래서 표면 글자가 같더라도 명사로 쓰였는지 조사로 쓰였는지를 분석한 뒤 서로 다르게 처리합니다.

02

같은 글자라도 역할이 다르면 다르게 보여요

예를 들어 어떤 글자가 조사로 분석되면 문장 구조를 위해 남길 수 있지만, 같은 글자가 명사나 수 표현의 일부로 쓰이면 내용 단서이므로 가립니다. ‘글자만 같으면 모두 공개’하는 방식은 뜻밖의 정답 단서를 흘릴 수 있기 때문에 사용하지 않습니다.

‘있다’와 ‘없다’, 서술격 표현처럼 문장 뼈대를 이루는 일부 형태도 정해진 규칙에 따라 처리합니다. 이때 앞에 붙은 내용어까지 함께 공개하지 않도록 형태소 경계를 따로 확인해요. 작은 경계 하나가 문장 전체의 난이도를 바꿀 수 있기 때문입니다.

03

한 번의 추측은 확인된 어휘 가족을 열어요

플레이에서 ‘같은 단어’는 글자열이 완전히 같은 경우보다 조금 넓습니다. 동사와 형용사의 활용형은 사전형을 중심으로 묶고, 확인된 명사 파생형이나 복수 표현도 같은 가족으로 연결할 수 있습니다. 이용자가 자연스러운 기본형을 떠올렸는데 본문에 활용형만 있다는 이유로 빗나가지 않게 하기 위해서예요.

그렇다고 글자 일부가 겹친 모든 단어를 열지는 않습니다. 짧은 단어가 긴 합성어 안에 들어 있다는 이유만으로 함께 공개하면 무관한 위치까지 열리고 난이도가 무너집니다. 빈칸위키는 분석 결과로 확인된 가족만 연결하고 단순 부분 문자열 일치는 추측 성공으로 보지 않습니다.

04

제목과 본문은 같은 판정 규칙을 써요

제목도 별도의 쉬운 규칙을 쓰지 않습니다. 문장부호는 보이지만 의미 있는 제목 단어는 본문과 같은 키로 가려지고, 본문에서 그 단어를 맞히면 제목의 같은 가족도 함께 열립니다. 제목을 억지로 감춘 채 본문과 따로 계산하지 않아 플레이 흐름이 자연스럽습니다.

해결은 정확한 제목을 입력하거나 제목의 숨은 단어를 모두 찾아낸 경우에만 일어납니다. 비슷한 제목이나 제목 일부를 입력했다고 자동 정답 처리하지 않아요. 한편 이미 맞힌 단어의 다른 위치를 찾는 동작은 새 추측으로 세지 않고 탐색으로 처리합니다.

05

분석은 플레이 전에 고정해요

형태소 분석을 이용자의 브라우저에서 매번 실행하면 기기마다 속도가 달라지고, 분석기 버전이 바뀔 때 같은 문제가 다르게 보일 수 있습니다. 빈칸위키는 문제를 가져오고 검수하는 단계에서 분석 결과를 미리 만들고, 내용과 규칙 버전에 묶어 저장합니다.

플레이 중에는 저장된 작은 분석 결과를 읽어 같은 판정을 재현합니다. 이미 공개된 문제는 위키백과 문서가 나중에 바뀌어도 자동으로 새 판으로 바꾸지 않습니다. 같은 문제를 다시 열었을 때 예전의 추측·완료·방 기록이 계속 같은 단어를 가리키게 하기 위한 선택입니다.

06

자동 분석 뒤에는 사람이 실제로 풀어 봐요

형태소 분석기는 일관된 출발점이지만 문맥의 모든 애매함을 없애 주지는 못합니다. 제목을 지나치게 암시하는 표현, 붙어야 할 단어가 갈라진 경우, 조사와 명사의 경계가 어색한 경우는 실제 플레이에서 더 잘 보입니다.

그래서 공개 전 검수자는 제목을 모른 채 게임을 끝까지 풉니다. 가림 오류가 있거나 너무 쉽고 어려운 지점을 기록하고, 필요한 경우 분석 예외를 문제 데이터에 남깁니다. 자동화의 재현성과 사람의 문맥 판단을 함께 쓰는 것이 빈칸위키 가림 설계의 중심입니다.