[Spring] 스프링

김민재·2025년 10월 12일

Spring

목록 보기
5/5
post-thumbnail

🍃 Spring

자바 기반의 웹 애플리케이션을 쉽고 빠르게 개발할 수 있도록 도와주는 프레임워크

  • 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타
  • 웹 기술: 스프링 MVC, 스프링 WebFlux
  • 데이터 접근 기술: 트랜잭션, JDBC, ORM 지원, XML 지원
  • 기술 통합: 캐시, 이메일, 원격접근, 스케줄링
  • 테스트: 스프링 기반 테스트 지원
  • 언어: 코틀린, 그루비

🍀 Spring 생태계

스프링 프레임워크, 스프링 부트
스프링 데이터, 스프링 세션, 스프링 시큐리티, 스피링 Rest Docs, 스프링 배치, 스프링 클라우드

🌴 Spring 핵심

  1. 개발을 편하게 해 준다.
    복잡한 자바 코드를 훨씬 간단하게 작성할 수 있게 도와준다.
  2. 객체 관리 자동화(DI?IoC)
    객체를 직접 생성하고 연결할 필요 없이, 스프링이 알아서 관리해 준다.
  3. 웹 개발 지원
    웹 서버, REST API, DB 연동 등을 쉽게 구현할 수 있는 기능을 제공한다.
  4. 유지보수와 확장성
    코드가 체계적으로 분리되므로, 수정과 확장이 편하다.

🌳 Spring 주요 개념

개념설명
IoC (Inversion of Control)제어의 역전. 객체 생성과 관리를 개발자가 아닌 스프링이 담당함
DI (Dependency Injection)의존성 주입. 필요한 객체를 자동으로 주입받아 사용
AOP (Aspect Oriented Programming)관점 지향 프로그래밍. 공통 관심사(로그, 보안 등)를 분리해서 코드에 적용
Bean스프링이 관리하는 객체. 설정을 통해 자동으로 생성되고 관리됨
Component Scan특정 패키지에서 어노테이션이 붙은 클래스들을 자동으로 등록함
Spring Container스프링 애플리케이션을 구동하고, 객체를 관리하는 중심 역할
@Component스프링이 자동으로 객체로 등록해주는 클래스에 사용하는 어노테이션
@Autowired객체를 자동으로 주입받을 때 사용하는 어노테이션
@Controller / @RestController웹 요청을 처리하는 클래스에 사용하는 어노테이션
@Service비즈니스 로직을 처리하는 클래스에 사용하는 어노테이션
@RepositoryDB 연동 로직을 담당하는 클래스에 사용하는 어노테이션
@Configuration설정 클래스를 정의할 때 사용하는 어노테이션
@Bean개발자가 직접 스프링 빈을 등록할 때 사용하는 어노테이션
Spring MVC웹 애플리케이션을 구성하는 설계 패턴 (Model-View-Controller)
Spring Boot스프링을 빠르게 개발할 수 있도록 도와주는 도구 (설정 최소화)

🍏 Spring 구조

구성 영역모듈설명
Core ContainerCore, Beans, Context, SpEL스프링의 핵심 기능: IoC/DI, 빈 생성 및 관리
AOPAOP, Aspects공통 기능(로깅, 트랜잭션 등)을 분리하여 코드에 적용
WebWeb, Web MVC웹 어플리케이션 개발 지원 (Spring MVC 포함)
Data AccessJDBC, ORM, TransactionsDB 연동, JPA, 트랜잭션 관리 등
MessagingJMS, Messaging비동기 메시지 처리 (RabbitMQ 등)
TestTestJUnit 등과 연동된 테스트 지원
OthersCache, Context Support 등유틸리티 기능, 캐싱, 파일 업로드 등 부가 기능
  • CoreContainer(DI: Dependency Injection) / MVC / DATA Access / AOP / Security 등으로 나눌 수 있다.
profile
개발 경험치 쌓는 곳

0개의 댓글