Java62 [Security] 시큐리티 파헤치기 (2) : RequestCacheAwareFilter, RequestCache 🙋 들어가며 스프링 시큐리티 필터에는 다양한 필터들이 존재합니다. 오늘은 그중에서 인증, 인가를 위해서 가로채진 요청을 어떻게 다시 수행하는지 알아보겠습니다. ↩️ RequestCacheAwareFilter 이름에서 어떤 역할을 하는지 대략적으로 알 수 있습니다. 대충 요청에 대한 캐시를 알고 있는 필터 같습니다. 동작을 이해하기 위해서는 내부적으로 무엇을 가지고 있는지 알아야 합니다. 🏛️ 시큐리티 아키텍처 시큐리티는 결국 인증과 인가를 위한 프레임워크입니다. 인증을 위한 Authentication Manager와 인가를 위한 Access Decision Manager가 핵심입니다. 요청한 자원이 인증이 필요하다면 요청을 가로채 인증한 뒤 다시 원래 요청으로 되돌아가야 합니다. 시큐리티는 Reques.. 2023. 8. 2. [Java] equals()와 hashCode()를 같이 재정의하자! 🙋 들어가며 오늘은 자바의 최상위 객체 Object에 equals()와 hashCode()에 대해서 이야기해 보겠습니다. 이번 글을 통해서 각 메서드를 언제, 어떻게 사용하는지 알아보고 왜 두 메서드를 같이 재정의해야 하는지 알아보겠습니다. 🟰 equals() 문자열을 비교할 때 많이 사용하는 친숙한 메서드입니다. 이 메서드를 왜 사용하는지 이해하기 위해서는 동일성과 동등성의 개념을 알아야 합니다. 간단하게 정리하면 다음과 같습니다. 그리고 이해를 위한 예시를 작성해 보겠습니다. 동일성(identity) : 같은 참조를 가진다. 동등성(equality) : 같은 값을 가진다. String str1 = new String("hejow"); String str2 = new String("hejow"); Sy.. 2023. 7. 20. [Java] 가변성 (feat. Generic) 🙋 들어가며 제네릭에 대해서 자세하게 공부를 하다가 가변성(variance)에 대해서 알게 되었습니다. 어떤 종류가 존재하는지 알아보고, 왜 이런 개념이 있는지 알아보겠습니다. 제네릭을 위해서 다루는 내용이므로 이해가 어렵다면 해당 글에서 예시를 통해 다뤄보도록 하겠습니다. 🔄 가변성이란? 이름에서 예상할 수 있듯이 가변성이란, 특정 타입의 객체를 다른 타입의 객체로 변환할 수 있음을 말합니다. 반대의 개념은 불변성으로, 무공변(Invariance)으로도 부릅니다. 여기서 가변성은 공변과 반공변 두가지가 존재합니다. 어떤 객체 a와 b에 대해서, a가 b로 변환할 수 있다고 가정하겠습니다. 그러면 다음과 같이 총 3가지로 가변성과 불변성을 구분할 수 있습니다. 공변(covariant) : Box를 B.. 2023. 7. 5. [Java] Optional 바르게 사용하기 🙋 들어가며 자바 기반의 백엔드 개발자가 Optional을 제대로 접하는 순간은 JPA의 query method를 사용할 때라고 생각합니다. Optional이 사용하기 편한 객체이지만 사용할 때 주의점을 요합니다. 이 글에서는 Optional에 대한 저의 고찰과 올바르게 사용하는 방법에 대해 이야기해 보겠습니다. 🧐 Optional의 목적 모든 사물들은 각자에게 주어진 알맞은 쓰임이 존재합니다. 예를 들어서, 책은 읽기 위해서 존재합니다. 라면 받침으로 쓰는 것은 본디 목적을 잃는 것입니다. (물론 라면 받침으로 씁니다) 그렇다면 Optional의 쓰임은 무엇일까요? 자바 설계자가 언급한 의도를 가져왔습니다. Our intention was to provide a limited mechanism for .. 2023. 6. 22. TIL : import문이 빨갛게 되고 import가 안되는 문제 고치기 (IntelliJ) (23) 🏛️ IntelliJ 가끔 인텔리제이를 사용하다가 import문이 고장 나는 경우가 있습니다. 다음과 같이 말이죠 🥹🥹 어김없이 구글링을 통해서 해결하려고 신나게 찾아다녔습니다. 다행히도 결과는 많았습니다. 캐시도 비워보고, JDK도 확인해보고 프로젝트도 리빌드를 해보았지만 어떤 방법도 통하지 않았습니다. 🥹🥹 한참을 뻘짓하다가 기능을 하나 찾았습니다! 다행히도 IDE 자체에서 고장을 고치는 기능이 있었습니다. File > Repair IDE 탭에서 찾을 수 있는 기능입니다. 😎😎 저같은 문제를 겪으신 분이 있다면 이 기능을 한번 꼭 써보시기 바랍니다 ㅎㅎ😋😋 😋 지극히 개인적인 블로그지만 훈수와 조언은 제 성장에 도움이 됩니다 😋 2023. 6. 21. [Java] 백준 20440번 : 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 https://www.acmicpc.net/problem/20440 20440번: 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 첫째 줄에 지동이의 방에 출입한 모기의 마릿수 N(1 ≤ N ≤ 1,000,000)가 주어진다. 다음 N개의 줄에 모기의 입장 시각 TE과 퇴장 시각 TX이 주어진다. (0 ≤ TE max) { max = mosquitoes[i]; startIndex = i; endIndex = i; } if (mosquitoes[i] == max && i - 1 == endIndex) { endIndex = i; } } System.out.println(max); System.out.println(compressed.get(startIndex) + " " + compre.. 2023. 6. 15. 이전 1 2 3 4 5 ··· 11 다음