Development/Spring
-
Spring Data JPA Custom Query Method는 왜 SimpleJpaRepository의 @Transactional을 상속받지 못할까Development/Spring 2026. 5. 4. 00:45
TL;DRSimpleJpaRepository에는 클래스 레벨 @Transactional(readOnly = true)와 쓰기 메서드(save, delete*)에 메서드 레벨 @Transactional이 붙어 있다.이 어노테이션들은 SimpleJpaRepository에 실제로 정의된 메서드를 호출할 때만 적용된다.findByName(...), @Query("...") 같은 사용자 정의(custom) query method는 SimpleJpaRepository에 시그니처 자체가 없기 때문에, Spring Data가 사용하는 RepositoryAnnotationTransactionAttributeSource의 fallback 경로에서 조기 종료되어 트랜잭션 어트리뷰트가 매칭되지 않는다.Repository pr..
-
[Spring Boot] logback 설정Development/Spring 2020. 11. 10. 01:45
logback Spring Boot를 이용하면 로그 데이터를 남길 수 있도록 아래와 같이 logback과 logback의 퍼사드인 slf4j가 자동으로 추가됩니다. Log Level trace < debug < info < warn < error 오른쪽으로 갈 수록 높은 레벨을 가집니다. 설정된 로그 레벨에 따라 설정 레벨 이상의 로그를 출력합니다. 만약 설정된 로그 레벨이 info라면, trace와 debug 수준의 로그는 출력하지 않습니다. Appender ch.qos.logback.core.ConsoleAppender 로그를 OutputStream에 write하여 console 창에 로깅 메시지를 출력합니다. ch.qos.logback.core.FileAppender 로그를 File에 write합니..
-
[Spring Boot] JSP 설정하기Development/Spring 2019. 12. 4. 16:13
스프링 부트에서는 기본적으로 JSP 를 지원하지 않으므로 몇 가지 설정을 해주어야 합니다. 먼저 아래와 같이 pom.xml에 의존성을 추가합니다. javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper 의존성을 추가하고 나면 jsp 경로 설정을 위해 application.yml 값을 아래와 같이 추가해줍니다. spring: mvc: view: prefix: /WEB-INF/views/ suffix: .jsp application.yml 에서 설정한대로 디렉터리를 생성합니다. 경로는 src/main/webapp/WEB-INF/view 입니다. 생성된 경로대로 jsp 파일을 인식하는지 확인해보기 위해 간단하게 hello 페이지를 만들어보겠습니다. vi..
-
[Spring Security] CORS 에 대하여Development/Spring 2019. 11. 11. 03:26
CORS (Cross-Origin Resource Sharing) CORS란 웹 어플리케이션의 도메인이 다른 도메인의 리소스에 대해서 접근이 허용되는지 체크하는 매커니즘입니다. 웹 어플리케이션은 리소스를 요청하는 서버의 도메인, 프로토콜 또는 포트가 다를 경우, cross-origin HTTP request 요청을 실행합니다. 보안상의 이유로, 브라우저는 cross-origin HTTP request에 대해서 same-origin policy를 적용하여 동작합니다. 즉, a.com 이라는 도메인의 클라이언트에서 리소스를 요청할 때는 a.com 이라는 도메인의 서버일 경우에 CORS 문제가 발생하지 않고 정상적으로 동작합니다. 만약 두 도메인이 서로 다르다면, CORS에 대해 Header 설정을 해주어야 ..