21.11.09 TIL35

서태욱·2021년 11월 9일
0

🔎 오늘 배운 것

Annotation

어노테이션은 메타데이터의 한 형태로, 프로그램에 대한 데이터를 제공해준다. (메타 데이터란 데이터를 위한 데이터, 즉 데이터에 대한 정보를 담고 있는 데이터를 의미한다.) 그렇다고 프로그램 자체를 의미하는 것은 아니며, 어노테이션이 달린 코드의 작동에 직접적인 영향을 주지는 않는다.
어노테이션의 용도는 아래와 같다.
1.컴파일러에 대한 정보: 컴파일러는 어노테이션을 이용해 에러를 감지하거나 경고를 보낼 수 있다.
2.컴파일 시간 및 배포 시간 처리: 소프트웨어 도구는 어노테이션을 이용해 코드, XML 파일 등을 생성할 수 있다.
3. 런타임 처리: 일부 어노테이션은 런타임을 검사할 수 있다.

DI(Dependency Injection, 의존성 주입)

DI는 객체가 필요한 것들을 스스로 만들지 않게 하는 대신 생성자 등을 사용해 외부에서 제공해주는 것을 의미한다. 여기서 의존성이란, 예컨대 A 클래스에서 함수를 호출할 때 B클래스를 필요로 하게 되는 경우가 있는데 이때 A 클래스는 B클래스에 의존성이 있다고 표현한다.

Class A {
  	private B b;
    
    public A(){
    	this.b = new B();
    }
    
    public startA(){
    	this.b.example(); 
    

이렇게 의존성이 발생하면 객체간에 결합도가 높아져서 비효율적으로 코드를 운용해야 하는 상황이 발생하기도 한다. 따라서 의존해야하는 클래스를 직접 생성하기보다 외부에서 주입해줌으로써 코드를 간결하게 하고 재활용도도 높일 수 있도록 해준다.
Dependency는 constructor injection이나 setter injection과 같이 다양한 형태로 주입될 수 있다.

✔️ 출처

profile
re:START

0개의 댓글