728x90
강한 결합 (Tight Coupling)
코드나 모듈간의 의존성이 높은 상태
하나의 모듈이 다른 모듈에 너무 의존적이며, 변경 발생 시 여러 부분에 영향을 줄 수 있는 상황
하나를 수정하면 다른 것들도 함께 수정해야 할 수 있다.
코드의 재사용성과 확장성이 떨어지게 된다.
느슨한 결합 (Loose Coupling)
모듈이 서로 독립적이며, 하나의 모듈이 다른 모듈과 상대적으로 낮은 수준의 의존성을 가지는 상태
각 모듈이 자신의 역할을 수행하면서 다른 모듈과의 상호 작용을 최소화하는 것을 의미한다.
변경 발생 시 해당 모듈만 수정하면 되며, 다른 모듈에 영향을 덜 주고 독립적으로 변경할 수 있는 유연성을 제공한다.
코드의 유지보수성과 확장성을 향상시킬 수 있다.
느슨한 결합을 구현하기 위한 방법
1. 인터페이스
인터페이스 사용 시, 클래스는 해당 인터페이스에만 의존하고 구체적인 구현에는 느슨하게 연결된다.
2. 의존성 주입(DI; Dependency Injection)
의존성 주입은 객체 간의 의존성을 외부에서 주입하는 디자인 패턴이다.
객체가 직접 의존하는 객체를 생성하지 않고, 외부에서 필요한 의존성을 제공아 객체 간의 결합을 낮출 수 있다.
Spring은 의존성 주입과 관련된 컨테이너를 제공하여 느슨한 결합을 유지하고 객체 간의 관계를 관리한다.
'CS' 카테고리의 다른 글
[Spring] Batch (0) | 2023.12.07 |
---|---|
[DB] Transactional 전파단계 (0) | 2023.12.04 |
[java] Error, Checked Exception, Unchecked Exception (0) | 2023.11.24 |
[java] String, StringBuilder, StringBuffer (0) | 2023.11.24 |
[java] 원시타입(Primitive types)과 참조타입(Reference types) (3) | 2023.11.24 |