티스토리 뷰

스프링 프레임워크

 

왜 스프링을 사용하고 있는지에 포커스를 맞춰보겠다


Dependency Injection : 스프링 프레임워크의 핵심 기능

스프링을 사용하는 이유 중 가장 중요했던 이유는

dependency injection 과 이 트랜젝션을 관리해주는

transaction management 가 있다

트렉젝션을 관리하는 것이 어려움이 있었는데 스프링이 깔끔하게관리해주는 부분이있다

물론 transaction management을 지원하는 자바에디션이 있긴하다.

java EE로 불리는 enterprise edition이 있는데

하지만 트랜젝션 관리가 쉽지 않았고

컴포넌트를 올리고 설정을 하다보면 여러복잡성이 있었다.

스프링은 단순하게 라이브러리를 사용하며 깔끔하게 처리해주고

dependency injection을 같이 쉽게 구현하게 해줘서 모듈 결합이 쉬워졌다.

어느덧 java SE에 JAVA EE를 얻지 않고 스프링을 얻어 사용하는 방식으로 바뀌어왔다



MVC -> DI ->느슨한 결합력과 인터페이스
트랜잭션 -> AOP 
인증과 권한 -> Servlet Filter


DI - > 느슨한 결합력이란?




Service와 Dao가 있다는 가정하에 설명해보자

service에 1번 메소드에

Private B1 b = new B1(); 코드가 있고

Dao에 B1과 B2 클래스가 있다

만약 서비스에서 B2로 바꾸고 싶다면

Private B2 b = new B2(); 이렇게 코드를 바꾸게 될것인데


이거보다는 좀더 결합력을 낮추고싶은데? 라는 생각이 들었다면

중간에 인터페이스가 들어가게 될 것인데

Private B b = new B1(); -> Private B b = new B2();

조금이지만 코드를 더 조금 수정할 수 있는 방향으로 바뀌었다

하지만 아직 결합력이 크게 이걸 더 낮게 하는 방식은 무엇일까?

아예 데이터를 처음 받게 되는 UI 쪽에서 알아서 객체를 만들어 주는 방식이다

 


UI에서 
B b = new B1(); 

service.setB(b);

 

이렇게 set으로 들어가게 끔 만들어 주는 것.

다음 장에서 설명하겠다

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함