# 스프링 프레임워크의 간략한 역사
프레임워크는 말 그대로 '뼈대나 근간을 이루는 코드들의 묶음'이다.
중요한 점은 이 뼈대가 왜 필요한지에 대한 것이다.
개발자는 각 개객인의 능력 차이가 큰 직종이고, 따라서 개발자 구성에 따라 프로젝트의 결과 역시 큰 차이를 낳는다.
프레임 워크는 바로 이런 상황을 극복하기 위한 코드의 결과물이다.
프레임워크를 이용한다는 의미는 프로그램의 기본 흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발하게 된다.
프레임워크의 최대의 장점은 개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에, 회사의 입장에서는 프레임워크를 사용하면 일정한 품질이 보장되는 결과물을 얻을 수 있고,
개발자의 입장에서는 개발 시간을 단축할 수 있습니다.
# 스프링의 주요 특징
1. POJO 기반의 구성
2. 의존성 주입을 통한 객체 간의 관계 구성
3. AOP(Aspect-Oriented-Programming) 지원
4. 편리한 MVC 구조
5. WAS의 종속적이지 않은 개발 환경
### POJO 기반의 구성
스플링은 관계를 구성할 때 별도의 API등을 이용하지 않는 POJO(Plain Old Java Object)의 구성만으로 가능하도록 제작되어 있다.
쉽게 말해서 Java 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다.
이것이 중요한 이유는 코드를 개발할 때 개발자가 특정한 라이브러리나 컨테이너 기술에 종속적이지 않다는 것을 의미하기 때문이다.
-> 가장 일반적인 코드를 작성하므로 생상선 유리, 코드 테스트 또한 유연하게 가져갈 수 있음.
### 의존성 주입과 스프링
의존성은 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미한다.
주입은 말 그대로 '밀어 넣는 것'을 의미.
- 스프링은 'ApplicationContext'라는 존재가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 해 주는 구조이다.
- 스프링을 이용하면 개발자들은 기존의 프로그래밍과 달리 객체와 객체를 분리해서 생성하고, 이러한 객체들을 엮는(wiring)작업을 하는 형태의 개발을 하게 된다.
- 스프링에서는 ApplicationContect가 관리하는 객체들을 빈(Bean)이라는 용어로 부르고, 빈과 빈 사이의 의존관계를 처리하는 방식으로 XML설정, 어노테이션 설정, Java설정 방식을 이용할 수 있다.
### AOP의 지원
AOP(Aspect Oriented Programming)은 다양한 곳에서 자주 사용되는 공통 관심요소를 단일 기능으로 뽑아내어 코드의 중봅을 줄이고 관리의 효율성을 높이는 것을 목적으로 한다.
로깅이나 로그인 등의 기능을 예로 들 수 있다.
### 트랜잭션의 지원
스프링은 트랜잭션의 관리를 어노테이션이나 XML로 설정할 수 있기 때문에 개발자가 매번 상황에 맞는 코드를 작성할 필요가 없도록 설계 됨.
'SPRING' 카테고리의 다른 글
맥 스프링 MyBatis 연동 (0) | 2022.01.06 |
---|---|
이클립스 hikari 커넥션 풀 설정 (0) | 2022.01.05 |
스프링(SPRING) 의존성 주입 테스트 (0) | 2021.12.29 |
맥에서 이클립스 Lombok 라이브러리 설치하기 (0) | 2021.12.27 |