백엔드/Spring
레이어간 의존 관계 문제
아래 사진은 레이어드 아키텍처다 의존하는 방향을 주목해보자. 항상 상위 레이어가 하위 레이어를 의존하는 형태를 가져간다.근데 인프라 레이어의 코드가 도메인에도 있고 애플리케이션 레이어에도 존재한다면 어떻게 될까?DB를 바꿔야 하는 상황에 닥쳤다고 생각해보자.운영상 RDBMS에서 NoSQL로 바꿔야한다는 니즈가 생겨버렸다.그럼 인프라의 변경으로 인해 도메인 레이어의 코드도 수정해야하고, 애플리케이션 레이어의 코드도 수정을 해야한다.수정만이 문제가 아니다. 이전과 동일하게 동작하는지 테스트 코드도 수정해야하고 엄청나게 많은 리소스를 쏟아 부어야한다. 바꿀 수가 없을 정도의 리소스와 리스크를 안고 가야할 수도 있다.그럼 누군가가 이렇게 말할 수도 있다."DB를 바꿔야 하는 건 소프트웨어 설계부터 잘못된거 아니..