빌드 후 preferences에서 Build and run using, Run tests using 을 IntellJ로 수정한다
⇒ 인터페이스를 만들고 구현체를 언제든지 갈아 끼울 수 있도록 설계를 한다
우선은 순수한 JAVA 코드로 개발 진행
회원 저장소(역할)의 구현을 메모리 회원 저장소, DB회원 저장소, 외부 시스템 연동 회원 저장소(구현)으로 구분한다
의존관계가 인터페이스 뿐만 아니라 구현까지 모두 의존하고 있다(OCP, DIP 원칙 위배)