woowacourse-teams / 2024-mouda

17 stars 6 forks source link

MASTER - SLAVE 적용을 위한 Springboot 설정 추가 #562

Closed pricelees closed 4 weeks ago

pricelees commented 4 weeks ago

PR의 목적이 무엇인가요?

이슈 ID는 무엇인가요?

설명

금일 회의에서 Springboot가 실행되지 않았던 이유는 DataSource를 여러개(Master, Slave) 등록하는 것에 대한 EntityManagerFactory 빈 등록이 없었기 때문이라 추정하였고, 따라서 EntityManagerFactory 빈을 등록하는 코드를 추가하여 해결하였습니다.

EC2에서 직접 ddl-auto를 create로 지정한 뒤 실행하여 테이블 생성 및 정상 작동은 확인하였으니 이제 기존 DB에 있는 데이터만 옮기면 될 것 같습니다.

질문 혹은 공유 사항 (Optional)

Profile("prod")가 붙은 Configuration에 대한 테스트는 진행하지 못했으나, Transactional에 따른 DataSource 지정에 대한 테스트는 작성했습니다.(RoutingDataSourceTest).

이 테스트를 위해서는 테스트 메서드에 Transactional을 지정할 수 밖에 없기에, 기존의 NoTransactionExtension과의 충돌을 방지하고자 WithTransactionalTest라는 별도의 어노테이션을 만들고 처리했어요.

참고: 블로그