Spring 프레임워크는 무엇일까?

2025. 5. 20. 11:14·탐구하기

Spring 프레임워크는 자바(Java) 기반의 오픈 소스 애플리케이션 프레임워크로, 대규모 웹 애플리케이션 개발을 효율적이고 유연하게 할 수 있도록 다양한 기능을 제공합니다. 스프링은 객체 지향 설계 원칙(OOP)을 따르면서도 코드의 결합도를 낮추고, 테스트하기 쉽고, 유지보수하기 쉬운 애플리케이션을 만들 수 있게 해줍니다.


🔹 Spring 프레임워크의 핵심 특징

특징 설명

경량 프레임워크 필요한 모듈만 선택적으로 사용할 수 있어 유연하고 가볍습니다.
제어의 역전 (IoC) 객체 생성과 의존성 주입을 스프링이 대신 관리해줍니다. (Dependency Injection)
관점 지향 프로그래밍 (AOP) 공통 기능(로깅, 보안, 트랜잭션 등)을 핵심 로직과 분리해서 작성 가능하게 합니다.
모듈화 구조 여러 하위 모듈(Spring MVC, Spring JDBC, Spring Security 등)로 구성되어 필요에 따라 사용 가능합니다.
DI (Dependency Injection) 객체 간 의존성을 코드가 아닌 설정을 통해 주입할 수 있도록 합니다.
POJO 기반 개발 Plain Old Java Object, 일반 자바 클래스를 그대로 사용할 수 있게 해줍니다.

🔸 Spring의 주요 모듈

모듈 설명

Spring Core IoC/DI 컨테이너 제공 (스프링의 핵심 기능)
Spring AOP AOP 기능 제공
Spring JDBC / ORM 데이터베이스 연동 지원 (MyBatis, JPA 등과 연동)
Spring MVC 웹 애플리케이션 개발 지원 (Model-View-Controller 패턴)
Spring Security 인증/인가, 보안 기능 제공
Spring Boot 설정을 최소화하여 빠르게 스프링 애플리케이션을 구축할 수 있게 해주는 프레임워크
Spring Data JPA JPA를 쉽게 사용할 수 있도록 도와주는 모듈

🔹 스프링의 작동 방식 간단 예시

@Component
public class MyService {
    public void doSomething() {
        System.out.println("Service 실행 중");
    }
}

@RestController
public class MyController {

    @Autowired
    private MyService myService;

    @GetMapping("/run")
    public String run() {
        myService.doSomething();
        return "실행 완료!";
    }
}
  • @Component, @RestController : 스프링이 이 클래스를 관리하게 해줌 (Bean 등록)
  • @Autowired : 스프링이 MyService 객체를 자동으로 주입해줌 (DI)
  • @GetMapping("/run") : HTTP 요청 URL에 매핑

🔸 스프링이 왜 중요한가요?

  • 생산성 향상: 다양한 기능을 제공해 빠르게 애플리케이션을 개발할 수 있음
  • 유지보수 용이: 느슨한 결합 구조 덕분에 코드 수정이 쉬움
  • 테스트 용이성: 의존성 주입으로 유닛 테스트 작성이 쉬움
  • 대규모 시스템에 적합: 모듈화된 구조 덕분에 확장성과 재사용성이 높음

🔹 스프링의 발전: Spring → Spring Boot

기존 Spring은 설정이 많고 복잡했지만,
Spring Boot는 "자동 설정(Auto Configuration)", "내장 톰캣", "의존성 관리" 등을 통해 개발자가 빠르게 시작할 수 있도록 돕습니다.

 

'탐구하기' 카테고리의 다른 글

Dependency Injection는 무엇일까?  (0) 2025.05.22
POJO란 무엇인가?  (3) 2025.05.20
WAS란 무엇일까?  (1) 2025.05.19
클라이언트-서버 구조에 흐름과 장단점  (1) 2025.05.15
HTTP는 무엇일까??  (0) 2025.05.14
'탐구하기' 카테고리의 다른 글
  • Dependency Injection는 무엇일까?
  • POJO란 무엇인가?
  • WAS란 무엇일까?
  • 클라이언트-서버 구조에 흐름과 장단점
ayinyun
ayinyun
ayinyun 님의 블로그 입니다.
  • ayinyun
    ayinyun 님의 블로그
    ayinyun
  • 전체
    오늘
    어제
    • 분류 전체보기 (75)
      • SQL 개발 공부 (8)
      • JAVA 개발 공부 (4)
      • JavaScript(JS) (1)
      • React (1)
      • 탐구하기 (38)
      • KPT회고록 (14)
      • SpringBoot (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
ayinyun
Spring 프레임워크는 무엇일까?
상단으로

티스토리툴바