본문 바로가기
728x90

java106

[Spring] AbstractAuthenticationProcessingFilter, OncePerRequestFilter 차이 AbstractAuthenticationProcessingFilter, OncePerRequestFilter 차이를 알아보자!!   Spring Security에서 AbstractAuthenticationProcessingFilter와 OncePerRequestFilter는 두 가지 주요한 필터 유형이다. 이들은 인증 및 요청 처리에 사용된다.  각 필터의 역할과 차이를 살펴보면,  1. AbstractAuthenticationProcessingFilter역할AbstractAuthenticationProcessingFilter는 인증 요청을 처리하는 데 사용주로 폼 기반 로그인, JWT 토큰 인증, OAuth 인증 등 다양한 인증 메커니즘을 구현하는 데 사용.특징인증 요청 전용: 특정 URL 패턴(예: .. 2024. 6. 6.
[Java] OrElse, OrElseGet 차이 Optional 의 orElse, orElseGet 차이점에 대해서 알아보자 Optional은 자바 8부터 도입된 클래스로, 값이 있을 수도 있고 없을 수도 있는 상황을 처리하는 데 사용된다. Optional은 값이 있는지 없는지를 명시적으로 표현함으로써 NullPointerException을 방지하고, 코드의 가독성을 높여준다. orElseGet와 orElse는 Optional 객체에서 값을 가져오는 메서드 중 두 가지이다. 1. orElseGet 값이 존재하지 않을 경우에만 실행되는 함수를 인수로 받는다. 값이 존재하지 않을 때마다 이 함수가 호출되며, 이 함수의 반환값이 Optional의 값이 된다. 이 함수는 Supplier를 매개변수로 받아야 하므로 지연 로딩(lazy loading)에 적합하다.. 2024. 4. 15.
[Spring] addAttribute, addFlashAttribute 차이 addAttribute, addFlashAttribute 차이에 대해서 알아보자 addAttribute와 addFlashAttribute는 Spring의 RedirectAttributes 인터페이스의 메서드이다. 이 둘의 차이점은 리다이렉트된 후에 사용할 수 있는 속성의 수명에 있다. addAttribute: 이 메서드를 사용하여 전달된 속성은 URL 쿼리 문자열의 일부로 전달된다. 즉, 속성은 URL에 직접 노출되므로 보안에 취약할 수 있다. 또한, URL의 길이 제한이 있을 수 있다. 주로 데이터가 작은 경우나 보안 상 문제가 없는 경우에 사용된다. addFlashAttribute: 이 메서드를 사용하여 전달된 속성은 일회성으로 저장되어 다음 요청에만 사용할 수 있다. 이러한 속성은 URL에 직접 노.. 2024. 3. 13.
[Java] 오브젝트: 코드로 이해하는 객체지향 설계 (2) 조영호님의 오브젝트 읽고! 자세한 내용은 도서를 구입해서 보세요! 1. 영화 예매 시스템 만들기 - 상영클래스 public class Screening { private Movie movie; private int sequence; private LocalDateTime whenScreened; ... 생성자 ... public LocalDateTime getStartTime() { return whenScreened; } public boolean isSequence(int sequence) { return this.sequence == sequence; } public Money getMoviceFee() { return movie.getFee(); } public Reservation reserve.. 2023. 10. 2.
[Java] 오브젝트: 코드로 이해하는 객체지향 설계 (1) 조영호님의 오브젝트 읽고... 자세한 내용은 도서 구입 후 확인... 1. 티켓 판매 애플리케이션 구현 - 초대장 클래스 public class Invitation { private LocalDateTime when; } - 티켓 클래스 public class Ticker { private Long fee; public Long getFee() { return fee; } } - 관람객 가방 클래스 public class Bag { private Long amount; private Invitation invitation; private Ticket ticket; public boolean hasInvitation() { return invitation != null; } public boolean ha.. 2023. 9. 22.
[Java] Record 알아보기 1. Recode란? Record는 자바 14에서 도입되었고, 16에서 정식으로 채택된 클래스이다. 데이터를 다루기 위한 데이터 클래스로 사용된다. 자동으로 생성자를 만들어주고, getter, equals, hashCode, toString을 자동으로 생성한다. 필드를 final로 생성해줘서 불변 데이터로 관리할 수 있다. Record 클래스는 주로 데이터를 보관하고 전달하기 위한 목적으로 사용되며, 레코드 타입(Record Type)이라고도 한다. 2. 예시 public record ClassName(parameters) { // 필드 정의 } public record Person(String name, int age) { } public class RecordExample { public static.. 2023. 9. 20.
[Spring] Redirect, Forward 차이 Redirect와 Forward의 차이에 대해서 알아보자 1. Redirect(리다이렉트): 리다이렉트는 클라이언트(브라우저)에게 요청을 다른 URL로 보내도록 지시하는 HTTP 상태 코드와 함께 사용된다.(예: 301 Moved Permanently, 302 Found, 303 See Other 등) 리다이렉트가 발생하면 클라이언트는 새로운 URL로 이동하며, 이때 새로운 URL로의 요청이 새로 생성된다. 클라이언트는 이전 URL에서 새로운 URL로 요청을 재전송한다. 따라서 클라이언트에게는 두 번의 요청이 보이게 된다. 주로 이전 URL이 영구적으로 이동한 경우나 새로운 URL로 재요청을 원하는 경우에 사용된다. 좀 더 자세한 설명을 해보면, 리다이렉트는 클라이언트(웹 브라우저)에게 현재의 URL에서.. 2023. 9. 18.
[Java] 자바 JDK 21 버전 특징 JDK 21이 2023년 9월 19일에 릴리즈될 예정이다. String Templates (Preview) [JEP-430] Sequenced Collections [JEP-431] Generational ZGC [JEP-439] Record Patterns [JEP-440] Pattern Matching for switch [JEP-441] Foreign Function & Memory API (Third Preview) [JEP-442] Unnamed Patterns and Variables (Preview) [JEP-443] Virtual Threads [JEP-444] Unnamed Classes and Instance Main Methods (Preview) [JEP-445] Scoped Val.. 2023. 8. 31.
[Java] 테스트가 어려운 코드 최범균님의 '테스트 주도 개발 시작하기'를 읽으면서 정리해본 글. - 모든 코트를 테스트할 수 있는 것은 아님. 1. 하드코딩된 경로 - 예시 public void sync() throws IOException { Path path = Paths.get("D:\\data\\pay\\test.csv"); ...(중략)... } 위 코드에서 파일 경로가 하드코딩 되어 있다. 이 코드를 테스트하려면 해당 경로에 파일이 반드시 위치해야 한다. 만약 윈도우에 D드라이브가 없으면 테스트가 불가능하다. 또한, 윈도우 전용 파일 경로를 사용하고 있기 때문에 맥이나 리눅스로는 테스트가 불가능하다. 2. 의존 객체를 직접 생성 - 예시 // 의존 대상을 직접 생성 private PayInfoDao payInfoDao = .. 2023. 8. 23.
728x90