Spring 용어 정리하기

개발중·2021년 10월 6일
0

Spring

목록 보기
6/11

Spring

자바 엔터프라이즈 개발을 편리하게 해 주는 경량급 오픈 소스 애플리케이션 프레임워크이다.

Spring의 주요 특징

  1. 의존 주입(Dependency Injection) 지원
  2. AOP(Aspect-Oriented Programming) 지원
  3. MVC(Model View Controller) 웹 프레임워크 제공
  4. JDBC, JPA 연동, 선언적 트랜잭션 처리 등 DB 연동 지원

AOP는 최후까지 애플리케이션 로직을 담당하는 코드에 남아 있는 기술 관련 코드를 분리해서 별도의 모듈로 관리하게 해 주는 기술이다. AOP를 적용하지 않았을 때는 기술과 비즈니스 로직이 얽혀 있어 다루기 힘들 뿐만 아니라 기술 코드가 중복되어 나타나는 것도 문제점이다.

스프링의 핵심 도구는 객체지향과 DI, POJO이다.

POJO _Plain Old Java Object

오래된 방식의 간단한 자바 오브젝트라는 말로써 중량 프레임워크들을 사용하게 되면서 종속된 무거운 객체를 만들게 된 것을 반발해서 사용하게 된 용어이다.
1. EJB의 낮은 생산성, 성능, 불필요한 기술적인 복잡도를 보완한 프레임워크이다.
2. 특정 환경, 규약에 종속되지 않는다. (환경에 독립적이어야 한다.)
3. 객체지향 원리에 충실한다.

Java Beans 정의

  1. POJO 예시 코드를 Java Beans라고 한다.
  2. DB에서 VO도 Beans라고 할 수 있다.
  3. 데이터를 읽고 쓰기 가능한 Java Class이다.

Java Beans의 규칙

  1. 멤버 변수의 접근자는 private이다.
  2. 멤버 변수마다 getter와 setter가 존재해야 한다.
  3. getter와 setter 메서드의 접근자는 public이어야 한다.

POJO의 장점

  1. 특정 기술과 환경에 종속되지 않기 때문에 깔끔한 코드가 된다.
  2. 자동화 테스트에 유리하다.
  3. 객체지향적인 설계를 자유롭게 적용할 수 있다.

제어의 역전(IoC)와 의존성 주입(DI)

의존성 주입

  • 의존성 주입이란 객체에 스프링 컨테이너가 또 다른 객체와 의존성을 맺어 주는 것이다.
  • 컨테이너에서 관리할 객체를 지정하고 코드 내에서는 컨테이너에서 객체를 받아 사용한다.
  • 빈을 정의할 때 객체 간 의존 관계를 명시해 코드에서 사용 시 자동 주입되도록 한다.

제어의 역전

객체의 생성부터 소멸까지 객체의 모든 생명주기를 개발자가 아닌 컨테이너가 담당하는 것이다.
원래 개발자가 가지고 있어야 할 객체의 생명주기 제어권이 컨테이너에게 넘어갔기 때문에 제어가 역전되었다라고 한다.

참고한 사이트: https://12bme.tistory.com/157
https://ksshlee.github.io/spring/spring/
https://codevang.tistory.com/241

profile
공부한 것 정리하는 개발 입문자

0개의 댓글