[Spring]그림으로 배우는 스프링 6 - Chapter1장

Gaeng·2024년 11월 11일

[Spring] 공부

목록 보기
1/21
post-thumbnail

책의 내용을 기반으로 해서 내용을 추가 삭제하여 요약했습니다.

1장 스프링 개요

1.1 스프링이란?

스프링은 세계적인 널리 알려진 오픈 소스 자바 라이브러리로, 웹 애플리케이션과 같은 서버 측 애플리케이션을 자바로 개발 할 때 표준으로 사용 될 만한 정도로 많은 곳에서 사용 중이다.
스프링은 라이브러리 중에서도 프레임워크에 속함.

1.2 스프링의 다양한 프로젝트

스프링에는 다양한 프로젝트가 있는데 그 중에 스프링 프레임워크가 중심이 된다.

스프링 프레임워크

스프링 프레임워크는 자바 플랫폼에서 엔터프라이즈 애플리케이션 개발을 간소화하기 위해 제공되는 오픈소스 애플리케이션 프레임워크입니다.

기능설명
DI 컨테이너객체의 생성과 관리를 통합하여 사용할 수 있게 해줌.
스프링 MVCHTTP 통신 및 화면 관련 프로그램을 효율적으로 개발할 수 있게 해줌.
스프링 JDBC데이터베이스 접근 관련 프로그램을 효율적으로 개발할 수 있게 해줌.
선언적 트랜잭션데이터베이스의 트랜잭션 제어를 자동으로 처리해줌.
테스트 지원테스트 프로그램 작성을 용이하게 도와줌.

스프링 프레임워크 사용은 필수입니다.

주요 구성 요소 및 특징

- 스프링 클라우드

  • 특징:
    • 마이크로서비스 아키텍처(MSA)를 지원하는 도구와 라이브러리를 제공.
    • 분산 시스템에서 필요한 서비스 등록 및 디스커버리, API 게이트웨이, 로드 밸런싱 등을 지원.
    • Netflix OSS와의 통합(Eureka, Hystrix, Zuul 등).
    • 구성 관리, 분산 트랜잭션, 서비스 간 통신을 위한 메시지 브로커 지원.
  • 사용 예시:
    • 클라우드 네이티브 애플리케이션 개발.

- 스프링 부트

  • 특징:
    • 스프링 기반 애플리케이션 개발의 복잡성을 줄여주는 스타터 프로젝트.
    • 내장 서버(Tomcat, Jetty)를 지원하여 애플리케이션 실행이 간단.
    • 설정 파일이 간소화(YAML, properties).
    • 프로덕션 준비 상태에서의 기능 제공(모니터링, 헬스 체크 등).
    • 코드 작성을 최소화하고 설정 자동화를 지원.
  • 사용 예시:
    • 빠른 프로토타이핑 및 배포 가능한 독립 실행형 애플리케이션 개발.

- 스프링 시큐리티

  • 특징:
    • 인증(Authentication)과 권한 부여(Authorization)를 위한 강력한 보안 프레임워크.
    • 세션 기반 인증, OAuth2, JWT 등 다양한 인증 방식을 지원.
    • URL 기반 권한 제어 및 메서드 레벨의 보안 설정 가능.
    • CSRF, CORS와 같은 웹 보안 기능 내장.
    • 커스터마이징이 용이한 구조 제공.
  • 사용 예시:
    • 사용자 인증 시스템 구축, API 보안.

- 스프링 배치

  • 특징:
    • 대량의 데이터 처리를 위한 배치 프로세스 프레임워크.
    • 읽기(Read) - 처리(Process) - 쓰기(Write) 단계의 구조화된 배치 처리 지원.
    • 재시작, 트랜잭션 관리, 로깅 및 추적, 스케줄링 등을 제공.
    • 다양한 데이터 소스 및 대상(JDBC, 파일 등)과 통합 가능.
  • 사용 예시:
    • 정기적인 데이터 처리 작업(예: 대량 데이터 변환, 보고서 생성).

- 스프링 데이터

  • 특징:
    • 데이터 접근 계층을 간소화하고, 다양한 데이터 저장소를 지원하는 추상화 프레임워크.
    • JPA, MongoDB, Redis, Cassandra 등의 데이터베이스와의 통합을 위한 서브 프로젝트 제공.
    • 리포지토리 패턴으로 CRUD 작업 자동화.
    • 메서드 이름만으로 쿼리를 생성하는 쿼리 메서드 제공.
  • 사용 예시:
    • 데이터베이스와의 통합 및 데이터 관리.

- 스프링 인티그레이션

  • 특징:
    • 애플리케이션 간의 메시지 기반 통합을 지원하는 프레임워크.
    • 메시지 큐, HTTP 요청, 파일 처리와 같은 다양한 데이터 통신 채널 제공.
    • Enterprise Integration Patterns(EIP)를 기반으로 설계.
    • 비동기 메시징과 이벤트 기반 아키텍처를 구현.
  • 사용 예시:
    • 시스템 간 데이터 교환 및 통합 작업(예: ERP와 CRM 통합).

1.3 스프링이 인기 있는 이유

  • 다른 프레임워크와 결합 가능
    스프링으로 전체적인 부분을 구축할 수 있으나, 부분적으로 다른 프레임워크를 사용가능
  • 확장성이 뛰어남
  • 하위호환성을 중요하게 여김
  • 새로운 기술에 적극적으로 대응
profile
문제를 해결하면서 나온 문제를 기록하는 노트

0개의 댓글