Spring Boot 4

Spring Boot 실시간 알림 기능 구현

이번 팀 프로젝트에서 기본적인 CRUD 외 실시간 알림 기능을 구현하게 되었다.해당 기능을 구현하면서 정리한 내용을 기록하고자 한다. 실시간 알림을 구현한 이유특정 사용자에게 메시지를 전할 수 있도록 쪽지 기능이 구현되어 있음쪽지 보관함을 확인하는 경우 DB에서 데이터를 가져오기 때문에 알림 기능이 없는 경우 사용자가 직접 확인을 위해 수시로 쪽지 보관함에 접근해야 함다수의 사용자 쪽지를 보기 위해 여러 번 요청을 날리는 경우 서버에 부담이 됨실시간 알림을 사용하면 사용자가 수시로 쪽지 보관함을 확인하는 수고를 덜 수 있으므로 사용자 경험을 향상 시키고 요청을 줄여서 서버의 부담을 줄일 수 있음 처음에는 SSE로 구현하였고 이유는 다음과 같다.SSE로 구현한 이유SSE(Server-Sent Events)..

Spring Boot 2024.07.28

[Spring Boot] Scheduler로 Soft Delete 데이터 삭제

Todo 프로젝트에서 Soft Delete를 적용해 논리적으로 데이터가 삭제된 것처럼 구현하였다.실제 데이터가 삭제된 것은 아니기 때문에 불필요한 데이터가 계속 쌓이게 된다.불필요한 데이터를 계속 저장해 둘 필요는 없기 때문에 주기적으로 삭제 처리된 데이터를 지우려고 한다.이런 경우 Spring Scheduler를 사용하면 정해진 시간마다 삭제 작업을 처리할 수 있다. 다음과 같이 @EnableScheduling 어노테이션을 추가한다.import org.springframework.scheduling.annotation.EnableScheduling@EnableScheduling // 스케줄링 활성화@SpringBootApplicationclass TodolistApplicationfun main(arg..

Spring Boot 2024.06.21

[Spring Boot] Soft Delete 적용

Soft Delete논리적 삭제(물리적인 데이터는 DB에 그대로 유지)데이터 복구와 이력 추적 등에 용이실수로 삭제한 데이터를 복원해야 하는 경우데이터가 유지되어야 하는 경우Hard Delete물리적 삭제(실제로 DB에서 데이터를 삭제)Hard Delete & Soft Delete 쿼리문-- 물리적 삭제(실제 DB에서 삭제)DELETE FROM todo WHERE id = ?-- 논리적 삭제(삭제 여부를 나타내는 컬럼 사용)UPDATE todo SET is_deleted = true WHERE id = ? Soft Delete를 적용하기 위해 Entity 클래스에 어노테이션을 다음과 같이 추가한다.@Entity@SQLRestriction("is_deleted = false") // org.hibernat..

Spring Boot 2024.06.20