숫자 조사처리 사례와 요구사항 정의의 업무범위
적어도 제 기준에서 한국어로 서비스하는 제품을 만들려면 반드시 조사처리가 필요합니다. 만약 우리가 한국어가 모국어가 아니고 한국에 살고 있지 않다면 한국에서 한국어를 사용하는 사람들에게 서비스하기 위해 굳이 조사처리가 필요한지 의심해보는 것에 무리가 없을 수도 있습니다. 하지만 우리는 한국에 살고 있고 한국어를 사용해 왔으며 한국에 살고 있는 사람들에게 서비스를 해야 합니다. 조사처리는 한국어 사용자들에 대한 작고 기본적인 배려입니다. 하지만 개발을 진행하다 보면 제 기준이 흔들릴 때가 자주 있습니다. 어느 순간 굳이 조사처리를 해야 하는지 묻는 사람들에게 조사처리가 필요한 이유를 설명하고 있자면 현타가 세게 옵니다. 아 그냥 나도 귀찮고 조사처리방식에 맞춰 텍스트를 입력할 사람들도 귀찮은데 그냥 ‘그러시죠’ 하고 넘어가도 되지 않을까 하는 욕구가 기어올라옵니다. 하지만 이런 상황에도 불구하고 꾸역꾸역 사람들을 설득해 조사처리를 집어넣었습니다. 그리고 시간이 흘렀습니다.
QA에서 특정 상황에서 조사처리가 동작하지 않는 사례를 보고했습니다. 스크린샷을 보니 어느 팝업인지 바로 알겠길래 재현해보는 대신 언리얼에디터에서 위젯 블루프린트를 바로 열어 팝업에서 사용하는 텍스트 아이디를 확인한 다음 이 텍스트를 열었습니다. 텍스트에 아이템 이름으로 변경될 치환자 뒤에 조사처리 예약어를 정확히 쓰지 않은 단순한 문제일 거라고 예상했고 이걸 입력한 사람을 찾아 이슈를 보낼 필요도 없이 그냥 제가 고치면 테스트까지 5분이면 끝날 거라고 생각했습니다. 조사처리 예약어 입력 공지와 교육은 마감 지나고 하면 됩니다. 예상과 달리 팝업에서 사용할 텍스트에는 조사처리 예약어가 정확히 입력되어 있었고 이제 귀찮지만 클라이언트를 실행해 상황을 재현해보는 수밖에 없었습니다.
클라이언트가 켜지는 동안 기다리다가 생각해보니 지라에 첨부된 스크린샷에는 아이템 이름 뒤에 숫자가 붙어 있었습니다. 아이템 이름을 ‘케인의 편지2’라고 해보죠. 우리 문제라고 보기 어려웠습니다. 클라이언트가 실행되어 로그인 화면을 보여주고 있었지만 그냥 닫고 포스트잇에 지라 이슈키를 적어 들고 담당자를 찾아갔습니다. 아직 업무에 집중하지 않을 시간대입니다. 게다가 이번주가 마감이라 서둘러 처리하는 것이 좋을 것 같았고 예상대로였습니다. 상황을 설명했습니다. 조사처리는 조사 앞에 오는 글자의 받침 유무에 따라 결정됩니다. 조사처리 예약어를 받침이 있을 때 사용할 조사와 받침이 없을 때 사용할 조사 각각을 입력해 놓고 런타임에 치환자가 실제 텍스트로 바뀌면 이 텍스트의 마지막 글자를 보고 알맞은 조사를 선택합니다. 그런데 이 조사처리가 치환자에 들어올 아이템 이름이 항상 한글로 끝날 거라고 가정하고 있었습니다. 아이템 이름은 숫자로 끝났고 조사처리가 오동작했습니다. 어차피 아이템 이름은 한글 아니면 숫자로 끝날 테니 숫자로 끝나면 숫자를 한국어로 발음한 글자로 끝난다고 보고 처리하면 될 단순한 문제였습니다. 하지만 이야기는 간단하지 않았습니다.
상황을 설명하자 담당자는 아이템 이름이 숫자로 끝나면 안된다고 이야기했습니다. 아니다. 아이템 이름은 한글 또는 숫자로 끝날 수 있으니 숫자로 끝날 때 처리가 필요하고 마침 아라비아 숫자는 열 개 밖에 안되고 아이템 이름 뒤에 붙는 숫자가 두 자리 이상이 될 가능성은 아주 낮다고 설명했습니다. 그러자 처음 조사처리를 구현할 때 이 요구사항이 왜 포함되지 않았는지를 질문 받았고 예상보다 훨씬 긴 대화가 이어졌습니다. 결국 다른 더 중요한 이슈를 처리하느라 이 이슈는 마감 전에 처리되지 않았습니다. 지금의 저는 더 이상 그 팀에 속해 있지 않고 숫자에 대응하지 못하는 조사처리 문제가 해결되었는지는 이제 알 길이 없습니다. 오늘 아침에 출근하다가 문득 게임디자이너의 게임 구성요소에 대한 요구사항 정의는 어디까지 이루어져야 하는가, 어디까지가 게임디자이너의 업무범위인지를 생각해보게 됩니다. 사실 저는 이 상황에 대한 제 의견을 가지고 있습니다. 하지만 이 글에는 의견을 정확히 밝히지 않고 여기서 글을 끊을 작정입니다.