Spring 기본/개념

[Spring] 기본개념 - 1 간단요약

줄라이퍼스트 2020. 8. 29. 22:06

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