[스프링부트] 하나의 인터페이스로 여러 구현체 선택 방법
·
Java
@ SpringBoot@ JDK 21 의존성 역전에서 인터페이스의 구현체가 여러 개인 경우가 종종 발생합니다. 예를 들어, DBMS로 MySQL과 PostgreSQL을 동시에 사용하는 상황에서 구현체를 선택하고 구별하여 로직을 처리하는 방법을 고민할 필요가 있습니다.아래에서 대표적인 접근 방법들을 정리했습니다. 1. 비권장 방식: instanceof 및 명시적 타입 변환if (orderWriter instanceof MySqlOrderAdapter mysql) { mysql.saveMySqlWay(...);}단점Open-Closed Principle(OCP) 위반인터페이스를 사용한 추상화가 무의미해짐확장 시 if 조건문이 늘어나 유지보수 어려움2. 권장 방식: 스프링 DI + Qualifier, P..