작성
·
347
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
빈 생명주기 콜백 시작 강의 17:38 설명을 보면
객체와 생성과 초기화를 분리해서
생성자에 파라미터로 받는 것은 되도록이면 지양하라고 설명해주셨고
예시로 setXXXX( 파라미터), setter를 사용하셨습니다.
바로 전 강의에서 의존관계 자동주입 @Autowired를 사용할 땐 생성자 초기화를 주로 하고
수정자(setter)는 생성자 초기화를 사용하지 않을때 가끔 사용하라고 하셔서
두 내용이 머릿속에서 충돌하고 헷갈립니다!
어떤 부분이 다른건가요? 제가 이해를 잘못한건지 궁금합니다.
답변 기다리겠습니다 감사합니다
답변 2
2
안녕하세요. mylazysundaycat님
17:40에 보면 생성자는 필수 정보(파라미터)를 받고, 라고 설명이 되어 있는데요. 이것은 setXxx라는 의미가 아니라 생성자에 있는 파라미터(매개변수)를 의미합니다.
따라서 같은 뜻으로 이해하시면 됩니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
mylazysundaycat님께서 질문하신 “생성자 초기화 vs 초기화 콜백”에 대한 혼돈에 대해서는, 다음 링크에서 유사한 문제에 대한 답변을 확인하실 수 있습니다.
EntityManager @Autowired 질문 - 김영한 강사님이 말씀하신 것처럼 생성자가 하나만 있을 때 스프링은 자동으로 @Autowired를 붙여줍니다. 이는 생명주기 콜백과는 다른 이야기이며, 여기서 @Autowired 언급은 생성자를 통한 의존성 주입에 관한 것입니다. 정확한 적용 시나리오를 이해하시려면 이 댓글을 확인해보시는 것이 좋을 것 같습니다.
생성자 주입을 사용하는 경우 생성과 초기화의 분리 - 이 질문에서는 생성자 주입 시에 초기화 작업이 가능한지에 대한 질문에 대해, 생성자 내에서 초기화를 진행해도 된다는 설명이 포함되어 있습니다. 본질적으로 해당 질문은 객체의 생성 단계와 초기화 단계를 분리하는 것과 관련이 있습니다.
해당 이슈에 대해 혼란스러워하실 때, 기본적으로 ‘생성자 주입’은 의존성 주입을 위한 안전하고 권장되는 방법입니다. 반면, ‘초기화 콜백’은 객체가 완전히 생성된 후에 실행되어야 하는 초기화 작업을 위한 것입니다. 예로, 외부 리소스 연결이나 무거운 리소스 초기화 등의 작업입니다.
이 두 개념은 상황에 따라 서로 다른 단계에서 사용됩니다. 생성자 주입은 주로 객체 생성시 의존성을 안전하게 주입하는 데 사용되며, 생명주기 콜백은 모든 의존성이 주입된 후에 필요한 초기화를 수행할 때 사용됩니다.
혼돈의 여지가 있는 부분이기 때문에, 질문과 관련된 구체적인 상황 또는 적용 사례에 대해서 좀 더 직접적인 해답이 필요하다면, 해당 강의의 질문 & 답변 섹션에 추가 질문을 남기시는 것이 좋겠습니다. 강의의 지식공유자 분이 더 명확하고 상세한 답변을 제공해 주실 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.