4. Spring

hsso_o·2024년 7월 17일
0

스터디

목록 보기
27/44

Spring Framework

  • 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이자 IoC(Inversion of Control) 컨테이너
  • 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공
  • 경량 컨테이너로 자바 객체를 담고 직접 관리

구성 모듈

Spring Core Container

  • 스프링에서 객체의 생성과 관리를 담당
    • 가장 기본적이며 중요한 모듈 중 하나
  • DI(Dependency Injection)과 IoC(Inversion of Control) 개념이 구현되어 있음
    • 재사용성, 유지보수성 높임

AOP(Aspect Oriented Programming)

  • 객체지향 프로그래밍에서의 코드 중복을 제거하고 코드를 재사용하기 위한 프로그래밍 기법
  • 기존의 코드를 변경하지 않고 새로운 기능을 추가하는 방식으로 사용
  • 로깅, 트랜잭션, 보안 등의 기능을 제공
Aspect
  • 별도의 spring-aspects 모듈은 AspectJ와의 통합을 제공
Instrumentation
  • 자바 프로그램의 동작을 관찰하고 조작하는 기술
  • 클래스 로딩, 메소드 실행 등의 작업을 추적하고 변경 가능
Messaging
  • Apache Kafka 및 RabbitMQ와 같은 메시지 브로커의 통합을 통해 메시징 아키텍처를 지원
  • 메시지 채널, 메시지 처리기 및 메시징 기반 응용 프로그램을 생성할 수 있는 메시지 끝점에 대한 추상화가 포함
  • 메시지 채널에서 메시지를 수신하고 처리할 수 있는 메시지 구동 POJO(Plain Old Java Objects)를 생성 가능

Data Access / Integration

JDBC
  • Java에서 데이터베이스와 연결할 수 있는 API
  • 쿼리를 실행하고 결과를 처리할 수 있는 메서드와 클래스를 제공
ORM(Object Relation Mapping)
  • 객체 지향 프로그래밍에서 관계형 데이터베이스와의 상호작용을 추상화하는 프로그래밍 기술
  • 객체와 데이터베이스 간의 매핑을 담당
    • 데이터베이스 쿼리를 생성하고 실행하는 등의 작업을 대신 수행
Transaction Management
  • 트랜잭션 관리 기능 제공
  • 선언적 트랜잭션 처리, 프로그램적 트랜잭션 처리 등
  • 트랜잭션 속성을 XML이나 어노테이션을 이용해 설정 가능
OXM(Object XML Mapping)
  • 자바 객체와 XML 문서 간의 매핑을 지원하는 모듈
Java Messaging Service(JMS)
  • 자바에서 메시지를 주고 받을 수 있는 API
  • 분산 시스템에서 메시지를 교환 가능
  • 메시지 전송과 수신을 위한 스펙과 메시지의 속성을 정의하기 위한 API를 제공

Web

servlet
  • 웹 애플리케이션 서버에서 실행되는 자바 클래스
  • 클라이언트의 요청을 처리하고, 응답을 생성하는데 사용
Web

spring web mvc

  • 스프링에서 제공하는 웹 어플리케이션 개발을 위한 MVC 패턴 구현 모듈

Spring WebFlux

  • 스프링 5에서 추가된 모듈로, 비동기 웹 어플리케이션 개발을 위해 Reactive Streams를 지원하는 모듈
webSocket
  • HTTP와 달리 양방향 통신을 지원하는 프로토콜
    • 서버와 클라이언트 간의 실시간 양방향 통신이 가능
  • Spring Websocket 모듈은 STOMP(Subscribable-Text-Oriented Messaging Protocol) 프로토콜을 이용하여 WebSocket을 구현
    • STOMP는 WebSocket을 이용하여 메시지를 주고 받을 때 사용되는 메시지 프로토콜
Portlet
  • 웹 페이지를 구성하는 데 사용되는 모듈이며, 클라이언트의 요청에 따라 동적으로 로드
  • 특정 Portlet 컨테이너에서 실행되어야 하며, Portlet 컨테이너는 웹 서버에서 분리되어 실행

Test

  • spring-test 모듈은 JUnit 또는 TestNG를 사용하여 Spring 구성 요소의 단위 테스트 및 통합 테스트를 지원
  • Spring ApplicationContexts의 일관된 로딩과 해당 컨텍스트의 캐싱을 제공
  • 코드를 별도로 테스트하는 데 사용할 수 있는 모의 개체를 제공
profile
아뇨 소혠데요-

0개의 댓글