-
[Spring Framework] Spring IoCstudy Log/Spring Framework 2023. 2. 23. 17:16
- Spring Framework 란?
- 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있으며 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있다.
- Spring 이전에 사용하던 프로그램의 기능이 매우 무거워지고 사용이 힘들어 개발자들이 지쳐갈 때쯤 혜성처럼 등장, 개발 암흑기를 지나 봄이 왔다는 의미로 Spring으로 지었다~ 라는 이야기를 들었다 ㅎㅎㅎ 재밌음
- Spring Framework의 특징 세 가지
- IoC (Inversion of Control) Container : 제어의 역전
- 프로그램을 구동하는데 필요한 객체에 대한 생성, 변경 등의 관리를 프로그램을 개발하는 사람이 아닌 프로그램을 구동하는 컨테이너에서 직접 관리하는 것을 말한다. 스프링은 IoC 구조를 통해 구동 시 필요한 객체의 생성 부터 생명 주기까지 해당 객체에 대한 관리를 직접 수행한다.
- 스프링 프레임 워크에게 맡긴 객체 = Bean(빈)
- ‘Bean’들을 관리한다는 의미로 컨테이너를 ‘Bean Factory’ 라고 한다.
- DI (Dependency Injection) : 의존성 주입
- 의존성을 낮추고 결합 관계를 없애서 유지보수성을 높인다.
- 설정 파일이나 어노테이션을 통해 객체간 의존 관계를 설정하여 개발자가 직접 의존하는 객체를 생성 할 필요가 없다.
- IoC (Inversion of Control) Container : 제어의 역전
IoC / DI -
- AOP (Aspect Oriented Programming) : 관점 지향 프로그래밍 (OOP를 서포트 해주는 개념
- Database의 트랜잭션처리나 로깅 처리와 같이 여러 모듈에서 공통으로 필요로 하는 기능의 경우 해당 기능을 분리하여 관리한다.
- OOP (Object Oriented Programming) : 객체 지향 프로그래밍
- AOP (Aspect Oriented Programming) : 관점 지향 프로그래밍 (OOP를 서포트 해주는 개념
AOP -
- PSA (Portable Service Abstraction) : 서비스 추상화 - 특정 기술 숨김
- 개발 환경이 바뀌더라도 내가 쓴 부분에 대한 추가 유지 보수가 없도록 하기 위해 기술을 숨김
- 변화가 있더라도 굳이 모두 고치지 않아도 되도록 함
- PSA (Portable Service Abstraction) : 서비스 추상화 - 특정 기술 숨김
🍀 Spring의 구성 모듈
- Core Container
- Spring의 근간이 되는 IoC(또는 DI) 기능을 지원하는 영역을 담당하고 있다. BeanFactory를 기반으로 Bean 클래스들을 제어할 수 있는 기능을 지원한다.
- Beans < Core < Context < Expression Language 순으로 세분화된다.
- Data 접근 계층
- JDBC나 데이터 베이스에 연결하는 모듈, Data 트랜잭션에 해당하는 기능을 담 당하여 영속성 프레임워크의 연결을 담당한다.
'study Log > Spring Framework' 카테고리의 다른 글
[Spring Framework] Mac M1 / STS3 설치하기 / Maven Repository 이용하기 (0) 2023.02.23 - Spring Framework 란?