문제
OAuth나 S3를 도입 후 통합 테스트에서 불필요한 의존성 주입이 필요해 문제가 발생했습니다.

테스트 코드에서 S3Uploader를 사용하지 않는데 S3 설정을 하지 않았다고 빈 생성이 불가능한게 문제였습니다.
이 문제를 다음과 같이 해결했습니다
해결

의존성을 모킹해 빈 껍데기를 주입시켰습니다.
단점은 모든 통합 테스트마다 이러한 @MockBean 설정을 해줘야한다는 것 입니다. 이것에 대해서 떠오른 해결책은 별도의 BaseTest Class를 만들고 그곳에 MockBean을 선언해 모든 통합 테스트 코드에서 해당 클래스를 상속받도록 하면 비교적 깔끔해 질 수 있을 것 같습니다.
다음은 OAuth를 도입 후 발생한 문제입니다. 이것 역시 OAuth 관련 설정을 테스트 모듈에서 해주지 않았기 때문에 발생하는 문제인데요. 저는 OAuth Bean을 Profile에 따라 선택적으로 주입받고 싶었습니다.
예를들어, local, dev profile에서는 OAuthBean을 생성 및 주입 받고, test profile에서는 생성하지도, 주입받지도 않게 하고 싶었습니다. 그러면 위 상황처럼 MockBean을 설정할 필요도 없습니다.
일단 WebSecurityConfig에서 설정들을 profile별로 옵셔널하게 추가하고자 합니다.
아래 사진을 자세하게 보면 각 설정들이 XXConfigurer로 이루어진 것을 확인할 수 있습니다.
이 말은 즉슨, 각각의 설정을 떼어낼 수 있다는 말입니다.

여기서 OAuth 설정만 분리하고 Bean으로 등록해 @Profile 어노테이션을 통해 특정 profile에서만 빈 등록을 할 수 있도록 만들면 됩니다.
OAuth 설정은 위의 그림에 나와있듯이 OAuth2LoginConfigurer로 이루어져 있습니다. 이걸 떼어내어 다음과 같이 별도의 설정파일로 옮길 수 있습니다.

그리고 이 설정클래스를 Optional하게 주입받기 위해 다음과 같이 Optional을 이용해 주입받았습니다.
이렇게 주입을 받으면 빈이 있다면 주입이될 것이고 아니라면 empty 상태로 남을 것 입니다.

그리고 isPresent()를 통해 빈이 있다면 설정 정보를 추가한다는 의미로 다음과 같이 코드를 작성합니다.

이렇게 해서 메인 모듈의 WebSecurity 설정을 그대로 가져가 일관성있는 설정을 유지한 채 원하는 profile마다 설정을 자유롭게 할 수 있게 됐습니다.
OAuth에 대한 테스트를 하기 위해서는 @ActiveProfiles 어노테이션과 별도의 test profile을 만들어 다른 테스트에 영향을 주지 않고 선택적 설정, 빈 주입을 통해 원활한 테스트가 가능하게 된 것 같습니다.