Spring3 CORS·XSS·헤더 보안: SPA/REST 현실 설정 CORS·XSS·헤더 보안: SPA/REST 현실 설정프런트엔드가 분리된 SPA 아키텍처에서는 CORS와 보안 헤더가 기본입니다. 여기에 CSP(Content-Security-Policy)로 스크립트 로드를 통제하고, 템플릿/응답에서 XSS를 예방해야 합니다. 이 글은 Spring Security 6 기준으로 실제 운영에서 무난하게 쓰는 설정을 정리합니다.1) CORS: 정확한 Origin만 허용@Configurationpublic class CorsCfg { @Bean CorsConfigurationSource corsConfigurationSource() { CorsConfiguration c = new CorsConfiguration(); // 정확한 오리진만 명시(와일드카드 X). .. 2025. 10. 14. @Transactional 전파/고립수준 이해 @Transactional 전파/고립수준 이해스프링 트랜잭션은 기본만 알아도 충분할 것 같지만, 실제로는 전파(Propagation)와 고립수준(Isolation)을 모르면 장애가 납니다. 본문은 자주 틀리는 경우를 중심으로 “왜” 그런지와 “어떻게” 해결하는지 코드를 통해 설명합니다.전파(Propagation) 핵심만 정리REQUIRED(기본): 현재 트랜잭션이 있으면 합류, 없으면 새로 시작REQUIRES_NEW: 무조건 새 트랜잭션 시작(기존은 일시 정지)SUPPORTS/NOT_SUPPORTED: 있어도/없어도 수행, 또는 트랜잭션 없이 수행MANDATORY/NEVER: 반드시 필요/있으면 안 됨NESTED: 동일 트랜잭션 내 세이브포인트(JDBC/드라이버 지원 필요)예시: 알림 실패는 롤백시키지 .. 2025. 10. 3. IntelliJ 생산성: 라이브 템플릿 10개 IntelliJ 생산성: 라이브 템플릿 10개반복해서 타이핑하는 코드가 있다면 Live Template로 치환하세요.Settings → Editor → Live Templates에서 등록하고 Context를 Java또는 Java Statement로 지정하면, 축약어만 입력해 몇 초 만에 표준 형태를 완성할 수 있습니다.아래 10개는 현업에서 바로 쓰는 템플릿과 변수 예시입니다.사용 팁$END$: 커서 최종 위치$SELECTION$: 선택 영역을 템플릿에 삽입함수 매크로: methodName(), className(), date()1) gwt – Given/When/Then 테스트 스켈레톤@Test @DisplayName("$DESC$")void $NAME$() { // Given $END$ // W.. 2025. 10. 1. 이전 1 다음