이번에는 Spring Cloud Cloud 설정 파일 주소를 SSL로 연결 설정 해보도록 하겠습니다. 1. Spring Cloud Config 설정 파일 내용을 갱신하는 방법 [ Spring Cloud Config 설정 파일 내용을 갱신하는 방법 ] 스프링 클라우드를 통해 깃 주소에서 관리하는 설정 파일에 변경이 필요할 수 있다. 그런데 별다른 설정 없이는 설정 파일이 변경되어도 변경사항이 설정 클라이언트(Spring Cloud Config Client)에 반영되지 않는다. 왜냐하면 설정 서버(Spring Cloud Config Server)에 부하를 줄이도록 애플리케이션을 실행 시점에 1번 설정 정보를 읽고 로컬에 캐싱해두기 때문이다. 만약 배포 후에 잘못된 값이 발견되었다면 설정 값 때문에 다시 배포..
이번에는 Spring Cloud Config에 대해 간단히 알아보고, 설정해보도록 하겠습니다. 1. Spring Cloud Config란? [ Spring Cloud Config란? ] Spring Cloud Config는 분산 시스템에서 외부화된 설정 정보를 서버 및 클라이언트에게 제공하는 시스템이다. 설정 서버는(Config Server)는 외부에서 모든 환경에 대한 정보들을 관리해주는 중앙 서버이다. 기본적으로 설정 정보 저장을 위해 git을 사용하도록 되어있어서 손쉽게 외부 도구들로 접근 가능하고, 버전 관리도 가능하다. Spring Cloud Config Server(설정 서버): 버전 관리 레포지토리로 백업된 중앙 집중식 구성 노출을 지원한다. Spring Cloud Config Client(..
개발을 하다 보면 추상화를 위해 하나의 인터페이스 또는 추상 클래스가 여러 구현체를 갖는 경우가 자주 있습니다. 이때 특정 타입의 구현체를 찾아주어야 하는 팩토리 클래스를 만드는 것이 불가피한데, 이 팩토리 클래스를 유연하게 만드는 방법에 대해 알아보도록 하겠습니다. 1. if-else로 팩토리 클래스 구현하기 [ if-else로 팩토리 클래스 구현하기 ] 우리가 다양한 로그인 방법을 지원하기 위해 이를 LoginService라는 하나의 인터페이스를 만들고, 웹 로그인, 모바일 로그인, SNS 로그인과 같이 3가지 구현체를 두었다고 하자. public interface LoginService { void login(); } LoginController에서는 로그인 타입을 파라미터로 받아서, 타입에 맞는 ..
이번에는 @WebMvcTest가 갖는 한계와 이를 극복하기 위해 직접 개발해본 라이브러리를 소개해보고자 합니다. 매우 초기 버전인만큼 어떠한 버그와 문제가 나올지 모르지만, 써보시고 이슈 등록이나 문제점 공유 등 해주시면 감사드리겠습니다! 1. 커스텀 라이브러리 구현(feat. AutoMock) [ 요구사항 ] 앞선 포스팅에서 @WebMvcTest가 갖는 한계점들을 알아보았다. 그리고 이러한 문제를 해결하고자 직접 커스텀 라이브러리를 구현하고자 하였는데, 개인적으로 작성한 요구사항은 다음과 같다. @WebMvcTest를 사용할 것 @MockBean과 @SpyBean을 사용하지 않고 가짜 객체를 지원할 것 애플리케이션 컨텍스트를 재사용할 것 1. @WebMvcTest를 사용하여 설정을 자동화할 것 @Web..
이번에는 @WebMvcTest가 갖는 한계와 이를 극복하기 위해 직접 개발해본 라이브러리를 소개해보고자 합니다. 매우 초기 버전인만큼 어떠한 버그와 문제가 나올지 모르지만, 써보시고 이슈 등록이나 문제점 공유 등 해주시면 감사드리겠습니다! 1. @WebMvcTest에 의해 느려지는 테스트 속도 [ @WebMvcTest에 대하여 ] 스프링부트는 편리한 테스트를 위한 다양한 테스트 어노테이션을 제공하고 있다. 그 중에서 @WebMvcTest는 컨트롤러 계층 만을 슬라이스 테스트할 수 있도록 도와주는 어노테이션이며, 다음과 같이 사용된다. @WebMvcTest(MemberController.class) class MemberControllerTest { @MockBean private MemberService..