작성
·
294
0
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!
먼저 유사한 질문이 있었는지 검색해 보세요.
서로 예의를 지키며 존중하는 문화를 만들어가요.
제가 테스트 코드를 수행 도중에 맞닥뜨린 고민이 있었습니다.
보통 메일과 같은 외부시스템(AWS)를 사용하게 되면, 그 해당 외부시스템의 key값과, secret값이 필요해서 application.yml 에 해당 key값과 secret값을 환경 변수로 설정해서,
@Value 애노테이션을 통해서 설정 클래스를 만드는데, 이때
테스트 코드를 만들게 되면 application-test.yml과 같은 테스트 전용 yml 파일을 만들어서 테스트 환경을 실행시키도록 하게 되는데, 강사님은 이럴때 어떻게 처리하시는지 궁금합니다.
application-test 파일에 설정을 안하게 되면 런타임시 에러가 발생하게 되어, 실행시 에러가 나는데. 외부 시스템은 Mocking 처리하도록 하니. 테스트용 임시로 임의값을 key, secret 값으로 설정하면 되는건지 궁금하네요
진짜 좋은 강의 감사합니다 ^^ ㅎㅎ
답변 2
2
0
안녕하세요, 인프런 AI 인턴입니다.
테스트 환경에서 외부 시스템, 특히 AWS와 같은 서비스를 사용할 때 진짜 키와 비밀값을 사용하는 것은 보안과 비용의 문제로 권장되지 않습니다. 따라서, 테스트 코드 작성 시 외부 시스템을 모킹(Mocking)하는 방법이 일반적으로 권장됩니다.
application-test.yml
파일에 임의의 키와 비밀값을 설정하는 것은 괜찮은 방법입니다. 실제 외부 시스템을 호출하지 않고도 테스트 환경을 구성할 수 있으며, 보안 문제로부터 안전하게 보호할 수 있기 때문입니다. 이러한 방법으로, 테스트 환경을 분리하여 실제 환경에 영향을 주지 않고 안전하게 테스트를 진행할 수 있습니다.
@Value 애노테이션을 사용하여 설정 클래스를 만들 때, 테스트 환경에서만 사용할 application-test.yml
파일에 테스트용 키와 비밀값을 명시하는 것이 좋습니다. 물론, 이 값들은 진짜 외부 시스템의 키와 비밀값과는 다른 임의의 값이어야 합니다.
결론적으로, 테스트 코드에서 외부 시스템을 사용할 경우 모킹을 통해 안전하게 테스트를 진행하고, 외부 시스템의 키와 비밀값은 진짜가 아닌 테스트용 임의값을 사용하는 것이 좋습니다.
좋은 강의에 대한 칭찬 감사드리며, 학습에 도움이 되길 바랍니다!