-
스프링 공부 교재로 썼던 스프링 퀵 스타트(저자:채규태) 책의 내용을 바탕으로 공부한 내용을 함께 정리한 글이다.
스프링 프레임워크(Spring Framework) 개념과 특징 알아보기
▶ 프레임워크(Framework)란?
개발에서 기본이 되는 뼈대나 틀을 제공하는 툴이다.
애플리케이션의 구조를 결정하는 아키텍쳐(구조)에 해당하는 골격 코드를 제공한다.
즉, 개발자는 프레임워크라는 도구를 통해 쉽고 빠르게 개발을 진행할 수 있다!
▶ 스프링 프레임워크의 특징
1. 경량(Lightweight) : 몇 개의 JAR 파일만 있으면 개발과 실행이 가능하고, 객체를 POJO 형태로 관리한다.
더보기POJO(Plain Old Java Object)란?
- 말 그대로 평범한(가장 순수한) 옛날 자바 객체를 의미한다.
- 순수하게 Getter/Setter로 이루어져 있다.
- 자바 빈(Bean)과 같은 역할이다.⭐️2. 제어의 역행(Inversion of Control, IoC)⭐️
객체 생성과 의존관계를 자바 코드로 직접 처리하는 것이 아니라 스프링 컨테이너가 대신 처리한다.
제어의 역행을 통해 애플리케이션을 구성하는 객체 간의 느슨한 결합, 즉 낮은 결합도를 유지할 수 있다.
(의존관계가 클래스에 명시되지 않으므로 유지보수, 관리가 간편하고 하나의 객체에 의존하지 않는다.)
→ 제어권을 개발자가 아닌 스프링 컨테이너가 갖기 때문에 제어의 역행이라고 한다.
3. 관점지향 프로그래밍(Aspect Oriented Programming, AOP)
비지니스 메소드를 개발할 때, 핵심 비지니스 로직과 반복되는 공통 로직을 분리함으로써
응집도가 높은 개발을 할 수 있도록 지원한다.
AOP는 DB 데이터 처리를 위해 사용한다. (트랜잭션 기능을 쓰겠다는 의미)
4. 컨테이너(Container)
특정 객체의 생성과 관리를 담당하며 객체 운용에 필요한 다양한 기능을 제공한다.
스프링도 일종의 컨테이너이고, 스프링 프레임워크를 이해하는 데 가장 중요한 개념이다.
컨테이너는 자신이 관리할 클래스들이 등록된 xml 파일을 로딩하여 구동한다.
(클라이언트의 요청이 들어오는 순간 xml 설정 파일을 참조하여 객체를 생성한다.)
스프링은 자체 컨테이너를 운영하며, 톰캣 서버에서 제공해주는 컨테이너를 사용할 수도 있다.
스프링 컨테이너는 DispatcherServlet이 설정해준다.✏️ xml의 <bean> 엘리먼트 작성 시 주의 사항
class 속성 값을 적을 때 패키지 경로가 포함된 전체 클래스 경로를 지정해야 한다.
✏️ 좋은 개발은 낮은 결합도와 높은 응집도를 가지는 것!! ( + 다형성을 갖는다.)
✏️ Spring에서 제공하는 모든 Class는 싱글톤 방식(객체 남발을 막는다.)
따라서 객체를 얻기 위해 getter가 필수이다.
'Framework > Spring' 카테고리의 다른 글
[Spring] 에러 : Mapped Statements collection already contains value for 오류 해결 (2) 2021.02.20 [Spring] 의존성 주입(DI) - xml과 어노테이션 활용 (1) 2021.02.08 댓글