스프링 프레임워크
① 스프링 프레임워크(Spring Framework)
- 여러 프레임워크들 중 자바(JAVA)를 기반으로 하는 프레임워크 이다.
- 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크 이다.
- 스프링의 다른 프레임워크와 가장 큰 차이점은 다른 프레임워크들의 포용이다. 이는 다시말해 기본 뼈대를 흔들지 않고, 여러 종류의 프레임워크를 혼용해서 사용할 수 있다는 점.
② 스프링 프레임워크 특징
- POJO(Plan Old Java Object)기반의 구성
- 코드를 개발할 때 개발자가 특정한 라이버리나 컨테이너의 기술에 종속적이지 않다는 것을 의미
- 쉽게말해 Java코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다는 의미
- 의존성 주입
- 의존성 주입은 하나의 객체가 다른객체의 의존성을 제공하는 테크닉
- "어떤 객체가 필요한 객체를 외부에서 밀어 넣는다."는 의미
- "의존성 주입"을 사용하여 갖는 장점은 '주입을 받는 입장에서는 어떤 객체인지 신경 쓸 필요가 없다.', '어떤 객체에 의존하든 자신의 역할은 변하지 않는다.'이다.
- "ApplicationContext"라는 존재가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 해주는 구조
- "ApplicationContext가 관리하는 객체들을 "빈(Bean)"이라고 한다.
- 빈과 빈 사이의 의존 관계를 'xml 설정', '어노테이션 설정', 'Java 설정 방식'을 통해서 처리 할 수 있다.
- 관점지향프로그래밍(AOP)의 지원
- 대부분의 시스템에서 '보안'이나 '로그', '트랜잭션'과 같이 무엇을 실행을 하든 반드시 처리가 필요한 부분이 있다. 이를 '횡단 관심사(cross-concern)'라고 한다.
- AOP는 이러한 횡단 관심사를 모듈로 분리하는 프로그래밍 패러다임이다.
- 이 패러다임을 통해서 반복적인 코드를 줄이고, 핵심 비즈니스 로직에만 집중을 할 수 있다.
- 높은 확장성
- 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하다.
- 따라서 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도용이하다.
③ 스프링 프레임워크 사용이유(장점)
- 정형화 되어 있기 때문에 일정수준의 품질을 기대 할 수 있다.
- 개발 후 유지보수 및 기능의 확장성에서도 품질을 보장한다.
- '전자표준 프레임워크'기 때문에 해당 프레임워크의 수요가 크다.(한국 한정)
④ 스프링 프레임워크 단점
- 내부에서 많은 기능을 가졌기 때문에 상당히 무겁다.
- 분명 많은 기능을 제공해서 편리하지만, 이 기능들을 습득하기위해 상당한 노력과 시간이 필요하다.
참고자료 :
https://kimvampa.tistory.com/35
'Coding > Spring' 카테고리의 다른 글
[21] ORM, JPA, Spring Data JPA (0) | 2022.12.08 |
---|---|
[20] 의존성 주입 DI(Dependency Injection) (0) | 2022.12.08 |
[참고자료] 생성자와 의존성 주입 (기술매니저님 작성글) (0) | 2022.12.07 |
+ (추가) JWT 사용 흐름 재정리 (0) | 2022.12.07 |
[18] 인증과 인가 (1) 세션/쿠키, JWT (1) | 2022.12.07 |