WIL(3주차 회고)

박현도·2022년 10월 9일
0

WIL

목록 보기
3/6

목차

1) DI
2) IoC
3) Bean


DI (Dependency Injection)

DI를 사용하는 이유는?
=> Repository에서 생성자가 변경되었을때,Controller와 Service를 일일히 고쳐줄 필요가 없기 때문이다.

위 이야기는 Controller 하나당 그에 맞는 Service와 Repository를 새로 하나씩 생성하면, Repository에서 생성자를 변경시켜야할 경우 일일히 Controller와 Service에 생성한 객체를 수정해주어야 한다는 말이다.

즉, 강한결합은 일일히 고쳐야하는 번거로움이 있기 때문에, 우리는 DI를 사용하여 느슨한 결합을 만들고 의존도를 낮출수 있게 되는것이다.
이는 일일히 변경사항을 수정하는 번거로움을 해소시켜주기에 재사용성이 용이해지고 효율성이 올라가는 현상을 볼수있다. (유지보수 GOOD)

IoC(Inversion of Control)

"Inversion of Control", 번역을 하면 "제어의 역전"

위 말은 프로그램의 제어 흐름이 뒤바뀐다는 이야기다.
일반적으로 사람들은 자신이 필요한 객체를 생성해서 사용한다.
하지만 IoC는 용도에 맞게 필요한 객체를 그냥 가져다가 사용한다.
이러한 과정을 위에서 언급한 DI라고 보면 될 것 같다.

Bean

  • Bean: Spring이 관리하는 객체(Object)
  • Spring IoC Containner: Bean을 모아놓은 통

위에서 말한 DI를 사용하기 위해서는 객체생성이 우선되어야한다.
Spring Framework는 객체를 생성하고 관리하는 역할을 대신해준다.
스프링 Bean을 등록하는 방법과 Bean을 사용하는 방법을 알아보겠다.

Bean 등록 및 사용법

  • Bean 등록방법: @Component
  • Bean 사용법 : @AutoWired

Spring 3계층 (Controller,Service,Repository)는 모두
@Component를 적용한다?

Bean에대해 확실하고 정확하게 알고있는 것이 아니기때문에 점차 자세히 알아가며 이후에 수정하겠다.

이번주를 마치며

최근들어 가장 열받은 한주였다.
아무것도 모르는 내게 주어진 못알아듣겠는 말만 떠드는 불친절한 강의로 과연 내가 개인과제, 주특기 입문시험을 통과할수는 있는지 그냥 화병나는 한주였다.
하지만, 적어도 OOP는 확실하게 이해하는 한주 같았다.
OOP안에 다형성과 타입변환 부분이 처음에 이해가지 않았었는데, 기술매니저님과 입문주차 테스트를 뜯어보면서 내가 spring을 어려워하는 많은 이유중 가장 큰 이유가 Java에서 타입변환과 다형성을 어려워하고 있어 그부분에 이해가 많이 부족하다는것을 알수 있었다.
입문주차 시험 다음날 바로 OOP에서 인터페이스 부분을 공부하면서 다형성과 타입변환에 이해를 할 수 있었고, 앞에서 배웠던 상속에서의 다형성, 추상클래스에서의 다형성도 이해할수 있게되었다.
다형성과 타입변환으로 우리는 DI를 할수 있는거 같다고 생각도 하였다.
뭔가 6일은 화로 가득했는데 마지막날은 하나라도 건진거 같아서 자기위로 엄청한 날이였다.
뭔가 헤이해진거같아서 불안하다.
정신차리자

profile
would like hater top one For the chuck wonder like station 동네사람들

0개의 댓글