본문 바로가기

분류 전체보기100

DTO에서 @Setter쓰는 것에 대한 주저리[1] JPA를 사용하다 보면 @Setter을 사용하고자 하면 조심해야한다의 상황은 익숙하다. 하지만 우리는 비즈니스 로직에서 주로 사용하는 @Data 어노테이션은 @Setter을 내제하고 있다. https://projectlombok.org/features/Data @Data projectlombok.org https://www.inflearn.com/questions/161417/dto-%EC%82%AC%EC%9A%A9%EC%97%90%EB%8C%80%ED%95%B4-%EA%B6%81%EA%B8%88%ED%95%A9%EB%8B%88%EB%8B%A4 DTO 사용에대해 궁금합니다. - 인프런 | 질문 & 답변 안녕하세요 영한님.항상 좋은강의 보면서 이미 완강을 하였지만 궁금한점이 이 강의내용에 해당되는것 같아 .. 2023. 9. 17.
@Transactional에 대한 정리[번외] - RuntimeException와 Errorcode 애플리케이션을 개발할때 CustomException을 제작해서 따로 ErrorCode 정의 후 Exception을 떤져준다. @Transactional을 떤져서 rollback을 의도한다. 그럼 Exception과 어떻게 구성할지 조금 더 확인해보자 흔히 아는 UncheckedException(RuntimeException)과 CheckedException이 존재한다. 둘의 차이점은? 나의 본 목적은 CustomException을 제작하여 나의 Exception을 떤지면서 rollback을 진행하고 싶다. 그러면 우선 내가 만드는 CustomExcpetion은 RuntimeExcpetion을 extends하자 그럼 요기서 잠깐 CheckedException은 왜 롤백을 진행하지 않는가? 기본적으로 che.. 2023. 9. 11.
@Transactional에 대한 정리[4] - rollbackFor(Class)에 관하여 @Transactional은 UncheckedException에 대해서 rollback이 이뤄진다. 하지만 CheckedException 또한 Exception이자면 exception인데... 모든 Exception에 대해서 처리하고 싶으면 어떻게 진행해야 하늗가? @Transactional(rollbackFor = Exception.class)으로 진행한다. checked, uncehcek 둘의 부모 클래스는 결국 Exception.class이기에 @Transcational(rollbackFor = Excpetion.class)으로 보든 exception에 rollback을 진행한다. 앞서 Transaction이 진행되는 상황에서 TransactionAspectSupprt가 call 되는 상황임을 알 .. 2023. 9. 11.
@Transactional에 대한 정리[3] - rollback()에 관하여 보오오오통 @Transactional의 rollback이 UncheckedException에 반응한다는 부분은 모두가 아는 사실이다. 그럼 rollback()은 어떻게 진행되는가? @Transactional에서 rollback()이 어떻게 동작하는가? @Transactional의 docs를 따라가보면 TransactionAttribute, DefaultTransactionAttribute, RuleBasedTransactionAttribute를 확인할 수 있다. TransactionAttribute (TranscationalDefinition) https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/trans.. 2023. 9. 11.
@Transactional에 대한 정리[2] - (readOnly=true)에 관하여 @Transactional에 대한 정리 [1]에서 작성했듯이 Service단을 전체적으로 @Transactional(readOnly=true)를 적용하고 rollback을 희망하는 부분에 대해서 메소드 별로 따로 @Transactional을 적용하고 있다고 밝힌적이 있습니다. @Transactional(readOnly=true)가 기본적으로 성능 이점을 가져온다는 것은 알고 있지만 정확히 어떤 이점이 있는지에 대해서 자세히 정리 해본적이 없기에 정리해봅니다. 해당 이점은 JPA를 사용하면서 영속성 컨텍스트(Persistence Context)가 수행하는 변경 감지(Dirty Checking)과 연관 되어있습니다. JPA는 사용하면 작업을 쭈우우우욱 진행하고 쓰기 지연 저장소에 있는 SQL query를 f.. 2023. 9. 11.
@Transactional에 대한 정리 [1] Service단에서 주로 사용하는 @Transactional(readOnly=true)에 대해서 정리할 겸 @Transactional을 정리해보고자 한다. 우선 Transactional의 기본 docs를 살펴보자 https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/annotation/Transactional.html Transactional (Spring Framework 6.0.11 API) Describes a transaction attribute on an individual method or on a class. When this annotation is declared at.. 2023. 9. 11.