tech/Spring

[Spring] 스프링이란?

sunm2n 2025. 6. 24. 22:29

스프링은 특정한 하나가 아니라 여러가지 기술들의 모음집이라고 볼 수 있다.

 

 

 

스프링 데이터:

데이터베이스가 관계형 데이터베이스던 NoSQL이든 몽도디비든 레디스든 기본적인 등록, 수정, 삭제, 조회 CRUD 이건 다 비슷하기 때문에 이런 것들을 굉장히 편리하게 사용할 수 있도록 도와주는 기술이다.

제일 많이 스프링 데이터 JPA를 많이 쓴다

 

스프링 세션:

세션 기능을 좀 더 편리하게 사용할 수 있도록 도와준다.

 

스프링 시큐리티:

보안과 관련된거다.

 

스프링 Rest Docs:

API 문서와 테스트를 편하게 역어서 API 문서를 편리하게 해준다

 

스프링 배치:

보통(백엔드) 애플리케이션이라고 생각을 하면 그냥 API같은 거 만들고 아니면 화면 만들고를 생각하는데 실무에서는 천만명의 데이터를 한번에 업데이트를 하기는 어렵다. 그래서 100컷씩 혹은 1000컷씩 저장하고 퍼올려서 또 돌리고 저장하고 한다.

이것을 배치 처리라고 하는데 그 배치 처리에 특화된 기술이다.

 

스프링 클라우드:

말 그대로 클라우드 기술에 특화되어 있다.

 

이 외에도 다양한 프로젝트가 있다. 자세한 건 아래 사이트를 참조

https://spring.io/projects

 

Spring | Projects

Provides core support for dependency injection, transaction management, web apps, data access, messaging, and more. 6.2.8+ 8 versions

spring.io

 

스프링 프레임워크

핵심 기술:

스프링 DI 컨테이너, AOP, 이벤트, 기타

 

웹 기술:

스프링 MVC, 스프링 WebFlux

 

데이터 접근 기술:

트랜잭션, JDBC, ORM 지원, XML 지원

 

기술 통합:

캐시, 이메일, 원격접근, 스케줄링

 

테스트:

스프링 기반 테스트 지원

 

언어:

코틀린, 그루비

 

최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용할 수 있다.

 

 

 

스프링 부트

  • 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용
  • 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
  • Tomcat 같은 웹 서버를 내장해서 별도의 웁 서버를 설치하지 않아도 됨
  • 손쉬운 빌드 구성을 위한 starter 종속성 제공
  • 스프링과 3rd parth(외부) 라이브러리 자동 구성
  • 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공
  • 관례에 의한 간결한 설정

 

과거에는 스프링 프로젝트를 하나 하려고 하면 보통 빌드를 하고 Tomcat 서버라는 걸 받아 별도의 설치를 했다.

그 Tomcat 서버의 특정 위치에다 빌드한 스프링 프로젝트를 놓고 띄우고 등 복잡했다.

그러나 스프링 부트의 등장으로 빌드하고 서버 띄우는거까지 자체적으로 코드 몇 줄로 가능하게 되었다.

 

손쉬운 빌드 구성을 위한 starter 종속성이란 예전에는 스프링 프레임과 e라이브러리 쓰고 하는 등 상당히 어려웠는데 

스프링 부트 ~어쩌고 스타터, 스프링 부트 AOP 스타터, 스프링 부트 데이터 JPA 스타터 등등 라이브러리 쓸 때 하나만 땡기는 게

아니라 스타터가 나머지 라이브러리까지 같이 챙겨서 하는 것들이 잘 구성되어 있다.

 

스프링과 서드파티 외부 라이브러리 자동 구성이란 외부 라이브러리 버전에 대해 우리가 크게 고민하지 않게 스프링이 지정해준다.

 

프로덕션 준비 기능 제공이란 운영 환경에서 모니터링하는게 진짜 중요하다. 그리고 스프링부트가 어느 정도 지원을 해준다.

 

 

 

스프링 부트는 별도로 사용할 수 있는게 아니다 

여러가지 스프링 프레임워크들을 중간에서 편리하게 사용할 수 있게 도와주는 도구이다.

스프링 프레임워크를 사용하고 나머지도 필요하면 당겨와서 사용하게 도와주는 기술이지 이것만 가지고 프로젝트를 할 수는 없다.

 

 

 

스프링 단어?

  • 스프링이라는 단어는 문맥에 따라 다르게 사용된다.
    • 스프링 DI 컨테이너 기술
    • 스프링 프레임워크
    • 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계

 

 

스프링의 진짜 핵심

  • 스프링은 자바 언어 기반의 프레임워크
  • 자바 언어의 가장 큰 특징 = 객체 지향 언어
  • 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크
  • 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크

 

 

 

'tech > Spring' 카테고리의 다른 글

[Spring] Config  (0) 2025.07.09
[Spring] SOLID 원칙을 잘 지키고 있는가  (0) 2025.07.04
[Spring] long VS Long  (1) 2025.07.03
[Spring] enum이란?  (0) 2025.07.03
[Spring] 좋은 객체 지향 프로그래밍이란?  (1) 2025.06.24