안녕하세요, 알고리즘을 정리하는 포스팅입니다. 다른 알고리즘을 참고하시려면 해당 카테고리를 이용해주세요. 😊 '🌻 JAVA/알고리즘, 자료구조' 카테고리의 글 목록 공부한 것들 정리한 내용을 포스팅합니다. iseunghan.tistory.com 선택 정렬 (Selection Sort) 정렬하여 원소를 배치할 자리를 미리 정해놓고, 해당 자리에 넣을 원소를 선택하는 알고리즘입니다. 개인적으로 삽입 정렬과 헷갈린 정렬,, 선택 정렬은 넣을 자리를 미리 지정하고, 삽입 정렬은 1 번째부터 n번째 원소를 앞의 원소와 비교하며 삽입해 나가는 차이가 있다. (헷갈림..) 시간 복잡도 : O(N^2) 공간 복잡도 : O(N) 불안정 정렬 과정 먼저 1 번째 자리에 올 원소를 선택할 것입니다. 첫 번째 원소부터 마지막..
안녕하세요, 알고리즘을 정리하는 포스팅입니다. 다른 알고리즘을 참고하시려면 해당 카테고리를 이용해주세요. 😊 '🌻 JAVA/알고리즘, 자료구조' 카테고리의 글 목록 공부한 것들 정리한 내용을 포스팅합니다. iseunghan.tistory.com Quick Sort Quick Sort는 real-world 데이터에서 빠르다고 알려져 가장 많이 쓰는 정렬 알고리즘입니다. pivot이라는 것을 지정하여 pivot 왼쪽으로는 pivot보다 작은 값들을, 오른쪽에는 pivot보다 큰 값들을 재배치하며, 계속하여 분할하여 정렬하는 알고리즘입니다. Quick Sort는 분할 정복 방법을 통해 정렬합니다. Merge Sort와 달리 Quick Sort는 비균등하게 분할합니다. 불안정 정렬에 속합니다. 시간 복잡도 : ..
이 포스트는 데어 프로그래밍님의 유튜브 강의를 듣고 나서 정리한 글입니다. 로그인 요청이 오면 사용자 인증 후 JWT 토큰을 생성하여 클라이언트에게 응답해줬습니다. 이제 사용자는 매번 로그인을 하는 것이 아니라, 이전에 발급 받은 JWT 토큰을 들고 서버로 요청을 하면 서버는 해당 JWT 토큰을 검증하여 유효한 토큰인지 확인 후 클라이언트 요청을 처리해주면 됩니다. 이번 시간에는 JWT 토큰을 검증할 수 있는 Filter를 생성해보도록 하겠습니다. BasicAuthenticationFilter 상속 헤더에 Authorization : Basic *** 방식으로 인증을 시도하면 BasicAuthenticationFilter에서 해당 토큰을 검증하여 인증을 처리하는데, 우리는 Basic 방식이 아닌, JWT..
이 포스트는 데어 프로그래밍님의 유튜브 강의를 듣고 나서 정리한 글입니다. UsernamePasswordAuthenticationFilter에 대해서는 아래 포스팅을 참조하시길 바랍니다. UsernamePasswordAuthenticationFilter 동작 방식에 대해서 SpringSecurity Filterchain 에는 여러 종류에 필터가 존재하지만, 이번 시간에는 로그인 인증을 처리하는 UsernamePasswordAuthenticationFilter에 대해서 알아보겠습니다. Login 인증 로직 flow POST "/login".. iseunghan.tistory.com 로그인 요청을 처리하기 위해서는 SpringSecurityFilterChain 중에 로그인 인증을 처리하는 필터인 Userna..
SpringSecurity Filterchain 에는 여러 종류에 필터가 존재하지만, 이번 시간에는 로그인 인증을 처리하는 UsernamePasswordAuthenticationFilter에 대해서 알아보겠습니다. Login 인증 로직 flow POST "/login" 으로 요청을 보내면? Postman으로 body에 username, password를 넣고 "/login"으로 요청을 보내면, UsernamePasswordAuthenticationFilter가 요청을 낚아채고 username, password를 검증합니다. 그 과정에서 우리가 오버라이딩한 UsernamePasswordAuthenticationFilter.attemptAuthentication 메소드가 호출이 됩니다. POST로 요청이 왔..
이 포스트는 데어 프로그래밍님의 유튜브 강의를 듣고 나서 정리한 글입니다. Adapter 패턴을 이용하여 UserDetails 구현 User 클래스는 UserDetails를 구현한 클래스입니다. 우리는 Adapter 패턴을 이용하여 User 클래스를 상속받을 것입니다. public class AccountAdapter extends User { private Account account; public AccountAdapter(Account account) { super(account.getUsername(), account.getPassword(), getAuthorities(account.getRoles())); this.account = account; } public static Collection