공간정보아카데미

Loosely coupled vs Tightly-coupled

minjava 2025. 9. 3. 19:50

Loosely coupled, Tightly-coupled 방식은 소프트웨어 컴포넌트들 간의 의존성(dependency) 정도를 설명하는 용어이다. 코드나 시스템의 유연성과 유지보수성에 직결되는 개념이다.

 

Tightly-copled (강결합)

- 한 모듈, 클래스가 다른 모듈, 클래스의 구체적인 구현(implementation)에 강하게 의존하는 상태

- 코드 변경시 다른 모듈도 영향을 크게 받음

- 재사용성이 낮음

- 테스트하기 어렵고 확장이 힘들다.

- 예시) Car는 Engine의 구체적인 구현에 직접 의존 -> Engine 바꾸려면 Car 코드도 수정해야 됨.

 

Loosely Coupled (약결합)

- 한 모듈, 클래스가 다른 모듈의 구체적인 구현 대신 인터페이스나 추상화에 의존하는 상태

- 코드 변경 영향이 최소화됨.

- 재사용성과 확장성이 높음.

- 테스트 용이

- 예시) Java + Interface + DI : Car는 Engine 인터페이스만 알면 됨. 엔진이 가솔린인지 전기인지 신경 ㄴㄴ

 

차이점