인프런 커뮤니티 질문&답변

edu student02님의 프로필 이미지
edu student02

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Spring Cloud Gateway - Filter 적용

spring gateway 설정에서의 application.yml vs pojo configuration

작성

·

625

1

안녕하세요 도원님 강의 정말 잘 보고 있습니다.
 
apigateway-service는 "api gateway를 담당하는 application 서버로써의 역할을 목적으로 한다." 로 해석되는데요.
운영 레벨의 서버를 만들 때 application.yml 을 통해 설정하는것과 본 강의 처럼 pojo로 configuration 하는것 중에..
 
어떤 것이 더 나은 선택일지.
장단점이 무엇인지 더 자세하게 궁금합니다.
 
감사합니다.

답변 1

7

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

Spring Framework에서 초기 설정을 XML 파일로만 했던 거에 비해 Spring 3.2.x 버전부터는 Annotation을 통해 DI나 Bean의 사용이 가능해졌습니다. 내부적인 복잡한 처리 과정이나, 속도 문제 등을 떠나서 이 부분을 결정하는 주요인은 작업의 스타일과 편의성으로 갈라진다고 생각합니다. 제 경험으로 예전에 근무했었던 금융회사의 리더도 XML을 고집하는 쪽이었으며, 그 편이 스프링 빈의 생성이나 관계를 쉽게 파악할 수 있다는게 이유였습니다. 덕분에(?) 스프링 버전을 2.5.x로 유지하면서 개발했었습니다. 

문의하신 질문은 application.yml 파일(설정 파일)과 Configuration 클래스(자바 설정 클래스)에 대한 내용인 것 같습니다. Configuration 클래스를 사용하면, 자바 컴파일러에 의해 문법적인 오류를 바로 찾을 수 있습니다. 컴퍼일러에 의해 빈 클래스가 제대로 매칭 된 것인지도 구분할 수 있습니다. 상대적으로 application.yml과 같은 설정 파일의 경우는 작성하기 쉽고, 불필요한 자바 코드 없이 사용할 수 있으며, 어느 정도까지의 매핑관계는 쉽게 파악할 수 있습니다.

그러나, Gateway의 역할이 커지고, 라우팅 해야하는 양이 늘어나고, 구분해야할 카테고리가 많다면 자바 클래스로 처리하는 게 유리할 수 있다고 생각됩니다. 물론 application.yml 파일로 여러개 분리하실 수도 있겠지만, 용도나 기준에 맞춰 클래스로 구분하는 게 더 효율적이라고 생각됩니다. 어디까지나 제 주관적인 생각이고, 미리 어떤것이 좋은지, 장단점이 결정하고 작업하시기 보다는, 몇가지 작업 진행하면서, 관맂의 편의성과 개발 시간의 단축 등을 고려하셔서 선택하시면 어떨가 합니다. 

감사합니다. 

edu student02님의 프로필 이미지
edu student02

작성한 질문수

질문하기