Transactional
요청사항 : 매니저 등록과는 별개로 로그 테이블에는 항상 요청 로그가 남아야 해요.
- 문제
- REQUIRES_NEW 옵션을 사용하여 트랜잭션을 분리하였지만 매니적 등록 실패하여 롤백시 로그도 같이 롤백된다.
- 정보 수집
- REQUIRES_NEW 옵션은 기존 트랜잭션을 보류하고 새로운 트랜잭션을 생성한다.
- 한 서비스 내에서 두 메서드가 같이 있다.
- 원인 추론
- REQUIRES_NEW을 사용하는것은 맞다. 분리 전파 속성이기때문에 하나가 롤백되어도 같이 롤백 되지 않는다.
self-invocation 문제.
- 해결방안 결정
- 구현
- 결과
self-invocation 문제
같은 클래스 내에서 자기 자신의 메서드를 호출하면 프록시를 거치지 않아서 AOP 가 적용되지 않는다.
같은 클래스 내에서 자기 자신의 메서드를 호출하면 프록시를 거치지 않아서 AOP 가 적용되지 않는다.
AWS EC2
요청사항 : EC2 인스턴스에서 어플리케이션을 실행하세요
- 문제
- 로컬에서 정상 작동 되는 어플리케이션을 github에 올리고 EC2(ubuntu)에서 git clone하고 .properties를 넣어줬지만.
환경변수를 잘 못 넣었다고 에러발생.
- 정보 수집
- 환경변수 오타 확인.
- 환경변수 세팅하는 위치 확인.
- .properties 위치 확인.
- 원인 추론
- 환경변수에 오타가 있어서 .
- 환경변수를 ubuntu 에 세팅해서 에러가 난것같다.
- properties 위치가 src/main/resources 위치가 아닌 src/resources에 있어서 에러가 났다.
- 해결방안 결정
- 오타 제대로 변경
- ubuntu/spring-plus 에 환경변수 세팅.
- .properties 위치 변경
- 구현
- 오타 변경 -> 여전히 에러
- 환경변수 세팅 -> ubuntu가 맞음.
- .properties 위치가 문제였다.
- 결과
- .properties 위치를 제대로 잘 보고 넣어야하는데