티스토리 뷰

- 이 두 가지 기능을 애플리케이션 전체에 제공함으로써 생산성/유지보수성이 높은 애플리케이션 구축을 가능하게 한다.

 

의존성 주입(DI) (Dependency Injection)

: 의존하는 부분을 외부에서 주입하는 것

 

관점 지향 프로그래밍(AOP) (Aspect Oriented Programming)

: 다음 두 가지 요소로 구성됨

- 중심적 관심사: 실현해야 할 기능을 나타네는 프로그램

- 횡단적 관심사: 본질적인 기능은 아니지만 품질이나 유지보수 등의 관점에서 반드시 필요한 기능을 나타내는 프로그램.

                           (실현하는 프로그램과 별도로 부수적으로 필요한 프로그램) 

--ex) 예외 처리 / 로그 정보 화면이나 파일 등으로 출력 처리 / 데이터베이스의 트랜잭션 제어 등

 

의존성

- 사용하는 객체(A클래스), 사용되는 클래스(B클래스)라고 가정.

--> A클래스에서 B클래스를 사용하려면 new 키워드를 이용해 B 클래스의 인스턴스를 생성하고,

     B클래스의 메서드를 사용하지.

이 때 B클래스에서 구현했던 메서드를 변경하면 그 영향으로 A클래스에서도 해당 메서드를 변경해야 한다.

이를 "A 클래스는 B 클래스에 의존한다" 라고 표현함

 

의존의 두 형태 : 클래스 의존(구현 의존)과 인터페이스 의존

 

클래스 의존(구현 의존)

 - 사용하는 객체 클래스에서 사용되는 객체 클래스의 타입을 직접 지정해 버리면 후자를 변경할 경우 이를 이용하고 있는 곳을 모두 수정해야 한다. 수정할 부분이 너무 늘어나버리면 위험성이 매우 커지겠지.

 

인터페이스 의존

- 인터페이스를 구현한 '사용되는 객체' 클래스를 변경하는 경우 다음과 같은 이점이 있다. 

 (1) 인터페이스는 참조를 받는 유형으로 사용할 수 있으므로 변수의 이름을 변경하지 않아도 된다.

 (2) 인터페이스가 선언된 메서드를 이용하면 클래스가 바뀌어도 메서드명을 변경하지 않아도 된다.

 

따라서, 클래스 의존보다 인터페이스 의존을 사용하여 수정할 곳을 줄인다.

 

728x90
반응형
Comments
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
250x250