프레임워크?
프레임워크는 구조. 애플리케이션 개발시 아키텍처에 해당하는 골격 코드를 제공한다.
반복적 구조나 기능들을 모듈화시켜 재사용 가능하며,
개발자는 비즈니스 로직만 개발하면 되기에 쉽고 빠르게 구축 가능하다.
개발뿐아니라, 시스템 운영시에도 아키텍처가 개발자에 의해 변경될수 없기에 일관성을 유지할 수 있다.
☞ 프레임워크란, 아키텍처대로 빠르고 일관성있게 구현(개발)하고, 유지보수 관리 향상을 위한 도구
프레임워크 구성요소
콜드 스팟(Cold Spot), 즉 프레임워크가 제공하는 JAR(Java Archive) 파일과
비즈니스 로직에 해당하는 핫 스팟 (Hot Spot),
그리고 이 둘을 이어주는 메타데이터(xml 설정파일이나 Annotation)로 구성.
Spring 프레임워크?
자바 기반의 대표적인 오픈소스 프레임워크는 Struts나 Spring, DB연결시엔 Hibernate(or JPA) 나 iBATIS(MyBatis)가 있다.
스프링 프레임워크는 자바 기반에서 가장 많이 쓰이는 대표적인 프레임워크다.
Spring 프레임워크 주요 특징
스프링 프레임워크는 평범한 POJO(Plain Old Java Object)*를 사용하면서도, EJB만 가능했던 기능들을 제공한다.
*POJO(Plain Old Java Object) 특징
1. 특정 매개변수나 클래스를 실제 사용하지 않는다면 argu/상속 받지 않아도 됨(implement ..등)
2. 규칙 없이 클래스나 함수명 개발자 자유롭게 생성 가능.(변수명, 함수명 등)
3. 메모리 사용이 상대적으로 적어 가벼움
- Not POJO 는 POJO의 반대
사용치않더라도 규칙따라 강제 세팅해야하는 경우가 있어 엄격한 규칙이 있으며,
메모리를 많이 사용해 무거움
(예시) Servlet이나 EJB 객체 등
스프링 프레임워크 주요 특징 4가지
1) 경량
여러 모듈(하나 이상의 JAR 파일)로 구성되어있으며, POJO 기반이므로 가볍다.
2) 제어 역행(IoC : Inversion of Control)
스프링 컨테이너가 자바 객체 의존관계설정이나 생성/변경 등을 전반적으로 관리해준다.
개발자가 하나하나 해줘야했던걸 Spring 프레임워크의 컨테이너가 대신해주는 것.
xml에서 설정했던걸 annotation으로 간단하게 해결 가능.
3) 관점지향(Aspect Oriented Programming)
예외처리나 트랜젝션 처리 같은 공통기능들을 모듈화하여, 기존 OOP(Object Oriented Programming)의 한계를 넘는다.
AOP가 적용된 프로그램은 공통기능들이 빠져있어 비즈니스로직 위주 프로그램을 확인할수 있다.(유지보수 편의)
annotation에 포인트컷과 Advice 설정으로 중복 소스들 덕지덕지 붙이지 않고도 실행 지원.
4) 컨테이너(Container)
스프링은 컨테이너다.
애플리케이션 운용에 사용되는 객체의 생명주기와 의존관계 관리(IoC)하는 주체가 컨테이너.
EJB/서블릿 컨테이너는 각기 객체의 생성과 라이프 사이클을 관리한다.
컨테이너가 xml에 설정 필요한 클래스들을 객체 등록하고 관리해줌.
주요 내용
- 프레임워크는 아키텍처
- 스프링은 컨테이너!
들었던 강의 내용 위주로, 내가 기억하기 위해
스프링 프레임워크 특징들을 하나씩 정리해볼 예정이다.
끝.
'프레임워크 > SPRING 스프링' 카테고리의 다른 글
Ch 04-03. 예외처리를 활용한 서비스 로직 리팩터링_01 (0) | 2023.02.26 |
---|---|
SPRING @Transactional : 그냥 db처리시 필수 (0) | 2023.02.21 |
spring data exceptionResolver 오류 : 데이터와 비즈니스 validation 설정 (0) | 2023.02.14 |
postman 오류 : Desktop Agent unavailable (0) | 2023.02.13 |
IntelliJ HTTP Clinet plugin은 돈 내야(Ultimate) 쓸 수 있어요. (0) | 2023.02.13 |