20강 트랜잭션과 로깅
- 목차
- 내용
- 스프링 선언적 트랜잭션 종류
- 스프링 로깅 방식
- 학습 목표
- 스프링에서의 트랜잭션을 처리하는 방식을 이해하고 구현
- 스프링에서의 로깅 방식과 SLF4J 와 LogBack 을 이용하여 로깅을 구현
- 내용
- 스프링 트랜잭션
- 선언적 트랜잭션 (3가지있음) - 스프링은 선언적 트랜잭션 방식을 사용
- 어노테이션을 이용한 선언적 방식
- AOP를 이용한 선언적 방식
- 프로그램에 의한 트랜잭션 처리 (권장되지 않음)
- 스프링에서 트랜잭션 처리 모범사례
- 선언적 방식에 의한 트랜잭션 처리
- 트랜잭션은 주로 서비스 메소드를 대상으로 함
- 선언적 트랜잭션 (3가지있음) - 스프링은 선언적 트랜잭션 방식을 사용
- 어노테이션에 의한 트랜잭션
- 트랜잭션이 필요한 클래스나 메소드에 @Transactional 어노테이션을 추가한다는 의미임.
- @root-context.xml 에 Transaction Manager 를 설정
- <tx:annotation-driven ../> 설정과 bean 추가.
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name="dataSource" ref="dataSource" />
</bean> - 주로 서비스 클래스에서 사용.
- AOP를 이용한 트랜잭션 방법
- 트랜잭션 매니저 설정
- 트랜잭션 어드바이스 설정
- AOP 설정
- SLF4J / LogBack F4J / LogBack 을 이용한 로그 남기기
- Java 진영에는 많은 로깅툴이 존재함.
- commons-logging
- log4j
- java util logging
- logback
- 이전에는 log4j와 commons-logging이 주로 사용되었고,
심지어 Spring도 commons-logging을 사용해 로그를 남기고 있음. - 하지만 SLF4J가 나온 이후 수많은 오픈소스 프로젝트가 SLF4J를 택하고 있음.
- 여러 오픈소스 프로젝트를 사용하다 보면 Logging Tool이 혼재되어 충돌이 되는 경우가 빈번한데, 이를 경우 Logging Tool을 통일시켜 주어야 함.
- 이 중 가장 최근에 나오고 가장 많이 사용되고 있는 SLF4J, Logback으로 통일되는 추세임.
- Java 진영에는 많은 로깅툴이 존재함.
- SLF4J, LogBack Dependency 추가
- 자바 내부에서 기본으로 사용하는 commons-logging 을 exclusion 해주어야 함.
- LogBack 설정
- LogBack Logger / Appender 추가
- 콘솔과 파일에 대해 생성되는 로그를 설정 가능하며
- root level 태그를 통해 로그가 출력되는 부분을 추가할 수 있습니다.
- <logger> 와 <root> 의 level 의 통일
- Logback Log의 패턴
- Logback Log Level
- Logback.xml 파일명 변경 및 적용
'Room 102. Back-end > Spring' 카테고리의 다른 글
[실전 개발자를 위한 Spring Framework ] 강의 - 인터셉터/로그인 처리 (0) | 2020.05.31 |
---|---|
[실전 개발자를 위한 Spring Framework ] 강의 - 예외 처리 (0) | 2020.05.31 |
[실전 개발자를 위한 Spring Framework ] 강의 - AOP (0) | 2020.05.31 |
[실전 개발자를 위한 Spring Framework ] 강의 - MyBatis (0) | 2020.05.31 |
[실전 개발자를 위한 Spring Framework ] 강의 - Context 분리와 전략 (0) | 2020.05.31 |