작성
·
447
·
수정됨
0
제가 아직 초보 개발자라 막연히 setter 사용은 지양하는게 좋다고 배워서 실무에서는 다른지 궁금합니다.
setter 를 열어두면 빈으로 등록된 AppConfig 의 불변성을 보장할 수 없게 되는게 아닌가 해서 질문드립니다.
https://mangkyu.tistory.com/189
위 블로그를 보면 @ConfigurationProperties 를 setter 없이 생성자로 할 수도 있는것 같아서요.
혹시 제가 너무 setter 사용을 지양하라는 말에 매몰돼있는건 아닐까 고민도 되네요.
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
@ConfigurationProperties 어노테이션을 사용할 때 setter 메소드를 사용하는 것은 일반적인 방법입니다. 하지만, setter 메소드를 사용하면 해당 필드가 변경될 수 있는 가능성이 있어 빈으로 등록된 AppConfig의 불변성이 보장되지 않을 수 있습니다.
그러나, @ConfigurationProperties 어노테이션을 사용할 때 setter 대신 생성자를 이용하여 값을 주입하는 방법도 가능합니다. 이렇게 할 경우, 해당 필드는 생성자 호출 시에 한 번만 값을 설정하므로 불변성을 보장할 수 있습니다.
설정 값이 변경되지 않고 고정된 경우에는 생성자를 사용하는 것이 좋은 방법일 수 있습니다. 하지만 설정 값이 변경될 가능성이 있는 경우에는 setter 메소드를 사용하여 값을 변경할 수 있도록 해야합니다.
배움의 과정에서 다양한 접근 방식과 패턴을 배우는 것이 중요합니다. 어떤 방식을 사용할지는 개발자의 상황과 요구에 따라 다를 수 있으며, 적절한 판단이 필요합니다. 결국은 더 나은 코드를 작성하는 것이 목표입니다.
더 많은 정보를 원하신다면 참고하신 블로그뿐만 아니라 스프링 공식 문서나 다른 자료들도 참고하시면 도움이 될 것입니다.
질문이 있으면 언제든지 물어보세요. 좋은 개발자가 되실 수 있도록 응원합니다. 수고하세요!
답변 감사합니다. 엄준식 사원 덕분에 이해가 쏙쏙 잘 되었습니다 ㅋㅋㅋ