소개
게시글
질문&답변
현재 7버전 이용중인데 -XPOST 시 에러가 발생합니다.
8버전부터는 아래처럼 하도록 변경됨curl -XPOST localhost:9200/classes/_doc/ -d '{"title" : "ElasticSearch", "professor" : "MinsukHeo"}' -H 'Content-Type: application/json'
- 10
- 3
- 589
질문&답변
트랜잭션 ReadOnly 컨트롤 질문드립니다.
(사진)세부적으로 테스트를 진행하다가 좀 이상한게 있어서 공유드립니다.이전 테스트로 @Transactional이 설정된 메소드에서 불러온 하위 @Transactional이 설정된 메소드의 리드온리 설정들은 먹히지 않는 것을 확인하였습니다.이후에 테스트를 진행한 것은 @Transactional ReadOnly = false를 상위 메소드에서 일괄 적용한 비지니스 로직의 처리 속도와 @Transactional을 상위 메소드에는 적용하지 않은 체 세부적으로 select 메소드에는 ReadOnly로 , insert와 update에는 ReadOnly를 false로 설정한 메소드의 처리 시간을 비교해보았습니다.일반적으로 생각했을때에는 세부적으로 설정한 것이 좀더 빠르지 않을까 생각하였는데요. 테스트를 해보니 오히려 전체적 메소드 처리에 @Transactional (ReadOnly = false)을 건 메소드가 약 40퍼센트 더 빨랐습니다.전체적으로 트랜잭션을 건 메소드 평균 처리시간 : 약 2.5초세부적으로 트랜잭션을 건 메소드 평균 처리시간 : 4초평균 차이시간이 1.5초이상이니 굉장히 의미가 있는 결과라고 생각이 드네요.@Transactional 어노테이션을 쉽게 붙이지만 반대로 내부에서는 리소스가 많이 소모되는 것일지도 모르겠네요.이와 별개로 몇가지 테스트를 해보고 이 주제는 마무리 해야겠네요.
- 1
- 3
- 1.5K
질문&답변
트랜잭션 ReadOnly 컨트롤 질문드립니다.
현재 테스트한 내용을 공유합니다.우선 리드온리가 설정이 메소드에서 변경이 가능 한 것인지, 서비스 별로 설정이 되는지 확인하였습니다.테스트 방법은 1. ReadOnly가 적용되지 않은 서비스에서 리스트를 가져온다 .2. ReadOnly가 적용된 서비스 or ReadOnly를 적용하여 리스트를 가져온다.3. 두 리스트의 값들을 변경하여 더티체킹이 발생하는 지 확인한다.입니다. 트랜잭션을 True에서 False로 변경을 시도하고 False에서 True로도 변경을 시도해보며 여러 테스트를 진행해보았습니다.결론적으로는 메서드를 처음 불러올 때의 설정이 바뀌지는 않았습니다. 그러니까 이미 트랜잭션으로 감싼 뒤에는 TransactionSynchronizationManager.setCurrentTransactionReadOnly를 활용해보고 isCurrentTransactionReadOnly가 정상적으로 바뀌는 것은 확인하였지만, 처음 리드온리된 리스트의 경우에는 더티체킹이 발생하지 않았고, 반대의 경우에는 더티체킹이 발생하였습니다.테스트 한 리파지토리도 공유드립니다. https://github.com/parkjun5/TransactionAdvance/commit/4f14ecbfdff8c016b3108eea0583221ac45b8ce7좀더 강의를 들어보며 트랜잭션에 대해 공부하고 다시 테스트를 해봐야겠네요.
- 1
- 3
- 1.5K
질문&답변
테스트 시 테이블 생성 방법
그렇군요. JPA에 종속적인 방식이라는 단점이 있겠네요.생각을 해보니 JPA환경에서 schema.sql파일과 spring.jpa.hibernate.ddl-auto=create을 둘 다 설정하면 어떤 설정이 우선시 되어 가져가 질 지 궁금증이 생기네요.한번 테스트 해봐야 할 것 같습니다.감사합니다.
- 1
- 2
- 549