일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 소켓통신
- springboot
- Security
- 반효경
- OS
- 스프링시큐리티
- 스프링
- 운영체제
- 단위테스트
- 채팅구현
- 스프링부트
- java
- 스프링소켓통신
- 테스트코드
- 기술면접
- JPA
- jwt
- Stomp
- 자바
- socket
- spring
- CS면접
- MongoDB
- Mock
- 자바문법
- rabbitmq
- jwt토큰
- CS
- 소켓
- cs지식
- Today
- Total
목록2024/06/02 (2)
Dev_Henry
상황현재 진행중인 프로젝트에서 사용자가 종료시간을 설정하여 과제를 생성할 수 있다.해당 종료시간이 되면 과제는 자동으로 종료상태가 돼야하기 때문에 스케줄링 처리가 필요했다. 기존 방식처음 구현한 방식은 @Scheduled 어노테이션을 활용하는 방법이었다.구글링을 통해 찾아봐도 스프링에서 스케줄링 처리를 하는 방법은 모두 해당 어노테이션을 사용하는 방법으로 설명한다. 하지만 여기에는 문제가 있었다.현재 요구사항은 사용자가 직접 종료시간을 설정해 과제를 생성하기 때문에, 스케줄링이 동작해야하는 시간이 고정되지 않았는데, @Scheduled로는 처리할 수 없었다. 간단하게 살펴보자면, 해당 어노테이션은 속성으로 스케줄링 시간을 설정할 수 있는데,fixedRate, fixedDelay 속성은 ms단위의 시간을 ..
최근 진행한 프로젝트는 학급관리가 가능하고 학생들끼리 소통을 도와주는 서비스이다.같은 반 친구들과 그룹채팅을 할 수 있는 기능이 있는데, 초등학생이 주요 타겟이다보니 비속어 필터링을 해주면 좋겠다는 의견이 나왔다. 처음에는 필터링 목록을 반복문으로 모두 돌면서 해당 단어의 일치를 검사하는 방식으로 구현했다.구현하기는 간단했지만, 필터링 목록이 커질수록 반복문을 모두 도는것이 성능적으로 나빠서 다른 방식을 찾아보던 중 '아호코라식 알고리즘'을 알게되었다.아호코라식 알고리즘이란 일대다 패턴 매칭 알고리즘으로, 찾아야하는 패턴의 갯수와 상관없이 원본 문자열 한번만 조회하면 포함된 모든 패턴을 찾아낼수 있는 알고리즘이다. 찾아야하는 패턴 목록을 트라이 자료구조로 만들고, 해당 트리와 원본 문자열을 매칭 검사한다..