본문 바로가기

☕Java103

스프링 국제화(Internationalization, I18N) 스프링 웹 MVC는 국제화를 단순화하도록 지원해 준다. 국제화를 위해서는 LocaleResolver, MessageSource, LocaleChangeInterceptor의 빈 등록이 필요하다. LocaleResolver는 사용자의 로케일을 얻는다. AcceptHeaderLocaleResolver - 요청의 Accept-Language 헤더 상의 로케일을 반환한다. SessionLocaleResolver - 세션에 저장된 로케일을 반환한다. FixedLocaleResolver - 고정된 기본 로케일을 반환한다. MessageSource는 현재 로케일에 맞는 메시지를 가져온다. ResourceBundleMessageSource - 특정 빈 이름으로 자원 번들에 접근하는 MessageSource 구현체 Re.. 2024. 4. 2.
Querydsl 주요 내용 정리 Querydsl을 사용하면 컴파일 시점에 SQL 오류를 잡을 수 있음 Q클래스(타입)를 직접 생성(new)하거나 이미 생성돼 있는 객체를 사용하면 됨 cf) Q클래스는 메타모델 클래스라고도 함. 이는 Criteria API나 Querydsl에서 보편적으로 쓰이는 용어. 보통은 생성된 객체 사용하고, 같은 테이블을 조인해야 하는 경우에만 직접 작성 사용 방법(단건 조회) JPAQueryFactory queryFactory; // 직접 생성하거나 스프링을 통해 주입 queryFactory.select(Q타입).from(Q타입).where(Q타입.필드.eq(조건)).fetchOne(); queryFactory.selectFrom(Q타입).where(Q타입.필드.eq(조건)).fetchOne(); queryFa.. 2024. 3. 27.
스프링 엔티티 매핑 애너테이션 정리 타입 애너테이션 @Entity - JPA에서 엔티티로 관리할 클래스(엔티티명) @Table - 매핑 대상 테이블 관련 설정(테이블명, 카탈로그, 스키마, 유니크 키 제약 조건) @Acces - DB 접근 방식(AccessType.FIELD, AccessType.PROPERTY) 필드 접근은 필드에 직접 접근. private도 접근 가능. 프로퍼티 접근은 getter 이용하여 접근. 필드 애너테이션 @Id - 기본키 @GeneratedValue - 기본키 생성 전략(IDENTITY, SEQUENCE, TABLE) @Column - 칼럼 매핑. 칼럼명과 제약조건들 설정(칼럼명, length, nullable, unique, precision(전체 자릿수), scale(소수 자릿수), columnDefinit.. 2024. 3. 23.
스프링 시큐리티로 CSRF 방지 설정하기 CSRF 공격이란? CSRF(Cross Site Request Forgery) 공격은 사용자가 의도하지 않은 요청을 악용하여 악의적인 행위를 유도하는 기법이다. 웹 애플리케이션은 일반적으로 사용자를 인증하기 위해 세션 쿠키나 인증 토큰을 사용하는데, CSRF 공격자는 이 인증 정보를 이용하여 피해자인 것처럼 요청을 보낸다. 이를 통해 공격자는 피해자의 권한으로 악의적인 동작을 수행할 수 있다. 예를 들어, 피해자가 로그인한 상태에서 공격자가 조작한 링크를 클릭하면, 웹 애플리케이션은 피해자의 인증 정보를 사용하여 공격자가 조작한 요청을 수행한다. 이로써 공격자는 피해자의 계정으로 의도하지 않은 동작을 수행할 수 있게 된다. 스프링 시큐리티에서는 기본적으로 CSRF 방지를 활성화한다. HttpSecurit.. 2024. 3. 17.
728x90