[Spring] 공식 홈페이지 특징 분석

Jay·2021년 7월 18일
0

Spring

목록 보기
1/3

안녕하세요. 이제부터 Spring을 다뤄볼까 합니다! 그래서 이번 시간에는 Spring의 특징을 살펴보려고 합니다.

Spring은 객체 관리를 도와주는 bean Container Framework로, Application을 개발할 때 많이 사용합니다.
자바 언어를 사용하고 오픈 소스 입니다!

Spring 사이트로 가볼까요?
https://spring.io/

What Spring Can Do?


Spring의 특징들을 적어놨습니다. 공식 한국어 설명이 아닌 제 나름대로 해석 한 거라 의미가 다를 수 있습니다. 참고 부탁드립니다!

1. Microservices

  • Microservices : Application 코드 관리 가 가능한 작은 조각(part)을 의미
  • 작고, 독립적이고, 바로 실행 가능한 Application 을 만들면 코드에 유연성과 복원성을 제공 가능
  • 장점 : 유지 보수 용이, 생산성 향상 등

여기서 Spring을 쉽게 쓸 수 있는 Spring boot가 나오게 됩니다.

Spring에서 제공하는 Cloud Pattern으로 Application들이 분산되어 있는 형태를 완화할 수 있다고 합니다.
실행 준비가 된 여러 클라우드 패턴을 통해 서비스 검색, 로드 밸런싱, 회로 차단, 분산 추적 및 모니터링을 지원합니다.
API 게이트웨이 역할도 할 수 있습니다.

2. Reactive

  • Reactive : 짧은 지연 시간 동안 많은 작업을 처리 할 수 있음
  • Reactive processing : 개발자가 흐름을 제어할 수 있도록 도와주는 비차단/비동기 Application을 제작할 수 있도록 지원함

Spring 포트폴리오는 두 개의 병렬 스택을 제공합니다.
하나는 Spring MVC와 Spring Data 구조를 갖춘 서블릿 API를 기반으로 합니다. 또 다른 스택은 Spring WebFlux 및 Spring Data의 사후 대응형 저장소를 활용하는 완전 사후 대응형 스택입니다. 두 경우 모두 Spring Security에서는 두 스택에 대한 기본 지원을 제공합니다.

3. Cloud

  • 분산 시스템의 단점
    (1) 개발 하기 어려움
    (2) 애플리케이션 계층에서 네트워크 계층으로 복잡성 증가
    (3) 서비스 간의 상호 작용이 증가

그렇다면 코드를 Cloud-native로 만들면 어떨까?

  • Cloud-native: 외부 구성, 상태 비저장, 로깅, 지원 서비스 연결 등과 같은 12가지 요소를 처리하는 것을 의미

4. Web Applications

  • 웹 Application을 빠르고 간편하게 구축 가능
    이 장점이 현재 Spring의 특장점이라고 할 수 있습니다.
  • 웹 개발과 관련된 상용어구 코드 및 구성의 대부분을 제거
  • 서버측 HTML 애플리케이션, REST API 및 양방향 이벤트 기반 시스템 개발을 간소화하는 최신 웹 프로그래밍 모델 개발 가능
  • 보안 : Spring Security는 SAML, OAuth 및 LDAP를 포함한 많은 산업 표준 인증 프로토콜을 지원

5.Serverless

  • Serverless : 서버 인프라에서 일반적으로 처리되는 측면과 관련이 없는 이벤트 중심 워크로드
  • FaaS(Function as a Service Platform) : 실행할 인스턴스 수, 사용할 운영 체제 등을 관리해줌. 개발자는 모든 서버별 작업을 FaaS 플랫폼에 위임
  • 따라서 개발자는 비즈니스 로직에 집중 가능
  • Serverless의 특성
    (1) 트리거를 사용한 이벤트 기반 코드 실행
    (2) 플랫폼은 모든 시작, 중지 및 확장 작업을 처리
    (3) 유휴 상태일 때 비용 없음

6. Event Driven

  • Event Driven : 개발자가 event를 중심으로 Application을 만들 수 있도록 앱이 비즈니스와 동기화 상태를 유지함
  • 이벤트의 생성, 처리 및 소비를 단순화하여 몇 가지 유용한 추상화를 제공

7. Batch

  • Batch : 외부 상호 작용이나 중단이 필요하지 않은 방식으로 한정된 양의 데이터를 처리
  • 대량의 데이터를 처리하는 매우 효율적인 방법
  • SLA를 기반으로 작업을 예약하고 우선 순위를 지정하는 기능을 통해 최상의 활용을 위해 Resource를 할당 할 수 있음
profile
🟣 Fake till you make it 🟣 Finish Strong 💪

0개의 댓글