기본개념
의존관계(Dependency)
객체 간의 상호작용
- 객체가 다른 객체에 의존하면, 한 객체의 변경이 다른 객체에 영향을 미칠 수 있다.
- 이러한 의존관계는 주로 의존성 주입(Dependency Injection)을 통해 해결된다.
의존성 주입(Dependency Injection, DI)
- 의존성 주입을 통해 객체 간의 결합도를 낮출 수 있다.
- 객체가 직접 필요한 의존 객체를 생성하는 것이 아니라, 외부에서 의존 객체를 주입받아 사용하는 방식
- 코드의 유연성과 재사용성을 높일 수 있다.
빈(Bean)
스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트
- 스프링 컨테이너가 관리하는(등록하는) 자바 객체
※ 빈: 인스턴스화 된 객체
어노테이션
@AfterEach
- 한번에 여러 테스트를 실행하면 메모리DB에 직전 테스트의 결과가 남을 수 있다.
- 각 테스트가 종료될 때마다 기능을 실행하여 DB에 저장된 메모리를 삭제할 수 있다.
@AfterEach
public void afterEach() {
repository.clearStore()
}
@ BeforeEach
- 각 테스트 실행 전에 호출되어 테스트가 서로 영향이 없도록 항상 새로운 객체를 생성한다. 의존관계도 맺어준다.
@BeforeEach
public void beforeEach() {
memberRepository = new MemoryMemberRepository();
memberService = new MemberService(memberRepository);
}
@Autowired
- 스프링이 연관된 객체를 스프링 컨테이너에 찾아서 넣어준다.
- 객체 의존관계를 외부에서 넣어주는 것: DI, 의존성 주입