NakNak's Blog

[Java/알고리즘] 문자열 검색 알고리즘 - KMP

서론 알고리즘 문제를 풀면서 필요한 효율적인 문자열 검색 알고리즘에 대해서 공부해보고, 깊게 이해해보려고 한다. 일반적인 문자열 검색 일반적인 문자열 검색은 ‘Naïve String Search’라고 칭하는데, 아래 코드처럼 검색 대상과 대상 패턴을 두고 문자열의 인덱스 기반으로 (0부터 전체 길이 - 패턴의 길이까지) 패턴과 똑같은 ...

[Spring/Spring Batch] 배치 처리와 Spring Batch란 무엇일까?

서론 및 배경 IT 기술이 발전하면서 한 번에 처리해야하는 데이터 양이 늘었고 이를 효율적이고 안정적으로 처리하기 위한 기술이 필요해졌다. 이를 ‘배치 처리’라고 표현한다. 다시 요약하면 ‘대량의 데이터를 일정 시간에 모아서 한꺼번에 처리한다.’는 의미이다. 보통 사용자의 활동 로그 정리, 정산, 데이터 마이그레이션, 정해진 시각에 특정 사용자에게 ...

[Spring/Spring Security] Spring Security를 이용해 로그인 구현하기. - (3) OAuth2 (Kakao)

서론 Spring Security에서 Session과 JWT 방식을 통한 로그인을 구현했다. 이에 더 나아가서, Session 방식에 OAuth2 방식으로 카카오 플랫폼을 통한 로그인을 구현해 보고자 한다. OAuth란? OAuth는 Open Authorization의 줄임말로, 권한 인증을 외부 서비스 업체에 위임함으로써 안전하게 액세스 권한을...

[Spring/Spring Security] Spring Security를 이용해 로그인 구현하기. - (2) JWT

서론 지난 포스트에서 Spring Security 프레임워크를 통해 Session 방식을 이용한 로그인 구현을 다뤄보았다. 이번 포스트에서는 JWT 방식으로 로그인을 구현해볼 것이며, Session 방식과 JWT 방식의 차이점을 알아본다. JWT란? JWT는 ‘JSON Web Token’의 줄임말로, 클라이언트와 서버 사이에 통신할 때 권한에 대...