티스토리 뷰

왜 스프링을 사용하고 있는지에 포커스를 맞춰보겠다
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();
이렇게 set으로 들어가게 끔 만들어 주는 것.
다음 장에서 설명하겠다
'dev > Spring Framework' 카테고리의 다른 글
Spring tiles 레이아웃 페이지 만들기와 Tiles 라이브러리 설정하기 (0) | 2021.06.11 |
---|---|
spring 정적파일 서비스하기, 경로설정 (0) | 2021.06.05 |
spring viewResolver 설정하기 (0) | 2021.05.30 |
Spring Dispatcher 서블릿을 프론트컨트롤러로 설정하기 (0) | 2021.05.29 |
Spring MVC model2 방식 환경설정하기 (1) | 2021.05.24 |
- Total
- Today
- Yesterday
- JPA
- BindingResult
- rejectValue
- Intercepter
- HTTP
- 로그인
- filter
- 스프링부트
- 인터셉터
- SpringBoot
- React
- reject
- 백엔드 개발자 역량
- ArgumentResolver
- 항해플러스
- 향해99
- 향해플러스
- exception
- react실행
- 향해플러스백엔드
- 스프링공부
- hypertexttransferprotocol
- 항해99
- thymleaf
- jpa api
- 컨트
- 예외처리
- 리터럴
- Java
- 백엔드 개발자 공부
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |