반응형
*책 내용과 살짝 다르게, 다음과 같은 환경에서 프로젝트를 생성
2026.05.25 - [스프링(Spring), 스프링부트(SpringBoot)/스프링(Spring) 기초] - 스프링 인 액션 제5판(크레이그 월즈 지음) - 스프링 시작하기 1
스프링 인 액션 제5판(크레이그 월즈 지음) - 스프링 시작하기 1
0. 스프링과 스프링 부트의 차이1) 스프링(Spring Framework)의존성 주입(DI), AOP, 트랜잭션 관리 등 엔터프라이즈 애플리케이션의 기반을 제공XML, Java Config, Annotation 등을 이용해 원하는 설정을 직접 해
keep-programming-study.tistory.com
*스프링에는 100개 이상의 많은 의존성이 있으므로, 중요한 것들만 언급
1. 핵심 스프링 프레임워크
- 스프링에 있는 모듯 것의 기반이 됨
- 핵심 컨테이너와 의존성 주입 프레임워크 외에도 몇 가지 다른 기능을 제공
- 스프링 MVC는 HTML외에도, 출력을 생성하는 REST API를 만들 때도 사용 가능
- 템플릿 기반의 JDBC(JdbcTemplate) 지원을 포함하여, 기본적인 데이터 퍼시스턴스 지원 제공
- 리액티브 프로그래밍 지원 (스프링 WebFlux라는 이름의 리액티브 웹 프레임워크 포함)
2. 스프링 부트 (스프링의 필수 요소)
- 스프링 스타터 의존성과 자동 구성을 포함
- 액추에이터(Actuator): 애플리케이션의 내부 작동을 런타임 시 살펴볼 수 있는 기능 제공
-> 메트릭(metric, 애플리케이션 운영 상태를 수치로 표현한 지표),
스레드 덤프(Thread Dump, JVM 내부에서 실행 중인 모든 스레드의 상태 & 스택 트레이스를 특정 시점에 그대로 찍어낸 스냅샷(Snapshot)), 애플리케이션 상태, 애플리케이션 환경 속성 포함 - 환경 속성의 명세
-> 애플리케이션 실행 시점에 주입되는 설정 값,
다시 말해서 스프링부트가 제공하는 표준 속성 키(server.port, spring.datasource.url 등)와 그 의미를 문서화 - 핵심 프레임워크에 추가되는 테스트 지원
- spring-boot-starter-test → JUnit, Mockito, AssertJ, Spring TestContext Framework 등을 자동으로 포함
- @SpringBootTest → 애플리케이션 컨텍스트 전체를 띄워서 통합 테스트 가능
- @WebMvcTest → MVC 레이어만 슬라이스 테스트(Slice Test, 스프링부트가 제공하는 특정 레이어만 로드해서 검증)
- TestRestTemplate, MockMvc → REST API 호출 및 응답 검증 지원
- 스프링부트 CLI(command-line interface, 명령형 인터페이스) 제공
: 애플리케이션 전체를 그루비 스크립트들로 작성하여 명령행에서 실행 가능
=> 이 책에서는 스프링 부트 중심의 관점으로 스프링이라는 용어를 사용
3. 스프링 데이터 (Spring Data)
- 간단한 자바 인터페이스로
애플리케이션의 데이터 리포지토리(Repository, 데이터를 꺼내고 저장하는 창구 역할: DB에서 SQL문을 쓰지 않고 엔티티를 저장하거나 불러올 수 있음)를 정의할 수 있음
-> 작명 규칙을 사용하여, 데이터를 저장하고 읽는 메서드를 정의 - 다른 종류의 데이터베이스와 함께 사용 가능:
관계형 데이터베이스 JPA, 문서형 데이터베이스 Mongo, 그래프형 데이터베이스 Neo4j
4. 스프링 시큐리티 (Spring Security)
- 스프링의 강력한 애플리케이션 보안 프레임워크
- 인증(authentication), 허가(authorization), API(Application Programming Interface) 보안을 포함하는 폭넓은 범위의 보안 요구를 다룸
- 종류가 매우 많으므로, 자세한 내용은 공식 문서에서 확인 필요
5. 스프링 통합과 스프링 배치 (Spring Integration, Spring Batch)
- 대부분의 애플리케이션은 다른 애플리케이션이나 같은 애플리케이션 내의 컴포넌트들을 통합할 필요가 생김
-> 스프링 통합과 스프링 배치가, 스프링 기반 애플리케이션의 통합 패턴 구현을 제공 - 스프링 통합: 데이터가 사용 가능한 즉시 처리되는 실시간 통합
- 스프링 배치: 다량의 데이터가 처리되는 시점을 트리거(주로 시간을 기준으로 함)가 알려줄 때 데이터가 수집 처리되도록 통합 처리 (= 배치 통합)
6. 스프링 클라우드 (Spring Cloud)
- 마이크로서비스 아키텍처(여러 개의 작은 애플리케이션을 조합해서 하나의 큰 서비스를 만드는 방식)를 만드는 과정에서,
이를 쉽게 구현하기 위한 프로젝트들의 모음인 스프링 클라우드를 사용 - 서비스 간 통신, 설정 관리, 서비스 등록/발견, 분산 추적, 장애 복구 같은 기능을 추가하기 위한 도구 모음을 제공하는 것
- 스프링 시큐리티와 마찬가지로 종류가 매우 많으므로, 공식 문서를 확인하거나 '스프링 마이크로서비스 코딩 공작소(2018)'라는 책을 참고해야 함
반응형
'스프링(Spring), 스프링부트(SpringBoot) > 스프링(Spring) 기초' 카테고리의 다른 글
| 스프링 인 액션 제5판(크레이그 월즈 지음) - 스프링 시작하기 2 (1) | 2026.06.10 |
|---|---|
| 스프링 인 액션 제5판(크레이그 월즈 지음) - 스프링 시작하기 1 (0) | 2026.05.25 |
| Spring Interceptors(스프링 인터셉터) (0) | 2023.01.02 |
| 예외처리 (0) | 2022.12.27 |
| 스프링 트랜잭션과 로깅 (0) | 2022.12.05 |