[Spring] Filter로 로그인/로그아웃 구현하기
·
Spring
현대 웹 애플리케이션 보안에서 로그인필터는 사용자 인증 및 접근 제어의 역할을 합니다.특히, Spring 로그인필터 구현은 효과적인 인증 보안과 효율적인 필터 체인 관리로 웹 애플리케이션을 더욱 안전하게 만듭니다. 사용자 정보와 시스템 자원을 보호하기 위해서는 올바른 인증 메커니즘은 필수입니다.이 글에서는 Spring Boot에서 순수 Servlet Filter를 이용한 로그인필터 구현 방법과이를 통해 웹 보안을 강화하는 방법에 대해 살펴보겠습니다.      로그인필터의 기본 개념과 역할로그인필터는 HTTP 요청이 애플리케이션에 도달하기 전에 사용자 인증 정보를 가로채어 검증하는 역할을 합니다. 1️⃣ 요청 가로채기클라이언트의 요청을 먼저 받아 로그인필터를 통해 인증 정보를 확인합니다. 2️⃣ 인증 정보..
Spring Boot에서 BCrypt와 PasswordEncoder로 비밀번호 암호화하는 방법
·
Spring
웹 애플리케이션에서 사용자의 비밀번호를 암호화하지 않고 저장한다면 보안 문제가 발생할 수 있습니다.데이터베이스가 해킹당하면 사용자의 비밀번호가 그대로 노출될 수 있기 때문입니다. 이를 방지하기 위해 Spring Boot 비밀번호 암호화 기능을 구현해야 합니다.이번 글에서는 BCrypt와 PasswordEncoder를 사용해 비밀번호 암호화 및 비밀번호 검증 과정을 소개하겠습니다.       🔨 개발 환경 및 사전 준비Spring Boot 3.0+Java 11 이상Gradle 프로젝트at.favre.lib:bcrypt 라이브러리 사용 build.gradle에 의존성 추가implementation 'at.favre.lib:bcrypt:0.10.2'     🔍 PasswordEncoder 클래스 구현하기B..
Mac에서 Port 8080 was already in use 오류 해결 방법
·
OS/Mac
개발 중 Spring Boot 포트 충돌로 인한 오류를 만나면 당황할 수 있습니다.특히 Mac에서 8080 포트가 이미 사용 중이라는 메시지를 볼 때가 많죠.오늘은 Spring Boot 8080 오류를 쉽게 해결할 수 있는 방법을 단계별로 소개합니다.      1️⃣  오류 메시지 분석: 왜 Spring Boot가 실행되지 않을까?***************************APPLICATION FAILED TO START***************************Description:Web server failed to start. Port 8080 was already in use.Action:Identify and stop the process that's listening on port ..
[Spring] Hibernate @Where로 인한 논리 삭제 데이터 조회 문제 트러블 슈팅
·
Spring
문제 상황 논리 삭제된 데이터가 조회되지 않음 Spring Boot와 JPA를 사용해 논리 삭제(Soft Delete) 기능을 구현하던 중 예상치 못한 이슈가 발생했습니다.`isDeleted = true` 조건으로 논리 삭제된 데이터를 조회하려 했으나, Hibernate의 `@Where` 애노테이션이 모든 조회 쿼리에 `isDeleted = false` 조건을 강제 적용하면서원하는 데이터를 가져오지 못하는 상황이 발생했습니다. SQL 로그 확인 결과SELECT * FROM user u WHERE u.is_deleted = false;쿼리를 `isDeleted = true` 조건으로 작성했음에도 `is_deleted = false` 조건이 추가되어 논리 삭제된 사용자를 조회할 수 없었습니다.    문제 원..
[Spring] JPA로 일정 시간 후 데이터 삭제 구현하기
·
Spring
데이터를 삭제할 때, 즉시 데이터베이스에서 제거하는 방식(DELETE)은 간단하지만, 데이터 복구가 어렵고, 감사(audit) 및 트랜잭션 이력을 유지할 수 없다는 단점이 있다.  이에 따라, 많은 애플리케이션에서는 논리 삭제(Soft Delete)를 적용하고, 일정 시간이 지난 후 배치 작업을 통해 데이터베이스에서 실제로 삭제하는 방법을 사용한다. 이번 글에서는 JPA를 활용하여 논리 삭제 후 배치 작업으로 데이터를 완전 삭제하는 구현 방법을 설명한다. 논리 삭제 (Soft Delete) 란?데이터 베이스에서 데이터를 즉시 제거하지 않고, 삭제된 상태를 나태는 플래그(컬럼)을 추가한다.위 방식을 이용한다면, 데이터를 유지하면서 삭제된 것처럼 처리할 수 있다.     1️⃣ 논리 삭제 구현 (@SQLDe..