Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링소켓통신
- java
- 자바
- OS
- 스프링
- CS면접
- 운영체제
- 테스트코드
- jwt토큰
- rabbitmq
- Mock
- cs지식
- socket
- Stomp
- spring
- jwt
- 스프링부트
- 채팅구현
- 스프링시큐리티
- Security
- 단위테스트
- 반효경
- 자바문법
- MongoDB
- 기술면접
- CS
- 소켓
- springboot
- 소켓통신
- JPA
Archives
- Today
- Total
목록비속어 필터링 (1)
Dev_Henry
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xgDeL/btsHKKuwAgl/UX7paiIig3I3k7k20yzuG0/img.png)
최근 진행한 프로젝트는 학급관리가 가능하고 학생들끼리 소통을 도와주는 서비스이다.같은 반 친구들과 그룹채팅을 할 수 있는 기능이 있는데, 초등학생이 주요 타겟이다보니 비속어 필터링을 해주면 좋겠다는 의견이 나왔다. 처음에는 필터링 목록을 반복문으로 모두 돌면서 해당 단어의 일치를 검사하는 방식으로 구현했다.구현하기는 간단했지만, 필터링 목록이 커질수록 반복문을 모두 도는것이 성능적으로 나빠서 다른 방식을 찾아보던 중 '아호코라식 알고리즘'을 알게되었다.아호코라식 알고리즘이란 일대다 패턴 매칭 알고리즘으로, 찾아야하는 패턴의 갯수와 상관없이 원본 문자열 한번만 조회하면 포함된 모든 패턴을 찾아낼수 있는 알고리즘이다. 찾아야하는 패턴 목록을 트라이 자료구조로 만들고, 해당 트리와 원본 문자열을 매칭 검사한다..
알고리즘
2024. 6. 2. 02:13