스프링은 자바 엔터프라이즈 환경에 필요한 모든 것을 제공하고
자바 엔터프라이즈 애플리케이션을 손쉽게 만들 수 있다.
# 엔터프라이즈 애플리케이션
1. 대규모의 복잡한 데이터를 관리하고, 이러한 데이터를 이용해 비즈니스 프로세스 지원 및 자동화한다.
2. 비즈니스의 근간으로 보안과 안정성, 확장성이 필요하며, 뛰어한 성능과 서비스의 안정성이 요구된다.
3. 다수의 사용자가 접근하며, 기업내 분산된 다른 엔터프라이즈 애플리케이션과 통합된다.
4. 데이터 입/출력을 위한 다양한 사용자 인터페이스가 제공된다.
고객 서비스, 공급망, 인사, 회계, 보험, 외환거래, 환자기록, 배송추적 등이 엔터프라이 어플리케이션이 속하고
운영체제, 게임, 워드 프로세서, 공장 자동화, 승강기 제어, 전화 스위치 등이 속하지 않는다.
# 엔터프라이즈 자바 (Java EE -> Jakarta EE)
1. 엔터프라이즈 애플리케이션에 필요한 확장성, 신뢰성, 보안성 등을 제공하는 자바 플랫폼이자 프레임워크다.
2. 대규모, 네트워크, 다계층 애플리케이션을 더 쉽게 안전하고 탄탄하게 구축할 수 있도록 설계되었다.
3. 웹을 통한 UI, 시스템 통합을 위한 리모팅, 선언적 트랜잭션 처리 등 전체 애플리케이션 스택을 제공한다.
4. 다양한 자바 명세 요청서(Java Specification Request, JSR)을 바탕으로 작성된 표준 API 모음이다.
클라이언트 기기 - 웹 브라우저나 모바일 웹 등으로 구성한다. 프레젠테이션 티어라고 불린다.
->
자바 EE 서버 - 서블릿(Servlet) 또는 EJB 등 다양한 자바 EE 명세를 구현한 서버다. 두 개의 논리 컨테이너를 바탕으로 엔터프라이즈 애플리케이션에 필요한 서비스를 제공한다.
# 스프링 프레임워크 - 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크
순수 객체(POJO): 관점지향 프로그래밍(Aspect Oriented Programming), 제어의 역전과 의존관계 주입(Inversion of Control/Dependency Injection), 이식 가능한 서비스 추상화(Portable Service Abstraction)
1. 자바 플랫폼으로 엔터프라이즈 애플리케이션을 개발하는데 필요한 하부 구조를 포괄적으로 제공.
2. 스프링이 하부 구조를 처리해 개발자는 개발에 집중가능.
3. 핵심은 엔터프라이즈 서비스 기능을 POJO에 제공하는것.
# 소프트웨어의 복잡성을 다루는 방법들
응집도, 결합도, SOLID, 아키텍처 스타일, 디자인 패턴, 프레임워크, 정보은닉, 다형성, 상속, 모듈화, 추상화, 캡슐화
'Back End > Spring' 카테고리의 다른 글
Gradle (0) | 2023.08.02 |
---|---|
POJO (Plain Old Java Object) (0) | 2023.07.31 |
405 Error가 뜨는 많은경우 (0) | 2023.04.11 |
Spring DI 의존관계 주입(Dependency Injection) (0) | 2023.03.29 |
Controller의 매개변수 (0) | 2023.03.27 |