728x90
스프링(Spring) 이란?
- 스프링은 JAVA의 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크(Framework)
- JAVA로 다양한 애플리케이션을 만들 수 있는 프로그래밍 도구
- 비즈니스 로직에만 집중할 수 있도록 다양한 기능을 제공
프레임워크(Framework) vs 라이브러리(Library)
프레임워크 : 제공되는 틀에 따라 코드를 작성해야 한다 (통제권을 프레임워크가 가짐)
라이브러리 : 개발에 필요한 코드를 구현해 놓은 집합으로 개발자가 이를 호출하여 사용
스프링 생태계 (Spring Ecosystem)
스프링이 웹 개발을 위한 도구라는 것은 잘 알려진 사실입니다.
하지만 스프링 프레임워크 하나만으로 강력한 도구가 될 수는 없습니다.
스프링이 강력한 도구가 된 이유에는 스프링 생태계가 있기 때문입니다.
Spring Framework Ecosystem
이제 스프링 생태계의 기술을 간단하게 알아보겠습니다.
핵심 기술
- Spring (스프링)
- 종속성 주입, 트랜잭션 관리, 웹 앱, 데이터 액세스, 메시징 등에 대한 핵심 지원을 제공
- Spring Boot
- Spring 애플리케이션 구축을 가능한 한 빨리 시작하고 실행할 수 있도록 도움
선택적 기술
- Spring Data
- 관계형, 비관계형, 맵 축소 등 데이터 액세스에 대한 일관된 접근 방식을 제공
- Spring Security
- 포괄적이고 확장 가능한 인증 및 권한 부여 지원으로 애플리케이션을 보호
- Spring Cloud
- 분산 시스템의 일반적인 패턴에 대한 도구 셋을 제공한다.
- 마이크로 서비스를 구축하고 배포하는데 유용하게 사용된다.
- Spring Session
- 사용자의 세션 정보를 관리하기 위한 API 및 구현을 제공한다.
- Spring REST Docs
- Spring MVC Test 또는 REST Assured로 생성된 스니펫과 직접 작성한 문서를 결합하여 RESTful 서비스를 문서화 해주는 기능을 제공
- Spring Batch
- 대용량 배치 작업 처리 작업을 단순화하고 최적화 해주는 도구
- Spring AMQP
- AMQP 기반의 메시징 솔루션 개발에 핵심 Spring 개념을 적용
등등.. 더 많은 스프링 생태계의 기술들을 볼 수 있는 링크를 달아두겠습니다.
스프링 백엔드 개발자를 꿈꾼다면 한 번쯤 보는 것도 도움이 될 것 같습니다.
이렇듯 스프링 혹은 스프링 부트 프레임워크만 배우는 것은 스프링을 잘 활용하지 못하는 것일 수 있습니다.
인증, 인가 처리에는 Spring Security를, MSA 구축에는 Spring Cloud를, API 문서화에는 Spring Rest Docs 등등 적절한 기술을 이해하고 사용하는 것이 중요할 것 같습니다.
마치며
스프링과 스프링부트가 왜 강력한 도구가 되었는지 살펴보았는데, 스프링을 배우는 시작 단계라면 Spring 과 SpringBoot에 대한 이해를 한 후 그와 연관된 다양한 주변 기술을 비교하며 적용하는 것이 Spring 을 정말 잘 다루는 좋은 개발자가 될 수 있는 지름길이 아닐까 싶습니다.
728x90