내 답변
1. 스프링 프레임워크는 자바를 통한 객체지향적 코드의 더 편리한 구현을 위해 설계된 것 같습니다. 클래스 간의 명확한 역할 분리와 책임 관계의 구성(의존성~)을 조금 더 편하게 하기 위해서 설계되었다고 생각합니다.
2. 더해서 데이터 베이스의 관리를 편하게 만듭니다.
이 말은, Service 단계에서 사용자가 해야 할 일은 많아지고, DB와 Controller 계층에서는 할 일이 줄었다는 뜻이므로 프로젝트에 존재하는 클래스간의 연관 관계를 조금 더 객체 지향적으로 만들 수 있습니다. (단일 책임, 변경에는 닫혀있고 확장에는 열려있는. 즉 변경에 대한 비용이 최소화하는 방향)
찾은 답변
나의 답변
위와 같이 final로 선언한 memoRepository 라는 Bean을 이용해서 값의 변경이 실제 객체를 손상하지 않으며, repository 계층에서의 변화가 있어도 repository 부분에서 변경하면 됩니다.
위와 같이 싱글톤 패턴을 사용한 모습. 매번 객체를 새로 생성했을 때 클래스마다 값이 초기화 되는 문제를 해결했습니다.
찾은 답변
주입받는 대상이 변하더라도 그 구현 자체를 수정할 일이 없거나 줄어들게됨.
다른 클래스에서 재사용할 수가 있다.
다음 시간에는(아마 내일)
. 스프링 시큐리티를 사용해 회원관리하는 방법을 순서도를 통해 정리해 보세요.
. 현재는 allinone 에서 방식의 변화를통해 스프링의 어떤 기능 처리로 코드의 구성이 어떻게 변화해서 사용하고 있으며 이때 코드의 흐름은 어떻게 흘러갈지 등도 공부해 보면 앞으로 스프링 프레임 워크를 이해하는데 도움이 되지 않을까 싶습니다.
강한 결속을 피한다 -> 객체의 생성을 통한 참조 (new 객체를 필드, 생성자 등에 두는 것)을 피하고, 스프링이 객체의 생성과 관리를 담당한다. 이것이 IoC의 기본 개념이며, DI는 이 생성된 객체를 느슨하게 주입받는 것이다.