Spring Framework 구조
src\main\java - 순수 자바 코드
src\main\resources - 설정문서
src\test\java - main을 가지면서 test를 해야하는 파일
test로 끝나거나 apptest로 끝나는 건 여기에 배포
Core, AOP - 둘 다 독립적인 존재, Core가 존재해야 AOP가 있을 수 있음
Data Access/Integration - JDBC부분을 framework로 만든 것(mybatis - spring에서 제공하는 것 아님)
각각의 framework가 작동하는데 있어서 모듈화되어 있음
이것 저것 조립해서 사용 가능 -> 확장성 올라감(오픈소스와는 다름)
Hello, HelloTest -> Hasing 관계(HelloTest가 Hello를 사용함)
Hello가 바뀌면 HelloTest가 바로 영향을 받음
연결이 타이트하기 때문에 한쪽이 영향을 받으면 다른쪽이 바로 영향을 받음 -> 재사용성 떨어짐, 유지보수 떨어짐
BeanFactory의 역할
1. 설정문서(xml기반)를 읽음 -> bean 생성
2. 생성한 bean을 저장
=> 객체 생성을 내가 안해야 재사용성이 높아짐
개발자는 어떤 클래스를 어떤 이름으로 만들어지게 할건지 명세서(xml파일)를 작성하는 역할을 함
setter, getter -> 재사용성 최악
(DiceA, DiceB, DiceC 하나하나 모두 setter, getter를 해줘야 각각의 객체를 사용할 수 있기 때문에)