[뒤끝팁] 닉네임부터 길드 이름까지! 비속어 필터링 SDK

안녕하세요 개발자님!
개발이 필요 없는 게임 서버, 뒤끝입니다🙋‍♀️

오늘은 새롭게 추가된 뒤끝 비속어 필터링 SDK를 소개해 드리려고 해요.
비속어 필터링 SDK는 유저가 입력하는 모든 콘텐츠를 필터링할 수 있는 기능인데요😉

지금부터 활용처부터 간단 사용 방법까지 함께 알아보겠습니다.

목차 한눈에 보기👀

1. 비속어 필터링 SDK 특징

비속어 필터링 SDK는 사용하시기에 부담스럽지 않게, 가볍게 만들어졌습니다.

필터링 방식이 서버에서 필터링 리스트를 불러오는 것이 아니라, 로컬에 json 파일로 필터링 리스트를 저장하고 Resources.Load를 통해 불러오는 방식으로 구현되었기 때문이에요.

이 기능을 활용하면 게임 콘텐츠 곳곳에서 사용될 수 있는 비속어들을 모두 필터링할 수 있기 때문에, 유저 닉네임부터 길드 이름까지 폭넓은 활용도를 자랑합니다😎

어디에 활용할 수 있나요?
'유저가 직접 입력하는 모든 콘텐츠'에 활용할 수 있어요!

💡 유저 아이디 필터링
💡 유저 닉네임 필터링
💡 유저 자기소개 필터링
💡 길드 이름 필터링... 등

2. 간단 사용 방법🙌

사용법 또한 간단합니다.

1️⃣ 뒤끝 비속어 필터링 SDK 임포트

[뒤끝 SDK 문서] – [Toolkit] – [비속어 필터링 SDK] 문서로 들어가, SDK를 다운로드합니다.
그리고 다운로드한 SDK를 유니티에 임포트합니다.

SDK를 유니티에 임포트하는 모스
2️⃣ 코드 작성(예제 코드 있음💌)

임포트가 완료되었다면, 이제 코드를 작성해 줍니다.
아래 예제 코드를 뜯어보시면, 기본적인 사용 방법을 확인하실 수 있을 거예요😊

동작 방식은 아래와 같습니다.

(1) 네임 스페이스 TheBackend.ToolKit.InvalidFilter에 위치한 FilterManager를 생성합니다.

(2) LoadInvalidString를 통해 TheBackend > Toolkit > InvalidFilter > Resources에 있는 InvalidString.json에 존재하는 필터링 리스트를 FilterManager에 추가합니다.

(3) IsFilteredString(”필터링 하고 싶은 말”)을 통해 해당 문자열이 필터링될 만한 문자열인지 판별합니다. 만약 필터링되는 문자열이면 true를 리턴합니다.

				
					public class NewBehaviourScript : MonoBehaviour
{
    private TheBackend.ToolKit.InvalidFilter.FilterManager _filterManager = new FilterManager();

    void Start()
    {
        if(_filterManager.LoadInvalidString() == false) {
            Debug.LogError("필터링 초기화에 실패했습니다");
        }

        if (_filterManager.IsFilteredString("너는 ㅂㅅ이야"))
        {
            Debug.Log("욕했어요!");
        }
        else
        {
            Debug.Log("욕하지 않았어요");
        }
    }
}

				
			

3. FAQ - 비속어 필터링을 더 잘 활용하고 싶다면?

비속어 필터링 SDK에 관하여 궁금한 부분이 많으실 것 같아, 간단 FAQ를 준비했습니다.
아래 내용을 참고하시어, 원하는 대로 기능을 활용해 보시길 바랍니다.

질문1. 다른 필터링 문자열도 추가하고 싶어요

필터링 리스트는 유니티 Assets > TheBackend > ToolKit > InvalidFilter > Resources의 InvalidString.json에 존재합니다.

따라서 새로운 비속어를 추가하고 싶을 경우에는 해당 json을 수정해 보세요!

필터링 문자열을 직접 추가할 수 있어요!

질문2. InvalidString.json 파일 위치를 변경하고 싶어요

인자값이 없는 LoadInvalidString()에서는 기본 경로에 있는 InvalidString.json을 불러옵니다.

만약 InvalidString.json을 다른 위치로 옮기고자 할 경우에는 직접 Resources.Load를 통해 TextAsset으로 된 json 파일을 불러와야합니다.

				
					    var textAsset = Resources.Load<TextAsset>("OtherFolder/InvalidString");
    if (textAsset == null)
    {
        Debug.LogError("해당파일이 존재하지 않습니다");
        return;
    }

    
    if(filterManager.LoadInvalidString(textAsset.text))
    {
        Debug.Log("성공했습니다.");
    }
    else
    {
        Debug.LogError("실패했습니다.");
    }
}
				
			

이 외에도 Resources.Load를 하는 동안 게임이 멈춘다던가, 너무 오래 걸릴 때는 직접 json 파일을 불러와서 string 값만 넘겨주면 됩니다.

질문2. 비속어 문자열을 json 말고 다른 파일로 추가하고 싶어요

json 파일을 불러오는 LoadInvalidString 말고도 필터링 리스트를 추가하는 방법이 있습니다. 바로 AddFilterString을 활용해, 직접 비속어 문자열을 추가하는 방법입니다.

				
					public void Initialize4()
{
    filterManager.AddFilterString("개새");
    filterManager.AddFilterString("ㅅㅂ");
    filterManager.AddFilterString("뒤끝");
}
				
			

아래는 뒤끝에서 주로 사용되는 LitJson을 이용하여 비속어를 수동으로 추가하는 코드입니다.

				
					public void Initialize3()
{
    var textAsset = Resources.Load<TextAsset>("InvalidString");

    LitJson.JsonData jsonData = JsonMapper.ToObject(textAsset.text);
    
    foreach (LitJson.JsonData word in jsonData["invalidString"])
    {rka
        filterManager.AddChatFilter(word.ToString());
    }
}
				
			

여기까지, 비속어 필터링 SDK를 소개해 드렸습니다!😁

간단한 기능이지만 활용도는 무궁무진한 ‘비속어 필터링 SDK’, 어떠셨나요?  아이디 생성부터 닉네임까지, 욕설이 첨가된 아이디와 닉네임을 모두 제한할 수 있습니다. 필요하시다면 가볍게 이용해 보시는 것을 추천해 드립니다⭐

오늘의 기능이 개발자님의 게임에 보탬이 되기를 바라면서, 이만 마칩니다.
감사합니다💌

1

댓글