
1. Spring Framework
- 자바(JAVA) 플랫폼을 위한 오픈소스(Open Source) 경량급 애플리케이션 프레임워크(Framework)
- 프레임워크는 뼈대나 근간을 이루는 코드들의 묶음
-> 개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에 필요한 부분을 조립하는 형태로 개발
- 스프링 쓴이유
1. XML 이나 어노테이션(프로그램에 관한 데이터 제공) 등을 이용한 선언적 관리 가능
2. 개발의 복잡성 감소, 테스트 관리 및 유지보수가 좋음
3. 크기와 부하의 측면에서 경량
-> 제어역행(IOC)라는 기술을 통해 애플리케이션의 느슨한 결합을 도모
2. MVC
- 모델(Model) 뷰(View) 컨트롤러(Controller) 합성어로 소프트웨어 공학에서 사용되는 아키텍처 패턴
- MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트 체크박스 화면을 보여주고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. VIEW 와 컨트롤러를 분리해서 유지보수에 용이 함
3. POJO 기반구성
- 스프링은 POJO 방식의 프레임워크 예전에는 자바엔터프라이즈등의 중량 프레임워크를 사용하면서
해당 프레임워크에 종속된 무거운 객체에 반발하게되어 사용된 용어
- POJO는 특정 규약에 종속되지 않는다 (Java 언어와 꼭 필요한 API외에 종속 되지 않음)
4. DI (의존성주입)
- 의존성 주입
-> 어떤 객체가 필요한 객체를 외부에서 밀어 넣는 것 (객체간의 의존관계를 정의하게 됨)
ex) A는 B가 필요하다고 신호만 보내고 B객체를 주입하는 것은 외부에서 이루어지는 방식
RUN타임시 사용하게 될 각 모듈간의 의존관계를 컨테이너가 빈 설정 정보를 바탕으로 자동적으로 연결해주는 것을 의미
※ 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다
5. AOP(관점 지향 프로그래밍)
- 반복적인 코드를 제거
- 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우
-> 해당기능을 분리하여 관리 AOP는 '관점 지향 프로그래밍으로' 기능을 "핵심 비즈니스 기능"과 "공통 기능"으로 구분하고, 공통 기능 을 개발자의 코드 밖에서 필요한 시점에 적용하는 프로그래밍 방법
6. IOC
- 제어의 역전
- 인스턴스의 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해줌
7. Spring Container
- 주입을 이용하여 객체를 관리하는 컨테이너 컨테이너는 객체관리를 주로 수행하는 그릇정도로 이해할 수 있다. 빈의 생성과 관계, 사용,
생명 주기등을 관장한다. 컨테이너를 통해 시스템 전반에서 언제는 사용가능하다.
- 우리는 객체를 사용하기 위해서 new 생성자를 이용하거나 getter/setter 기능을 써야만 했다. 한 어플리케이션에는 이러한 객체가 무수 히 많이 존재하고 서로 참조하고 있을 것이다. 그 정도가 심할 수록 의존성이 높다,
낮은 결합도와 높은 캡슐화로 대변되는 객체지향프로그래밍에서 높은 의존성은 아니꼬울 수 밖에 없다. 의존성 제어, 즉 객체 간의 의존 성을 낮추기 위해 바로 Spring 컨테이너가 사용된다.
'Spring 기본 > 개념' 카테고리의 다른 글
[Spring] 기본개념 - 2 (0) | 2020.09.24 |
---|---|
[Spring] Spring Security 기본 개념 요약 -1 (0) | 2020.08.29 |