728x90
반응형
SMALL
벌써 4주차 wil을 쓰고 있는 저를 보며 지금까지 무엇을 했는지 의문이 많은 주가 아니였나 싶은 날이였습니다. 제가 자율학습에 대해 뜻을 잘못알고 있었는지.. 자율학습에 정의를 다시 찾아보기도 했습니다.
제가 이제까지 했던 자율학습에서 수업이 엉망이여도 교재는 충실했습니다. 교재를 보고 강의를 대체할 수 있을 정도 여야하지 않나. 그리고 갑자기 목적어나 주어가 없어서 글 하나에서 해석하기 위해 고민한 시간들도 은근 많습니다. 그리고 다음 강의 내용을 미리 세팅한다는것이 오히려 혼란이 조금 있지 않았나 싶습니다.
원래 있던 예제에서 그대로 푸는 것인지, 아니면 새로 프로젝트를 만들어서 하는 것인지 강의를 듣기 전까지는 알 수 없는 것이니깐여.. 그래서 결국 이중으로 만들고 앞에 부분 보고 다시 돌아가서 수정하곤 했습니다.
여전히 맥 기준의 강의여서 결국 저에게 맥을 사게 만든…..흑… 사니까 알겠더라구여.. 좋은걸.. 좋네요.. 심히… 왜 맥을 사는지 알겠더라구여… 근데 맥 처음 쓰는데 단축키는 차차 익숙해질거같고 나머지는 벌써 익숙해진거 같네여 ㅋㅋㅋㅋㅋ그램… 안녕… 트릭패드… 비싼데.. 살까 했는데… 이미 동생이 자기 생일 선물로 저걸 고르는데.. 저도 생일선물로 사달라고 할까바여 ^^ (동생이랑 생일 하루 차이입니다 아무래도 또 쌤쌤 될거 같은데 ㅋㅋㅋㅋㅋㅋ 반도의 흔한 남매의 일상…ㅎ)
오늘의 WIL의 주제는 Spring - Bean, IOC, DI
IOC
제어의 역전 Inversion Of Control
- 객체 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해준다.
- Container는 어플리케이션을 구성하는 Bean들을 관리하기 위해 IOC를 사용한다.
+ 추가
- 순수 자바 프로그램은 사용자가 객체를 직접 생성하고 그 객체들이 프로그램 플로우를 결정했다.객체 생성 = 제어의 주체 = 사용자
- 제어의 역전은 사용자에게 있던 제어권을 다른 주체가 가지게 되는 것을 뜻한다. 즉 스프링에서 말하는 IOC는객체 생성 = 제어의 주체 = 스프링 컨테이너가 되는 것을 의미한다!
DI
의존 관계 주입(Dependency Injection)
개념
- 어떤 객체가 사용하는 객체(의존하는 객체)를 직접 만들어 사용하지 않고, 주입 받아 사용하는 방법
- 사실 말이 뭔가 영어 두단어 줄여서 말해서 뭔가 있는 놈인가 싶은데 별거 없다. 메서드를 기준으로 로직에 사용되는 객체를 메서드 안에서 생성하느냐, 밖에서 생성한 객체를 인자로 받느냐 차이다.
- 이름도 의존 관계 주입인 만큼 후자가 DI다.
장점
- 변경사항이 있을 때 주입받는 객체와 메서드에서 쓰이는 객체가 같기 때문에 메서드 밖에서 생성되는 객체와 메서드에서 쓰이는 객체 사이의 의존성이 줄어든다.
- 의존성이 줄면 객체나 메서드 등 변경사항이 있을 때 서로에게 미치는 영향도 낮아진다.
Bean
- Spring Ioc 컨테이너에 의해 관리(생명주기(life Cycle)관리)되는 객체
- Bean 설명을 보다가 4주차 강의애서 비슷한 개념 설명을 들은 것 같은 기억이 나서 찾아보았다
- 내가 실행시키지 않아도 주기적으로 목록을 업네이트 하는 클래스였는데 bean의 개념 설명을 보니 @component가 떠올랐다!
- @component는 여기 정의한 이 class를 Bean으로 등록해줘! 라는 말과 같다!
- 위 주석과 같이 스프링이 필요할 때 자동으로 생성하고 실행시키고 중지시키는 클래스 목록, 즉 컨테이너에 넣는 것이고 목록 하나하나가 Bean이 된다!
728x90
반응형
LIST