본문으로 건너뛰기
Advertisement

1.1 스프링 프레임워크 개요 (Spring Framework Overview)

자바 기반의 엔터프라이즈급 애플리케이션을 개발하기 위한 표준 프레임워크인 스프링(Spring)의 기초 개념과 탄생 배경을 알아봅니다.

작성 기준 버전

1. 프레임워크(Framework)란?

프로그래밍에서 프레임워크는 '소프트웨어의 문제를 해결하기 위해 규격화된 틀' 을 의미합니다. 단순히 라이브러리를 가져다 쓰는 것과 달리, 프레임워크는 애플리케이션의 전체적인 구조와 흐름을 결정하며 개발자는 그 틀 안에서 비즈니스 로직에 집중하게 됩니다.

  • 라이브러리(Library): 개발자가 직접 호출하여 제어권(Control)을 가짐.
  • 프레임워크(Framework): 프레임워크가 개발자의 코드를 호출하여 제어권을 가짐 (** 제어의 역전, IoC**).

2. 스프링 프레임워크란?

스프링 프레임워크는 2003년 로드 존슨(Rod Johnson)이 출간한 저서에서 시작되었습니다. 당시 자바 엔터프라이즈 기술(EJB)의 복잡성과 무거움을 해결하기 위해 등장한 경량급 프레임워크 입니다.

스프링의 명칭 유래

EJB라는 '겨울'이 지나고 자바 개발자들에게 '봄(Spring)' 이 왔다는 희망적인 의미를 담고 있습니다.

3. 핵심 특징 (Why Spring?)

1) 경량급 (Lightweight)

과거의 복잡한 서버 환경 없이도 일반적인 자바 객체(POJO)만으로 엔터프라이즈 서비스를 개발할 수 있게 해줍니다.

2) 제어의 역전 (IoC) 및 의존성 주입 (DI)

객체의 생성과 관리 책임을 개발자가 아닌 스프링 컨테이너가 가집니다. 이를 통해 객체 간의 결합도를 낮추고 유연한 설계를 가능하게 합니다.

3) 관점 지향 프로그래밍 (AOP)

로그 기록, 트랜잭션 처리 등 핵심 로직 외에 반복적으로 나타나는 공통 관심사를 별도로 분리하여 관리할 수 있습니다.

4) POJO (Plain Old Java Object) 방식

특정 프레임워크나 인터페이스에 종속되지 않는 순수한 자바 객체를 사용하여 코드를 작성할 수 있으므로 테스트와 유지보수가 용이합니다.


노트

스프링은 단순히 기술적인 도구 모음을 넘어, 객체지향 프로그래밍의 원칙(SOLID)을 가장 잘 지킬 수 있도록 도와주는 설계 가이드 와 같습니다.

Advertisement