Inner class로 Config를 지정하는 이유
58
42 câu hỏi đã được viết
안녕하세요. 우선 좋은 강의 만들어주셔서 감사합니다!
강의를 듣다가 CustomFilter Class 자체를 Config로 사용하지 않고, 따로 Inner Class를 Config로 설계하셨는지 궁금합니다!
Câu trả lời 2
0
안녕하세요, 이도원입니다.
Inner Config 클래스는 해당 Gateway Filter에 필요한 설정값을 필터 내부에 캡슐화하고, Spring Cloud Gateway의 설정 바인딩 구조와 자연스럽게 연결하기 위한 용도로 사용됩니다.
Config를 CustomFilter의 inner class로 두는 장점을 간단하게 정리하면 다음과 같습니다.
필터 전용 설정을 한 곳에 묶을 수 있음
Config가 CustomFilter에서만 사용된다면 별도 파일로 분리하는 것보다 응집도가 높습니다.
설정값 바인딩이 쉬움
AbstractGatewayFilterFactory<CustomFilter.Config>와 연결되어 YAML/Properties의 필터 파라미터를 Config 객체로 받을 수 있습니다.
가독성이 좋아짐
필터 동작과 그 필터가 사용하는 설정 구조를 같은 클래스에서 확인할 수 있습니다.
불필요한 클래스 증가 방지
작은 설정 객체를 위해 별도 Java 파일을 만들 필요가 없습니다.
필터별 설정 캡슐화
다른 필터의 설정과 섞이지 않고 CustomFilter.Config라는 명확한 범위를 가집니다.
추가 문의사항 있으시면 글 남겨 주세요.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. nick님
CustomFilter 자체를 설정 클래스로 사용하기보다 별도의 Config 내부 클래스를 두는 이유는, 필터의 동작 로직과 필터 생성에 필요한 설정값을 분리하기 위해서입니다.
Spring Cloud Gateway의 AbstractGatewayFilterFactory 계열 필터는 일반적으로 Config 클래스를 통해 필터 설정값을 전달받고, apply() 메서드에서 실제 GatewayFilter를 생성하는 구조를 사용합니다. 따라서 CustomFilter는 필터 동작을 담당하고, 내부 Config 클래스는 해당 필터에 필요한 설정 정보를 담는 역할을 수행합니다. 이 구조를 사용하면 YAML 설정이나 Java DSL에서 필터별 옵션을 관리하기 쉽고, 설정 객체를 재사용하기도 편리합니다.
관련하여 FilterConfig에서 커스텀 필터를 Java 코드로 등록하는 방법은 아래 답변을 참고해 주세요.
custom, global filter yaml파일이 아닌 자바 소스에 설정하는 방법 문의드립니다.
해당 답변에는 AuthorizationHeaderFilter.Config를 생성하여 apply() 메서드에 전달하는 예제가 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
장애 격리 관련해서 궁금한 부분이 있어요
0
50
2
service-discovery 프로세스 가동 이유
0
78
2
rabbitmq에 configservice 연결에 대해 질문있습니다.
0
100
1
kafka 업데이트 강의 듣고 시포요
0
185
2
강의 교안
0
156
2
마이크로서비스간 통신 시, 인증 처리
0
168
2
api gateway 에서 인증 처리
0
110
1
섹션 19 질문드립니다
0
133
2
강의 자료 업데이트
0
146
2
부하분산 강의 섹션
0
99
1
강의자료는 어디에서?
0
137
2
강의 자료는 어디서 다운 받을 수 있나요?
0
180
2
전체 사용자 조회시 오류
0
93
1
혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??
0
172
2
학습 방향
0
147
2
카프카 커넥터 사용 목적 문의
0
137
2
kafka 강의
0
164
2
서비스 디스커버리 종류
0
130
2
강의 자료에 대해서 궁금해요
0
177
2
GlobalFilter, LoggingFilter가 동작하지 않습니다.
0
139
2
Kafka Source Connect 버전 에러
0
140
2
소스커넥터는 사용안한 거 맞죠?
0
134
2
강의자료 업데이트 문의
0
126
2
강의에서 BCryptPasswordEncoder 에 역할(5-2)
0
93
1

