저는 회사에서 로그 모니터링 서비스를 만들고 있습니다. 위의 화면에서 검색 조건은 content:*Exception*으로 입력되어 있습니다. 수집 된 로그 중에서 Exception이 포함된 로그를 조회하는 모습을 보여줍니다. 지정한 키워드가 포함되었는지 확인할 때에는 java.lang.String#startsWith(java.lang.String)을 사용합니다. 물론 이렇게 수집된 모든 로그에 대해서 FULL-SCAN을 하면 검색 속도도 안나오고 CPU도 많이 사용할 수 있습니다. 더 큰 문제는 지정한 검색 시간 안에 로그가 N개 있으면 N개의 문자열에 대해서 모두 startsWith 연산을 수행한다는 점입니다. RDBMS를 사용하는 환경이라면 Connection Pool을 오랫동안 점유하게 되고, Fi..