728x90

개발/Java & Kotlin 134

[Spring] Expo FCM 푸시알림 구현하기 (3)

Expo FCM 푸시알림 구현하기!  클라이언트 설정 및 구현은 여기서![RN] Expo FCM 푸시알림 구현하기 (2) (tistory.com) [RN] Expo FCM 푸시알림 구현하기 (2)Expo FCM 푸시알림 구현하기!  설정은 여기서![RN] Expo FCM 푸시알림 구현하기 (1) (tistory.com) { const fcmToken = await messagi" data-og-host="devhooney.tistory.com" data-og-source-url="https://devhooney.tistory.com/315" data-og-url="devhooney.tistory.com   1. 서버쪽 firebase 설정https://console.firebase.google.com/u..

[Spring] AbstractAuthenticationProcessingFilter, OncePerRequestFilter 차이

AbstractAuthenticationProcessingFilter, OncePerRequestFilter 차이를 알아보자!!   Spring Security에서 AbstractAuthenticationProcessingFilter와 OncePerRequestFilter는 두 가지 주요한 필터 유형이다. 이들은 인증 및 요청 처리에 사용된다.  각 필터의 역할과 차이를 살펴보면,  1. AbstractAuthenticationProcessingFilter역할AbstractAuthenticationProcessingFilter는 인증 요청을 처리하는 데 사용주로 폼 기반 로그인, JWT 토큰 인증, OAuth 인증 등 다양한 인증 메커니즘을 구현하는 데 사용.특징인증 요청 전용: 특정 URL 패턴(예: ..

[Java] OrElse, OrElseGet 차이

Optional 의 orElse, orElseGet 차이점에 대해서 알아보자 Optional은 자바 8부터 도입된 클래스로, 값이 있을 수도 있고 없을 수도 있는 상황을 처리하는 데 사용된다. Optional은 값이 있는지 없는지를 명시적으로 표현함으로써 NullPointerException을 방지하고, 코드의 가독성을 높여준다. orElseGet와 orElse는 Optional 객체에서 값을 가져오는 메서드 중 두 가지이다. 1. orElseGet 값이 존재하지 않을 경우에만 실행되는 함수를 인수로 받는다. 값이 존재하지 않을 때마다 이 함수가 호출되며, 이 함수의 반환값이 Optional의 값이 된다. 이 함수는 Supplier를 매개변수로 받아야 하므로 지연 로딩(lazy loading)에 적합하다..

[Spring] 정적파일 캐시에 담기

스프링부트로 정적파일(JS, CSS 등)들을 캐시에 담아서 자원낭비를 막아보자. 1. WebConfig 생성 후 WeMvcConfigurer 인터페이스를 상속 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { } 2. registry에 리소스핸들러, 리소스로케이션, 캐시컨트롤 등을 추가 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { VersionResourceResolver versionResourceResolver = new VersionResourceResolver(); versionResourceResolver.addC..

[Spring] addAttribute, addFlashAttribute 차이

addAttribute, addFlashAttribute 차이에 대해서 알아보자 addAttribute와 addFlashAttribute는 Spring의 RedirectAttributes 인터페이스의 메서드이다. 이 둘의 차이점은 리다이렉트된 후에 사용할 수 있는 속성의 수명에 있다. addAttribute: 이 메서드를 사용하여 전달된 속성은 URL 쿼리 문자열의 일부로 전달된다. 즉, 속성은 URL에 직접 노출되므로 보안에 취약할 수 있다. 또한, URL의 길이 제한이 있을 수 있다. 주로 데이터가 작은 경우나 보안 상 문제가 없는 경우에 사용된다. addFlashAttribute: 이 메서드를 사용하여 전달된 속성은 일회성으로 저장되어 다음 요청에만 사용할 수 있다. 이러한 속성은 URL에 직접 노..

[Java] DTO, DAO, VO 차이 알아보기

DTO (Data Transfer Object), DAO (Data Access Object), VO (Value Object)는 데이터 관련 프로그래밍에서 자주 사용되는 용어이다. 1. DTO (Data Transfer Object) 용도: 데이터를 전송하거나 데이터베이스에서 검색된 데이터를 저장하는 데 사용 특징: DTO는 주로 데이터 전송과 관련된 역할을 하는 객체로, 특정 비즈니스 로직을 포함하지 않는다. 주로 데이터의 구조를 정의하고, 데이터를 한 곳에서 다른 곳으로 전송하는 데 사용된다. 예를 들어, 웹 요청에서 데이터를 수신하거나 웹 응답으로 데이터를 보낼 때 사용할 수 있다. 예시: 사용자 등록 요청을 처리하는데 사용되는 DTO, 데이터베이스에서 검색한 사용자 정보를 저장하는데 사용되는 D..

[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..

[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..

[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..

[Spring] Redirect, Forward 차이

Redirect와 Forward의 차이에 대해서 알아보자 1. Redirect(리다이렉트): 리다이렉트는 클라이언트(브라우저)에게 요청을 다른 URL로 보내도록 지시하는 HTTP 상태 코드와 함께 사용된다.(예: 301 Moved Permanently, 302 Found, 303 See Other 등) 리다이렉트가 발생하면 클라이언트는 새로운 URL로 이동하며, 이때 새로운 URL로의 요청이 새로 생성된다. 클라이언트는 이전 URL에서 새로운 URL로 요청을 재전송한다. 따라서 클라이언트에게는 두 번의 요청이 보이게 된다. 주로 이전 URL이 영구적으로 이동한 경우나 새로운 URL로 재요청을 원하는 경우에 사용된다. 좀 더 자세한 설명을 해보면, 리다이렉트는 클라이언트(웹 브라우저)에게 현재의 URL에서..

728x90