WIL (Weekly I Learned) 1월 5째주

2022. 1. 30. 20:47WIL(Weekly I Learned)

반응형
<배운 것>

Bean

Bean이라고 불리는 객체가 애플리케이션 안에 하나만 존재하는 객체를 이야기한다. 예전 Spring Framework를 사용할 때는 xml파일에 빈을 하나씩 등록시켜주어야 했지만, 현재 버전에서는 애노테이션을 사용해서 간단하게 Bean을 등록할 수 있다.

흔히 빈을 생성하기 위해 사용하는 애노테이션에는 아래와 같다.

@Controller

@Service

@Repository

@Component

@Bean

 

IoC

 IoC Container 한국말로 제어의 역전이라는 의미인데, 말 그대로 개발자가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 된다는 디자인 패턴이다. 뒤에 붙은 contariner의 의미는 말 그대로 Spring 애플리케이션이 실행됨과 동시에 생성된 Bean들을 담고 있기 때문에 Container라는 이름이 붙은 것이다.

 

DI

IoC와 DI는 같은 개념이다. IoC는 매우 포괄적인 의미를 담고 있기 때문에, 용어에서 혼동을 줄 수 있다고 생각한 Martin Fowler는 2004년 Dependency Injection이라는 용어를 만들어낸다. 그래서 현재는 상위 모듈에 의존하는 하위 모듈의 생성자, 프로퍼티, 메서드를 통해 주입하는 것을 DI라고 부르고 있다.


<생각>
이번주는 기능구현에만 목적을 두고 이해중심보다는 어떻게든 기능을 완성하는데 집중을 하여서 그런지 강의도 실습없이 빠른 속도로 흐름만 본 후 바로 기능구현을 하였다. 강의자료나 블로그를 참조하여 완성하고 나서는 전체적인 흐름은 느꼈지만 이 코드의 한줄한줄이 무슨 의미였는지 알 수 없었고, 강의자료나 블로그에도 코드 한줄한줄의 의미는 없었기 때문에 궁금증이 폭발하였다. 답답하면서 알고싶었다. 
그래서 이번주부터는 강의를 듣더라도 하나를 듣더라도 무조건 직접 강의를 듣고 따라 치면서 딱 한번 듣는다는 생각으로 꼼꼼하게 들으며 모르는 것들은 주석으로 적어 코드옆에 있는 주석만을 보면서 빠르게 반복이 가능 할 것 같다. 그래서 이 코드들을 반복숙달 되게 반복하면서 전체적인 흐름을 반복하다 보면 익숙해 지지 않을까 싶다. 
객채, 빈 이런 것들이 전에는 봐도 와닿지 않았었는데, 이번 시간을 통해서 알게 되어서 좀 시원했다. 하지만 여전히 스프링은 어렵다... 이번주도 여전히 일단은 기능을 되게 완성하는데 목적을 두고 달려야 할 것 같다. 
반응형