Spring 데이터 검증 (Validation)하기
·
Spring
Validation Validation (검증)은 프로그래밍을 하는데에 있어서 가장 중요한 부분 중 하나. 특히나 Java는 null 값에 대한 접근에 대해 NullPointerException 오류가 발생하기 떄문에 이러한 부분을 예방하기 위해 검증 과정이 필요하다. Spring에서는 null 확인 뿐만 아니라 문자의 길이 측정과 같은 다른 검증 과정도 쉽게 처리할 수 있도록 Bean Validation 제공하고 있다. Bean Validation@NotNull : null 불가@NotEmpty : null, "" 불가@NotBlank : null, "", " " 불가@Size : 문자 길이 측정@Max : 최대값@Min : 최소값@Positive : 양수@Negative : 음수@Email : Ema..
Spring Security 접근 불가 페이지 만들기
·
Spring
Spring Security에 "권한(Authority)" 설정 방법  회원 상세정보(UserDetailsImpl) 를 통해 권한 설정 가능. 권한을 1개 이상 설정 가능."권한 이름" 규칙 : "ROLE_"로 시작해야 함.예) "ADMIN" 권한 부여 → "ROLE_ADMIN" "USER" 권한 부여 → "ROLE_USER" public enum UserRoleEnum { USER(Authority.USER), // 사용자 권한 ADMIN(Authority.ADMIN); // 관리자 권한 private final String authority; UserRoleEnum(String authority) { this.authority = authority; } ..
Spring Security 프레임워크 이해하기
·
Spring
Spring Security "Spring Security" 프레임워크는 Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 준다. WebSecurityConfig@Configuration@EnableWebSecurity // Spring Security 지원을 가능하게 함public class WebSecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // CSRF 설정 http.csrf((csrf) -> csrf.disable()); http.authorizeHttpReq..
Spring의 Filter 이해하기 및 구현하기
·
Spring
Filter Filter란 Web 애플리케이션에서 관리되는 영엽으로 Client로 부터 오는 요청과 응답에 대해 최초/최종 단계의 위치이며 이를 통해 요청과 응답의 정보를 변경하거나 부가적인 기능을 추가 할 수 있다.  주로 범용적으로 처리해야 하는 작업들, 예를 들어 로깅 및 보안 처리, 인증, 인가 등에 활용 한다. Filter를 사용하면 인증/인가와 관련된 로직을 비즈니스 로직과 분리하여 관리 할 수 있다는 장점이 있다. Filter Chain  Filter는 한 개만 존재하는 것이 아니라 이렇게 여러 개가 Chain 형식으로 묶여서 처리될 수 있다. 📍 요청 URL의 인가 처리 및 인증 처리를 진행할 수 있는 Filter 구현 + 요청 URL을 로깅해주는 Filter 구현 Request URL ..
Spring에서 JWT 이해하기 + 쿠키와 세션 개념까지
·
Spring
쿠키와 세션 쿠키와 세션 모두 HTTP에 상태 정보를 유지하기 위해 사용된다. 이를 통해 서버는 클라이언트 별로 인증 및 인가를 할 수 있다.사용 예시 > 사이트 팝업의 "오늘 다시 보지 않기" 정보 저장 쿠키클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일구성요소Name 이름 : 쿠키를 구별하는데 사용되는 키 (중복 될 수 없음)Value 값 : 쿠키의 값Domain : 쿠키가 저장되는 도메인Path : 쿠키가 사용되는 경로Expires : 쿠키의 만료기한 (만료기한이 지나면 삭제 됨) 세션서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용 됨.서버에서 클라이언트 별로 유일무이한 '세션 ID'를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장 함.사용 예시 > 로그인 정보 저장  ..
Spring의 JPA와 Entity 이해하기
·
Spring
👇🏻 이전 글2024.08.06 - [Spring] - Spring의 IoC(제어의 역전), DI(의존성 주입) 이해하기  ORM과 JPA ORM : Object-Relational Mapping 객체와 데이터베이스를 매핑해주는 도구  JPA는 자바 ORM 중 대표적인 표준 명세이다.JPA는 애플리케이션과 JDBC 사이에서 동작되며 DB 연결 과정을 자동으로 처리해주고, 객체를 통해 간접적으로 DB 데이터를 다룰 수 있어 DB 작업을 보다 쉽게 처리 할 수 있다.  Entity Entity란 JPA에서 관리되는 객체. Entity는 DB의 테이블과 매핑되어 JPA에 의해 관리 됨. Memo Entity@Entity // JPA가 관리할 수 있는 Entity 클래스 지정@Table(name = "mem..