Spring, Spring Boot

이혜령·2023년 9월 4일
0

현장실습

목록 보기
1/8
post-thumbnail

Spring

: 엔터프라이즈용 Java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 경량급 애플리케이션 프레임워크

  • Java 프로그래밍을 더 빠르고, 쉽고, 안전하게(속도, 단순성 및 생산성 중점)
  • Java 엔터프라이즈 애플리케이션을 쉽게 만들 수 있음
  • 자바 객체와 라이브러리들을 관리, 톰캣과 같은 WAS가 내장되어 있어 자바 웹 어플리케이션을 구동
  1. 경량 컨테이너로서 Java 객체를 직접 관리한다.
    : 각각의 객체 생성, 소멸과 같은 Life Cycle을 관리하며 Spring으로부터 필요한 객체를 얻어올 수 있다.

  2. 제어 역행(IoC)
    : 컨트롤의 제어권이 사용자가 아니라 프레임워크에게 있어, 필요에 따라 Spring에서 사용자의 코드를 호출한다.

  3. 의존성 주입(DI)
    : 각각의 계층이나 서비스들간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.

  4. 관점 지향 프로그래밍(AOP)
    : 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.

  5. 트랜잭션 관리 프레임워크
    : 추상화 된 트랜잭션 관리를 지원하며, 설정 파일(xml, java, property 등)을 이용한 선언적인 방식 및 프로그래밍을 통한 방식을 모두 지원한다.

  6. MVC(Model View Controller)
    : 웹 프로그래밍 개발시 거의 표쥰적인 방식인 Model-View-Controller 패턴을 사용한다.

IoC(Inversion of Control)

  • 보통의 자바 프로그램은 각 객체들이 프로그램의 흐름을 결정하고 각 객체를 직접 생성, 조작하는 작업(객체를 직접 생성, 메소드 호출)을 했으나, IoC는 객체의 생성을 특별한 관리 위임 주체에게 맡긴다. 이를 곧, 제어의 역전이라고 한다.

일반 자바 프로그램

클래스 내부의 객체 생성 -> 의존성 객체의 메소드 호출

Spring(IoC)

Spring에게 제어를 위임, Spring이 만든 객체를 주입 -> 의존성 객체의 메소드 호출

DI(Dependency Injection)

  • 객체를 외부(Spring)에서 생성해서 사용하려는 주제 객체에 주입시켜주는 방식

IoC와 DI의 차이

IoC는 프로그램 제어권을 역전시키는 개념, DI는 해당 개념을 구현하기 위해 사용하는 디자인 패턴 중 하나로, 이름 그대로 객체의 의존관계를 외부에서 주입시키는 패턴을 말한다.

AOP(Aspect-Oriented Programming)

관점 지향 프로그래밍(프로젝트 구조를 바라보는 관점을 바꿔보자), 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화하여 재사용할 수 있도록 지원하는 것

MVC(Model View Controller)

애플리케이션을 개발할 때 사용하는 디자인 패턴으로, 애플리케잇견의 개발 영역을 MVC로 구분하여 각 역할에 맞게 코드를 작성하는 개발 방식

Model

MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달받으면 요청 사항을 처리하기 위한 작업을 하는데, 이 때 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 Model이라고 한다.

View

Model을 이용하여 웹 브라우저와 같은 애플리케이션의 화면에 보이는 리소스(Resource)를 제공하는 역할

Controller

컨트롤러는 클라이언트 측의 요청을 직접적으로 전달 받는 엔드 포인트(End Point)로써 Model과 View 중간에서 상호작용을 해주는 역할을 한다.

Spring boot

Spring으로 애플리케이션을 만들 때에 필요한 설정을 간편하게 처리해주는 별도의 프레임워크

Spring, Spring boot?

  • Spring Boot는 내부에 Tomcat이 포함되어 있어 따로 설치하거나 매번 버전을 관리해야 하는 수고로움을 덜어준다.
  • Spring Boot는 starter를 통해 dependency를 자동화 해준다.
  • Spring Boot는 XML 설정을 하지 않아도 된다.
  • jar 파일을 통해 자바 옵션만으로 손쉽게 배포가 가능하다.
profile
배운 거 대충 정리하는 블로그

0개의 댓글