본문 바로가기

분류 전체보기363

트랜잭션의 성질 (ACID) 설명 트랜잭션의 성질 (ACID) Atomic (원자성) 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. 트랜잭션의 모든 연산들은 정상적으로 수행 완료되거나 아니면 전혀 어떠한 연산도 수행되지 않은 상태 Consistency (일관성) 트랜잭션 완료 후에도 데이터베이스가 일관된 상태로 유지되어야 함. 금액의 데이터 타입이 정수형 인데 갑자기 문자열이 되지는 않음. Isolation (독립성) 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다. Durable (지속성) 성공적으로 수행된 트랜잭션은 영원히 반영 (수행된 이후 장애가 나든 뭘하든 데이터를 지속성있게 유지해야 함.) 전형적으로 모든 트랜잭션은 로그로 남고 시스템 장애 발생.. 2020. 10. 22.
MyBatis, Jpa 2개를 동시에 처리하는 트랜잭션 매니저 MyBatis, Jpa 2개를 동시에 처리하는 트랜잭션 매니저 JpaTransactionManager Spring 은 PlatformTransactionManager 인터페이스를 사용 Jpa 는 JpaTrasactionManager 을 사용하고 있는데 DataSource 에 직접 접근해서 사용하기에 Jpa, MyBatis 를 묶을 수 있다. 이 때, MyBatis-Spring 은 SqlSession 이 아닌 SpringTransaction 에 트랜잭션을 위임 (그렇기에 묶을 수 있음) ChaniedTransactionManager 트랜잭션 묶는 원리가 그냥 순차적으로 트랜잭션을 실행 reference https://lemontia.tistory.com/907 2020. 10. 21.
aop 와 weaving 설명 AOP 와 weaving AOP 는 공통되는 횡단 관심사를 공통으로 모아 별도로 구현해놓은 것. PointCut, JoinPoint, Aspect 등을 이용해서 횡단 관심사를 공통으로 구현할 수 있게 제공해준느 것 예를 들면, 메소드 앞 뒤로 시작로그와 종료로그를 찍을 수 있음. Weaving 은 횡단 관심사를 직접 호출하지 않고 관련 횡단 관심코드를 삽입되도록하는 방법 즉, AOP 를 적용시키는 방법이지. Compile 을 통해 weaving 할 수 있고. BCI 를 통해 weaving 할 수 있음. 2020. 10. 19.
@SpringBootApplication 어노테이션이란? @SpringBootApplication 어노테이션이란? ComponentScan, SpringBootConfiguration, EnableAutoConfiguration 으로 이루어 짐. @ComponentScan root 패키지에서 빈검색을 진행한다. @SpringBootApplication 이 선언된 클래스의 패키지를 루트 패키지라 생각하면 됨. @Component, @Bean, @Service 등 @EnableAutoConfiguration 미리 정의되어 있는 빈을 등록해준다. 미리 정의되어 있는 빈은 Spring-boot-autoconfigure 외부 라이브러리에 spring.factoires 에 등록돼있음. @SpringBootConfiguration SpringBoot 의 @Configura.. 2020. 10. 18.