[스프링 프레임워크 핵심기술] Spring이란?

Dayeon myeong·2021년 2월 18일
0

이 글은 인프런 스프링 프레임워크 핵심 기술을 보고 정리한 글입니다.

Spring이란?

소규모 어플리케이션 또는 기업용 어플리케이션을 자바로 개발하는데 있어 유용하고 편리한 기능을 제공하는 프레임워크

  • DI, AOP, MVC, JDBC (프로그래밍에 있어 어떤 구조를 만들어가는 방법론) 등을 지원
  • 오픈소스 경량급 애플리케이션 프레임워크

디자인 철학

  • 왜 자신을 노출시키지 않을까? (비침투성)
  • 모든 선택은 개발자의 몫. (예시 - 스프링이 특정 영속화 기술을 강요하지 않는다)
  • 다양한 관점을 지향한다. (유연성)
  • 하위 호환성을 지킨다. (노력)
  • API를 신중하게 설계 한다. (공들인다)
  • 높은 수준의 코드를 지향한다. (자랑)

주요 특징

  • IoC 컨테이너(IOC를 구현하는 프레임워크)로서 객체를 직접 관리. 객체 생성, 소멸 같은 생명주기 관리, 의존성 관리
  • IOC(Inversion of Control)
    제어권의 역전. 제어권이 스프링 프레임워크에 있음. 개발자가 제어권을 가지지 않음. 객체가 내부적으로 조작할 객체를 직접 생성하는 것이 아니라 외부로부터 주입받는 것. 이때 객체를 외부로부터 주입해주는 작업을 DI라고 함.
  • DI(Dependency Injection)
    의존성 주입. 계층이나 서비스 간에 의존성이 존재할 경우 스프링 프레임워크가 서로 연결
  • AOP(Aspect-Oriented Programming)
    관점지향 프로그래밍. 공통적으로 사용하는 코드들 모아서 이 코드들이 필요한 특정 로직에 공통 기능을 적용할 수 있는 기술.
  • POJO(Plain Old Java Object)
    특정 환경이나 규약에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 자바 객체
  • PSA (Portable service abstraction)
    외부 라이브러리들을 POJO로 사용할 수 있도록 일종의 껍데기를 씌워 추상화한 것으로, 스프링에서 추상화된 서비스들을 자바 언어로 자유롭게 사용 가능
profile
부족함을 당당히 마주하는 용기

0개의 댓글