[Spring] JPA로 일정 시간 후 데이터 삭제 구현하기
·
Framework/SpringBoot
데이터를 삭제할 때, 즉시 데이터베이스에서 제거하는 방식(DELETE)은 간단하지만, 데이터 복구가 어렵고, 감사(audit) 및 트랜잭션 이력을 유지할 수 없다는 단점이 있다.  이에 따라, 많은 애플리케이션에서는 논리 삭제(Soft Delete)를 적용하고, 일정 시간이 지난 후 배치 작업을 통해 데이터베이스에서 실제로 삭제하는 방법을 사용한다. 이번 글에서는 JPA를 활용하여 논리 삭제 후 배치 작업으로 데이터를 완전 삭제하는 구현 방법을 설명한다. 논리 삭제 (Soft Delete) 란?데이터 베이스에서 데이터를 즉시 제거하지 않고, 삭제된 상태를 나태는 플래그(컬럼)을 추가한다.위 방식을 이용한다면, 데이터를 유지하면서 삭제된 것처럼 처리할 수 있다.     1️⃣ 논리 삭제 구현 (@SQLDe..
[Spring] 동적 쿼리를 활용한 사용자 조회 기능 구현 및 트러블슈팅
·
Framework/SpringBoot
스프링 부트(Spring Boot)와 JPA를 사용하여 특정 조건에 따라 사용자를 조회하는 기능을 구현할 때, 경우에 따라 동적으로 쿼리를 생성해야 하는 요구사항이 발생할 수 있습니다. 현재 진행중인 스케쥴 관리 애플리케이션 개발 프로젝트에서 사용자 정보를 효율적으로 조회하기 위해@Query를 활용하여 아이디, 이름, 이메일을 기반으로 사용자를 조회하는 기능을 구현하고, 개발 중 발생하였던 문제와 해결 방법을 설명하겠습니다. 🔍 요구사항1️⃣ 검색 조건을 입력하지 않으면 전체 사용자 조회2️⃣ 아이디(pk)를 입력하면 해당 사용자 조회3️⃣ 이름을 입력하면 동일한 이름을 가진 사용자 조회4️⃣ 이메일을 입력하면 동일한 이메일을 가진 사용자 조회       🔷 동적 쿼리 구현하기이번 스케줄 관리 어플리..
[Spring] BaseEntity와 생성일 및 수정일 자동화
·
Framework/SpringBoot
Spring Boot를 사용한 웹 애플리케이션 개발에서 데이터베이스 엔티티(Entity)는 핵심적인 역할을 합니다. 각 엔티티에는 일반적으로 생성일(createdAt)과 수정일(updatedAt)이 필요하며, 이를 수동으로 관리하는 것은 번거롭고 실수할 가능성이 있습니다. 이를 해결하기 위해 BaseEntity라는 공통 클래스를 적용하고,Spring Data JPA의 Auditing기능을 활용하면 이러한 필드를 자동으로 관리할 수 있습니다. 이번 글에서는 BaseEntity가 무엇인지, 어떻게 활용할 수 있는지, 그리고 생성일과 수정일을 자동으로 관리하는 방법을 알아보겠습니다.      BaseEntity란 무엇인가?BaseEntity는 여러 엔티티에서 공통적으로 사용되는 속성을 정의하는 추상 클래스(A..
[Spring] 스프링부트의 핵심, @Annotation 기초 정복!
·
Framework/SpringBoot
왜 @Annotation이 중요한가?스프링부트를 배우다 보면 코드 곳곳에서 등장하는 @ 기호를 자주 마주하게 됩니다. 바로 어노테이션(Annotation)입니다. 처음에는 단순한 기호처럼 보이지만, 사실 이 어노테이션은 스프링부트의 강력한 기능을 이끄는 핵심 요소입니다. 이 글에서는 스프링부트 개발에서 필수적으로 알아야 할 주요 어노테이션과 그 역할을 간결하게 설명하겠습니다.       ✅ @SpringBootApplication: 스프링부트의 시작점`@SpringBootApplication`은 스프링부트 애플리케이션의 진입점을 정의하는 어노테이션입니다. 이 어노테이션 하나가 `@Configuration`, `@EnableAutoConfiguration`,`@ComponentScan` 세 가지 기능을 포..
[Spring] REST API란? HTTP 프로토콜로 쉽게 이해하는 REST API의 모든 것
·
Framework/SpringBoot
REST API, 왜 중요한가?현대의 웹과 모바일 애플리케이션은 대부분 서버와 데이터를 주고받으며 작동합니다.이때 중요한 역할을 하는 것이 바로 REST API입니다. 만약 "앱에서 로그인 버튼을 눌렀는데 아무 일도 일어나지 않는다면?" 이는 서버와의 통신이 실패했기 때문일 수 있습니다.  이번 글에서는 REST API의 개념을 이해하고, HTTP 프로토콜을 중심으로 REST API의 작동 원리를 쉽게 설명하겠습니다.      ✅ REST API란?REST(Representational State Transfer)는 자원을 정의하고 자원에 대한 주소를 지정하는 방식입니다.쉽게 말하면 클라이언트(앱, 웹사이트)가 서버에 "이 데이터를 주세요" 또는 "이 데이터를 저장해주세요"라고 요청하는 방법을 표준화한 ..