본문 바로가기

Programming/[Spring]

[Spring Boot] Spring Initializr Option

Spring Boot

Version

- SNAPSHOT : 아직 개발단계라는 의미

- GA (General Availability) - 테스트가 완료된 정식 릴리즈 버전으로 안정적으로 운영되어야 하는 프로젝트에서 사용

- RC (Release Candidate) - 베타 버전이다. 정식 릴리즈 버전은 아니므로 기능은 픽스되었으나, 안정적 동작은 보장할 수없다.

- M (Milestone) - 테스트 버전이다. 아직 기능이 픽스되지 않아 구현될 때 마다 테스트 버전이 릴리즈 될 수 있다.

 

Dependencies

Spring Boot Dev Tools

- Property Defaults : 개발 시점과 배포 시점에 다른 설정을 기본적으로 개발 단계에 맞춰 설정

- Automatic Restart : 파일 수정 후 저장을 하면, Classpath에 존재하는 파일의 변경을 감지하고, 자동으로 서버를 restart

- Live Reload

- Global Setting

- Remote Applications

 

Lombok

- Java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리

 

Spring Configuration Processor

- Class에 @ConfigurationProperties를 지정하게 되면 application.yml 파일의 값을 읽어와서 멤버변수에 자동으로 할당

 

Spring Modulith

- Modular Monolithic Architecture는 하나의 서비스에서 각 로직을 모듈로 나누는 방식이며, 각 모듈은 독립적이고 격리됨. 각각의 로직을 모듈화 하여 필요한 모듈끼리만 서로 의존하는 관계로 만드는 것

 

GraalVM

- JVM과 JDK으로 애플리케이션 성능과 효율성의 향상을 제공하는 고성능 런타임

- AOT 네이티브 이미지 컴파일러

 

GraphQL

Structed Query Language(이하 sql)와 마찬가지로 쿼리 언어입니다. 하지만 gql과 sql의 언어적 구조 차이는 매우 큽니다. 또한 gql과 sql이 실전에서 쓰이는 방식의 차이도 매우 큽니다. gql과 sql의 언어적 구조 차이가 활용 측면에서의 차이를 가져왔습니다. 이 둘은 애초에 탄생 시기도 다르고 배경도 다릅니다. sql은 데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는 것이 목적이고, gql은 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적입니다. sql의 문장(statement)은 주로 백앤드 시스템에서 작성하고 호출 하는 반면, gql의 문장은 주로 클라이언트 시스템에서 작성하고 호출 합니다.

 

Spring WebFlux- 고성능- Spring과 완벽한 통합- netty 지원- 비동기 non-blocking 메세지 처리

 

Spring MVC vs Spring WebFlux

- Spring MVC와 WebFlux의 공통점은 @Controller, Reactive 클라이언트입니다. 둘 다 Tomcat, Jetty, Undertow와 같은 서버에서 실행할 수 있습니다. Spring MVC에서는 명령형 논리, JDBC, JPA를 가질 수 있습니다. Spring WebFlux에서는 기능적 엔드 포인트, 이벤트 루프, 동시성 모델을 가질 수 있습니다. Spring WebFlux는 Netty 서버에서 실행할 수 있다는 장점이 있습니다.

 

Rest Repositories

- Spring Data Rest를 이용하여 MVC의 VC를 구현하지 않아도 Repository와 Domain만으로 REST API를 구현 가능

 

Spring Session

- Http Session을 대체하고 분산된 스케일링 가능한 환경에서 세션 데이터를 관리

- 외부 저장소를 사용하게끔하여 서블릿 컨테이너에서 세션 데이터를 분리할 수 있도록 도와줌

- 어플리케이션 퍼포먼스 향상과 분산 환경에서 세션 관리가 쉬워짐

 

Spring Web Services

- SOAP (Simple Object Access Protocol) : HTTP, HTTPS, SMTP 등을 통해서 XML 기반 의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜

- WSDL (Web Services Description Language) : 웹 서비스를 설명하기 위한 XML 표기법

 

Jersey

- 서버와 클라이언트에서 RESTful 웹 서비스를 작성하는데 도움을 주는 프레임워크

 

Vaadin

- Java 기반 웹 앱 UI 프레임워크

 

HIlla

- Spring Boot와 React에서 깨끗하고 유지보수 가능하도록 도움을 주는 프레임워크

 

Spring Security

https://s262701-id.tistory.com/135

 

[Spring] Spring Security

1. Spring Security의 의의 - Spring Security는 Spring 기반의 application의 보안(인증과 권한, 인가 등)을 담당하는 Spring 하위 Framework - '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리 - Filter는 Dispatcher

s262701-id.tistory.com

 

Spring LDAP

- LDAP(Lightweight Directory Access Protocol) 경량 디렉터리 접근 프로토콜

- LDAP은 Binary 포맷으로 데이터 전송, LDIF (LDAP Data Interchange Format)으로 데이터 저장

 

OAuth2 Client

- 로그인을 통한 인증과 권한 처리를 쉽게 할 수 있게 도와줌

 

OAuth2 Authorization Server

- Access Token 발급

 

OAuth2 Resource Server

- Access Token을 검증하고 Protected Resource를 제공하는 서버

 

JDBC API (Java Database Connectivity)

- Java에서 데이터베이스에 접속할 수 있는 API

 

Spring Data JPA

- JPA를 편리하게 사용할 수 있도록 지원

 

Spring Data JDBC

- 데이터와 java object를 연계하기 위해 제공 (Spring Data JPA가 가진 복잡한 부분을 많이 덜어내어 가볍게 DB를 조회하는 것에 초점)

 

Spring Data R2DBC (Reactive Relational Database Connectivity)

- 적은 수의 스레드로 동시성을 처리하고 더 적은 하드웨어 리소스로 확장할 수 있는 non-blocking 어플리케이션 스택 (Spring MVC + JPA, Spring Webflux + R2DBC 조합을 주로 사용)

 

Spring Data Reactive Redis

- 대용량의 요청을 처리할 때 non-block으로 처리하므로 blocking 메서드로 처리할 때보다 성능 향상

- 비동기 처리로 인하여 데이터 저장 시 순서가 변경될 수 있음

 

Spring Integration

- 가벼운 메시징 기반 서비스를 제공, 선언적 업뎁터를 사용해 외부 시스템과의 통합을 도움

 

 

'Programming > [Spring]' 카테고리의 다른 글

[Spring] Spring Security  (0) 2022.03.24
[Spring] 자주 나오는 면접 질문  (0) 2021.12.21
[Spring] Spring MVC  (0) 2019.06.12
[Spring] Maven  (0) 2019.06.12
[Spring] Springboot  (0) 2019.06.05