Framework의 장점 단점
- 장점
- 정해진 규약이 있다. 애플리케이션을 체계적으로 관리할 수 있다.
- 기본적인 설계와 필요한 라이브러리를 제공해 생산성 향상
- 코드의 재사용성이 높고, 확장성이 좋다.
- 단점
- 해당 Framework에 대한 학습이 필요하다.
- 자유롭고 유연한 개발이 불가능하다.
POJO(Plain Old Java Object) 프로그래밍이란!?
2가지 규칙
- 객체지향 원리에 충실해야 한다. (책임 / 역할 구분) _ 조건문을 사용하면 POJO가 아니다.
- Java 스펙에 정의된 것 이외에 다른 기술이나 규약에 얽매이지 않아야 한다.
- 특정 환경(서버, 프레임웍)에 종속적이지 않아야 한다.
장점
- 특정 환경이나 기술에 종속적이지 않으며 재사용이 가능하고, 확장 가능한 유연한 코드를 작성할 수 있다.
- 환경에 종속적인 코드를 애플리케이션 코드에서 제거함으로써 코드가 깔끔해진다.
- 코드가 깔끔해서 디버깅하기 좋고 단순하다.
- 객체 지향적인 설계를 제한 없이 적용할 수 있다. ⭐⭐⭐⭐⭐
POJO와 Spring의 관계
Spring은 POJO 프로그래밍을 지향하는 Framework이다. 위 POJO 장점을 살린 코드를 작성하기 위해 Spring에서 3가지 기술을 지원하고 있다.
- IoC/DI : (Inversion of control 제어의 역전) / ( Dependency injection 의존성 주입)
- 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고, 유연한 코드를 작성할 수 있다 (낮은 결합도)
- 가독성과 유지보수 효율이 좋아지고, 코드의 중복이 줄어든다.
- (스프링 컨테이너)DI 컨테이너 의존성을 넘겨서 스프링이 관리.
- Annotation으로 할 수 도 있고, 직접 입력할 수 도 있다.
- AOP : (Aspect Oriented Programming 관심 지향 프로그래밍)
- 애플리케이션의 핵심 업무 로직에서 공통 기능 로직을 분리하는 것
- 핵심 업무 로직 : 애플리케이션의 주목적
- 공통 기능 로직 : 로깅, 보안, 트랜잭션 등등.. 공통된 기능
- 코드의 간결성/ 객체 지향적인 설계 코딩/ 코드의 재사용
- PSA
- 추상화 서비스
- 환경에 상관없이 일관된 방식으로 제공하는 추상화 구조
- 인터페이스를 참조해서 역할을 참조할 수 있도록 구현
- DI를 활용해 사용할 객체만 바꿔주도록 구현
계층형 아키텍처
- API 계층 (클라이언트와 요청/응답)
- 서비스 계층 (데이터를 받아 연산 및 처리 계층)
- 데이터 액세스 계층 (데이터 저장소에 전달)
- 웹 애플리케이션
스프링 부트 사용하는 이유
- 의존 라이브러리 관리
- 애플리케이션 설정의 자동 구성
- 쉽고 빠른 배포
'IT 정보 > Spring' 카테고리의 다른 글
[Spring] Bean Scope (Singleton pattern) (43) | 2022.06.16 |
---|---|
[Spring] 스프링 컨테이너 (12) | 2022.06.16 |
[Spring] IoC(Inversion of Control) / DI (Dependency injection) (26) | 2022.06.04 |
[Spring] 스프링의 역사 이야기 (36) | 2022.06.02 |
[Spring] SOLID (객체 지향 설계의 5가지 원칙) (7) | 2022.06.02 |