해결된 질문
작성
·
556
답변 1
5
안녕하세요. 윤승환님
생성자에서 주입하게 되면 애플리케이션 실행 시점에 최초에 딱 1번만 설정하고 끝이납니다.
메소드나 setter를 이용하게 되면 누군가 실수로 중간에 변경할 수도 있습니다.
이 경우 setter로 중간에 변경하는 타이밍에 동시성 문제가 발생할 수 있습니다.(이미 고객 요청이 막들어오고 있는 상황이니까요)
반면에 생성자를 주입하게 되면 고객의 요청이 들어오기 전에 모든 것이 완성이 됩니다. (setter 주입도 처음에 고객의 요청이 들어오기전에 완성이 됩니다. 대신에 누군가 중간에 변경할 때 문제가 될 수 있습니다.)
여기서 핵심은 동시성이 사실 문제라기 보다는 중간에 변경하면 안되는 것을 setter가 있다고 누군가 실수로 중간에 변경하는 것 자체가 문제를 열어두게 된다는 점입니다.
감사합니다.