Spring(56)
-
Java Date & Time, 제대로 사용하기
Java의 날짜와 시간을 제대로 다루기 위해 Date, LocalDate, LocalDateTime 의 개념을 이해하고 응용하는 것이 본 포스팅의 목표입니다. History 이제는 자바 8이 꽤나 보편화된 것 같은데요. 자바 8버전이 중요하다고 하는 이유 중 하나가 바로 "날짜"를 다루는 방식입니다. 자바 8에 새로운 날짜와 시간 API가 생긴 이유는 아래와 같은 이유가 있습니다. ✔️ Mutable 자바 8 이전의 util.Date 클래스는 mutable 하기 때문에 thead safe하지 않았습니다. public class App { public static void main(String[] args) throws InterruptedException { // mutable 한 객체 -> multi-..
2022.05.22 -
ENUM, Clean Code with Java
Java Enum을 통해 If/else 분기문을 제거하여 클린코드를 지향하는 코드를 작성하는 것이 본 포스팅의 목표입니다. 문제점 몇몇의 코드를 관리할 때, if-else 문이 많아지면서 가독성이 떨어지는 경우가 발생하는 것을 경험해보셨을 텐데요. 필자도 이 문제에 대해 조금 더 깔끔한 관리를 할 수 없을지 고민하다가, 조금 더 깔끔하게 관리하기 위한 방법을 고려한 후, 공유하고자 기록하게 되었습니다. IF-ELSE 은행에서 거래 시 예금, 출금, 이체라는 세 가지의 타입의 업무를 수행해야한다고 가정하겠습니다. 그리고 각각 "DEPOSIT", "WITHDRAWAL", "TRANSFER" 이라는 코드로 이들을 구분하고자 합니다. 이 때, 출금(WITHDRAWAL), 이체(TRANSFER)를 수행할 때는 각..
2022.05.11 -
Spring, IP Filtering 어렵지 않게 제작하기
Spring의 Interceptor를 통해 White Cidr(White IP List)만 접근할 수 있도록 하는 것이 해당 포스팅의 목표입니다. 백앤드를 제작하다보면 허용된 IP만 접근할 수 있게 해야할 때가 발생합니다. 이번 포스팅은 미리 지정된 White Cidr 범위 내의 IP만을 허용하는 Spring의 Interceptor를 제작하고자 합니다. Interceptor는 이전 포스팅인 "Spring Interceptor, 제대로 이해하기"를 통해 참고하시길 바랍니다. Cidr는 이전 포스팅인 "CIDR, 어렵지 않게 이해하기"를 통해 참고하시길 바랍니다. Big Picture 해당 포스팅의 전반적인 내용은, 데이터베이스로 White Cidr 리스트를 저장하여 IP가 포함되는지를 체크하는 것입니다. ..
2022.05.01 -
Spring Security, 제대로 이해하기 - FilterChain
Spring Security의 인증, 인가 과정을 FilterChain을 살펴보며 이해하는 것이 본 포스팅의 목표입니다. 해당 포스팅은 1부 Spring Security, 어렵지 않게 설정하기의 이은 포스팅이지만, 읽는데 순서는 상관없습니다. 이해하는데 서로 도움이 되는 포스팅입니다. ----------------- INDEX ----------------- [ 1부: 설정 ] WebSecurityConfigurerAdapter HttpSecurity WebSecurity [ 2부 - 인증, 인가 동작 원리: FilterChain] 📚 Big Picture 초기화 사용자 요청 후 ? 🔗 FilterChain SecurityContextPersistenceFilter LogoutFilter Username..
2022.04.14 -
Caffeine Cache, 어렵지 않게 사용하기 1
Caffeine Cache에 대해 알아보고 사용법에 대해 알아보는 것이 해당 포스팅의 목표입니다. 이 전 포스팅에서는 Spring Cache에 대해 다뤘습니다. Cache를 사용하기 위해서는 CacheManager가 필요한데요. 이번 포스팅에서는 로컬 캐시 중 성능에 유리한 Caffeine Cache를 다뤄보겠습니다. 본 편은 Caffeine Cache를 다루는 "Caffeine Cache, 어렵지 않게 사용하기 2" 로 이어집니다. ------------------- INDEX ------------------- Caffeine Cache? Caffeine versus .. 📌 Caffeine VS EhCache 📌 Benchmarks Caffeine 기능 📌 Population Strategy 📌 E..
2022.04.04 -
Spring Cache, 제대로 사용하기
Spring Cache 사용법, Annotation 등을 알아보고 설정 방식을 알아보는 것이 해당 포스팅의 목표입니다. 📌 Spring Cache Series ✔ Spring Cache, 제대로 사용하기 ✔ Caffeine Cache, 제대로 사용하기 1 ✔ Caffeine Cache, 제대로 사용하기 2 해당 포스팅에서는 Spring Cache에 대해 다룹니다. Cache를 사용하기 위해서는 CacheManager가 필요한데요. 연결되는 다음 포스팅에서는 로컬 캐시 중 성능에 유리한 Caffeine Cache를 다룹니다. ----------------- INDEX ----------------- Cache ? 📌 Cache Abstraction 📌 Cache Manager 📌 의존성 추가 @Enable..
2022.04.03