Spring/1. 프레임워크 개요

Day 66 : 스프링 프레임워크

pancakemaker 2022. 1. 18. 18:28

1. Framework : 골격, 뼈대, 틀

 

2. 프레임워크 장점

① 빠른 구현 시간 : 골격 코드가 제공되어 개발자는 로직만 구현하면 됨

② 쉬운 관리 : 동일한 아키텍처를 이욯하므로 유지보수 용이

③ 개발자 역량 획일화 : 제공되는 골격코드를 사용하기 때문에 숙련된 개발자와 초급 개발자의 코드가 비슷해짐 → 개발 인력 구성 효율화

④ 검증된 아키텍처의 재사용과 일관성 유지 : 프레임워크가 제공하는 아키텍처 사용으로 시간이 지나도 유지보수 과정에서 아키텍처 왜곡, 변형 X

 

3. 프레임워크 탄생 배경

: 2004년에 로드 존슨이 개발

: 그 전엔 EJB(Enterprise Java Beans) 사용

 

※ POJO (Plain Old Java Object) : 평범한 옛날 자바 객체 (특별한 규칙이 없고 단순)

Not POJO : 규칙 有 (ex: Servlet 클래스)

 

4. 스프링 프레임워크 특징 : "Ioc와 AOP를 지원하는 경량의 컨테이너 프레임워크"

① 경량 (Lightweight)

: 여러 개의 모듈(하나 이상의 JAR 파일로 구성)로 구성 → 이 몇개의 JAR 파일만 있으면 개발과 실행 모두 가능

: POJO 형태의 객체를 관리

② 제어의 역행 (IoC : Inversion of Control)

: 낮은 결합도(낮은 의존관계)와 높은 응집도

③ 관점 지향 프로그래밍 (AOP : Aspect Oriented Programming)

: 핵심 비즈니스 로직과 각 비즈니스 메소드마다 반복해서 등장하는 공통 로직을 분리 → 응집도↑, 유지보수 용이성↑

즉, 공통으로 사용하는 기능들을 외부의 독립된 클래스로 분리하여 '선언적'으로 처리

④ 컨테이너 (Container)

: 특정 객체의 생성과 관리를 담당하며, 객체 운용에 필요한 다양한 기능 제공 (일반적으로 서버 안에 포함) (ex: Servlet 컨테이너)